From 1503044451524b9525a4a74ff82b6b65487d2db2 Mon Sep 17 00:00:00 2001 From: Andrei Litvin Date: Wed, 13 Apr 2022 11:11:56 -1000 Subject: [PATCH] Access generation in idl (#17282) * Add generation of access privileges in IDL files * Restyle * Ran zap regen --- .../all-clusters-app.matter | 192 ++++++++--------- .../bridge-common/bridge-app.matter | 84 ++++---- .../door-lock-common/door-lock-app.matter | 116 +++++----- .../light-switch-app.matter | 110 +++++----- .../lighting-common/lighting-app.matter | 104 ++++----- examples/lock-app/lock-common/lock-app.matter | 76 +++---- .../log-source-common/log-source-app.matter | 42 ++-- .../ota-provider-app.matter | 72 +++---- .../ota-requestor-app.matter | 74 +++---- .../placeholder/linux/apps/app1/config.matter | 138 ++++++------ .../placeholder/linux/apps/app2/config.matter | 138 ++++++------ examples/pump-app/pump-common/pump-app.matter | 110 +++++----- .../pump-controller-app.matter | 98 ++++----- .../esp32/main/temperature-measurement.matter | 72 +++---- .../thermostat-common/thermostat.matter | 118 +++++----- examples/tv-app/tv-common/tv-app.matter | 126 +++++------ .../tv-casting-common/tv-casting-app.matter | 104 ++++----- examples/window-app/common/window-app.matter | 92 ++++---- .../idl/command_request_response.zapt | 27 ++- .../templates/app/MatterIDL.zapt | 15 +- .../zap-templates/templates/chip/helper.js | 69 ++++++ .../data_model/controller-clusters.matter | 202 +++++++++--------- 22 files changed, 1133 insertions(+), 1046 deletions(-) diff --git a/examples/all-clusters-app/all-clusters-common/all-clusters-app.matter b/examples/all-clusters-app/all-clusters-common/all-clusters-app.matter index 12795189e8c387..4ded515c32285c 100644 --- a/examples/all-clusters-app/all-clusters-common/all-clusters-app.matter +++ b/examples/all-clusters-app/all-clusters-common/all-clusters-app.matter @@ -46,7 +46,7 @@ server cluster AccessControl = 31 { fabric_idx fabricIndex = 254; } - info event AccessControlEntryChanged = 0 { + info event access(read: administer) AccessControlEntryChanged = 0 { nullable node_id adminNodeID = 1; nullable INT16U adminPasscodeID = 2; ChangeTypeEnum changeType = 3; @@ -54,7 +54,7 @@ server cluster AccessControl = 31 { fabric_idx adminFabricIndex = 254; } - info event AccessControlExtensionChanged = 1 { + info event access(read: administer) AccessControlExtensionChanged = 1 { nullable node_id adminNodeID = 1; nullable INT16U adminPasscodeID = 2; ChangeTypeEnum changeType = 3; @@ -62,8 +62,8 @@ server cluster AccessControl = 31 { fabric_idx adminFabricIndex = 254; } - attribute AccessControlEntry acl[] = 0; - attribute ExtensionEntry extension[] = 1; + attribute access(read: administer, write: administer) AccessControlEntry acl[] = 0; + attribute access(read: administer, write: administer) ExtensionEntry extension[] = 1; readonly attribute int16u subjectsPerAccessControlEntry = 2; readonly attribute int16u targetsPerAccessControlEntry = 3; readonly attribute int16u accessControlEntriesPerFabric = 4; @@ -104,9 +104,9 @@ server cluster AdministratorCommissioning = 60 { INT16U commissioningTimeout = 0; } - timed command OpenCommissioningWindow(OpenCommissioningWindowRequest): DefaultSuccess = 0; - timed command OpenBasicCommissioningWindow(OpenBasicCommissioningWindowRequest): DefaultSuccess = 1; - timed command RevokeCommissioning(): DefaultSuccess = 2; + timed command access(invoke: administer) OpenCommissioningWindow(OpenCommissioningWindowRequest): DefaultSuccess = 0; + timed command access(invoke: administer) OpenBasicCommissioningWindow(OpenBasicCommissioningWindowRequest): DefaultSuccess = 1; + timed command access(invoke: administer) RevokeCommissioning(): DefaultSuccess = 2; } server cluster ApplicationBasic = 1293 { @@ -212,8 +212,8 @@ server cluster Basic = 40 { readonly attribute vendor_id vendorID = 2; readonly attribute char_string<32> productName = 3; readonly attribute int16u productID = 4; - attribute char_string<32> nodeLabel = 5; - attribute char_string<2> location = 6; + attribute access(write: manage) char_string<32> nodeLabel = 5; + attribute access(write: administer) char_string<2> location = 6; readonly attribute int16u hardwareVersion = 7; readonly attribute char_string<64> hardwareVersionString = 8; readonly attribute int32u softwareVersion = 9; @@ -223,7 +223,7 @@ server cluster Basic = 40 { readonly attribute long_char_string<256> productURL = 13; readonly attribute char_string<64> productLabel = 14; readonly attribute char_string<32> serialNumber = 15; - attribute boolean localConfigDisabled = 16; + attribute access(write: manage) boolean localConfigDisabled = 16; readonly attribute boolean reachable = 17; readonly attribute char_string<32> uniqueID = 18; readonly attribute CapabilityMinimaStruct capabilityMinima = 19; @@ -465,17 +465,17 @@ server cluster ColorControl = 768 { readonly attribute int16u primary6X = 40; readonly attribute int16u primary6Y = 41; readonly attribute int8u primary6Intensity = 42; - attribute int16u whitePointX = 48; - attribute int16u whitePointY = 49; - attribute int16u colorPointRX = 50; - attribute int16u colorPointRY = 51; - attribute int8u colorPointRIntensity = 52; - attribute int16u colorPointGX = 54; - attribute int16u colorPointGY = 55; - attribute int8u colorPointGIntensity = 56; - attribute int16u colorPointBX = 58; - attribute int16u colorPointBY = 59; - attribute int8u colorPointBIntensity = 60; + attribute access(write: manage) int16u whitePointX = 48; + attribute access(write: manage) int16u whitePointY = 49; + attribute access(write: manage) int16u colorPointRX = 50; + attribute access(write: manage) int16u colorPointRY = 51; + attribute access(write: manage) int8u colorPointRIntensity = 52; + attribute access(write: manage) int16u colorPointGX = 54; + attribute access(write: manage) int16u colorPointGY = 55; + attribute access(write: manage) int8u colorPointGIntensity = 56; + attribute access(write: manage) int16u colorPointBX = 58; + attribute access(write: manage) int16u colorPointBY = 59; + attribute access(write: manage) int8u colorPointBIntensity = 60; readonly attribute int16u enhancedCurrentHue = 16384; readonly attribute enum8 enhancedColorMode = 16385; readonly attribute int8u colorLoopActive = 16386; @@ -487,7 +487,7 @@ server cluster ColorControl = 768 { readonly attribute int16u colorTempPhysicalMin = 16395; readonly attribute int16u colorTempPhysicalMax = 16396; readonly attribute int16u coupleColorTempToLevelMinMireds = 16397; - attribute int16u startUpColorTemperatureMireds = 16400; + attribute access(write: manage) int16u startUpColorTemperatureMireds = 16400; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; @@ -1165,9 +1165,9 @@ server cluster DoorLock = 257 { readonly attribute DlLockType lockType = 1; readonly attribute boolean actuatorEnabled = 2; readonly attribute nullable DlDoorState doorState = 3; - attribute int32u doorOpenEvents = 4; - attribute int32u doorClosedEvents = 5; - attribute int16u openPeriod = 6; + attribute access(write: manage) int32u doorOpenEvents = 4; + attribute access(write: manage) int32u doorClosedEvents = 5; + attribute access(write: manage) int16u openPeriod = 6; readonly attribute int16u numberOfTotalUsersSupported = 17; readonly attribute int16u numberOfPINUsersSupported = 18; readonly attribute int16u numberOfRFIDUsersSupported = 19; @@ -1179,18 +1179,18 @@ server cluster DoorLock = 257 { readonly attribute int8u maxRFIDCodeLength = 25; readonly attribute int8u minRFIDCodeLength = 26; readonly attribute DlCredentialRuleMask credentialRulesSupport = 27; - attribute char_string<3> language = 33; - attribute int32u autoRelockTime = 35; - attribute int8u soundVolume = 36; - attribute DlOperatingMode operatingMode = 37; + attribute access(write: manage) char_string<3> language = 33; + attribute access(write: manage) int32u autoRelockTime = 35; + attribute access(write: manage) int8u soundVolume = 36; + attribute access(write: manage) DlOperatingMode operatingMode = 37; readonly attribute DlSupportedOperatingModes supportedOperatingModes = 38; readonly attribute DlDefaultConfigurationRegister defaultConfigurationRegister = 39; - attribute boolean enableOneTouchLocking = 41; - attribute boolean enableInsideStatusLED = 42; - attribute boolean enablePrivacyModeButton = 43; - attribute int8u wrongCodeEntryLimit = 48; - attribute int8u userCodeTemporaryDisableTime = 49; - attribute boolean requirePINforRemoteOperation = 51; + attribute access(write: manage) boolean enableOneTouchLocking = 41; + attribute access(write: manage) boolean enableInsideStatusLED = 42; + attribute access(write: manage) boolean enablePrivacyModeButton = 43; + attribute access(write: administer) int8u wrongCodeEntryLimit = 48; + attribute access(write: administer) int8u userCodeTemporaryDisableTime = 49; + attribute access(write: administer) boolean requirePINforRemoteOperation = 51; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; @@ -1264,12 +1264,12 @@ server cluster DoorLock = 257 { timed command LockDoor(LockDoorRequest): DefaultSuccess = 0; timed command UnlockDoor(UnlockDoorRequest): DefaultSuccess = 1; - timed command SetUser(SetUserRequest): DefaultSuccess = 26; - command GetUser(GetUserRequest): GetUserResponse = 27; - timed command ClearUser(ClearUserRequest): DefaultSuccess = 29; - timed command SetCredential(SetCredentialRequest): SetCredentialResponse = 34; - command GetCredentialStatus(GetCredentialStatusRequest): GetCredentialStatusResponse = 36; - timed command ClearCredential(ClearCredentialRequest): DefaultSuccess = 38; + timed command access(invoke: administer) SetUser(SetUserRequest): DefaultSuccess = 26; + command access(invoke: administer) GetUser(GetUserRequest): GetUserResponse = 27; + timed command access(invoke: administer) ClearUser(ClearUserRequest): DefaultSuccess = 29; + timed command access(invoke: administer) SetCredential(SetCredentialRequest): SetCredentialResponse = 34; + command access(invoke: administer) GetCredentialStatus(GetCredentialStatusRequest): GetCredentialStatusResponse = 36; + timed command access(invoke: administer) ClearCredential(ClearCredentialRequest): DefaultSuccess = 38; } server cluster ElectricalMeasurement = 2820 { @@ -1355,7 +1355,7 @@ server cluster GeneralCommissioning = 48 { INT16U failSafeExpiryLengthSeconds = 0; } - attribute int64u breadcrumb = 0; + attribute access(write: administer) int64u breadcrumb = 0; readonly attribute BasicCommissioningInfo basicCommissioningInfo = 1; readonly attribute RegulatoryLocationType regulatoryConfig = 2; readonly attribute RegulatoryLocationType locationCapability = 3; @@ -1389,9 +1389,9 @@ server cluster GeneralCommissioning = 48 { CHAR_STRING debugText = 1; } - command ArmFailSafe(ArmFailSafeRequest): ArmFailSafeResponse = 0; - command SetRegulatoryConfig(SetRegulatoryConfigRequest): SetRegulatoryConfigResponse = 2; - command CommissioningComplete(): CommissioningCompleteResponse = 4; + command access(invoke: administer) ArmFailSafe(ArmFailSafeRequest): ArmFailSafeResponse = 0; + command access(invoke: administer) SetRegulatoryConfig(SetRegulatoryConfigRequest): SetRegulatoryConfigResponse = 2; + command access(invoke: administer) CommissioningComplete(): CommissioningCompleteResponse = 4; } server cluster GeneralDiagnostics = 51 { @@ -1515,7 +1515,7 @@ server cluster GroupKeyManagement = 63 { nullable epoch_us epochStartTime2 = 7; } - attribute GroupKeyMapStruct groupKeyMap[] = 0; + attribute access(write: manage) GroupKeyMapStruct groupKeyMap[] = 0; readonly attribute GroupInfoMapStruct groupTable[] = 1; readonly attribute int16u maxGroupsPerFabric = 2; readonly attribute int16u maxGroupKeysPerFabric = 3; @@ -1545,10 +1545,10 @@ server cluster GroupKeyManagement = 63 { INT16U groupKeySetIDs[] = 0; } - command KeySetWrite(KeySetWriteRequest): DefaultSuccess = 0; - command KeySetRead(KeySetReadRequest): KeySetReadResponse = 1; - command KeySetRemove(KeySetRemoveRequest): DefaultSuccess = 3; - command KeySetReadAllIndices(KeySetReadAllIndicesRequest): KeySetReadAllIndicesResponse = 4; + command access(invoke: administer) KeySetWrite(KeySetWriteRequest): DefaultSuccess = 0; + command access(invoke: administer) KeySetRead(KeySetReadRequest): KeySetReadResponse = 1; + command access(invoke: administer) KeySetRemove(KeySetRemoveRequest): DefaultSuccess = 3; + command access(invoke: administer) KeySetReadAllIndices(KeySetReadAllIndicesRequest): KeySetReadAllIndicesResponse = 4; } server cluster Groups = 4 { @@ -1598,12 +1598,12 @@ server cluster Groups = 4 { group_id groupId = 1; } - command AddGroup(AddGroupRequest): AddGroupResponse = 0; + command access(invoke: manage) AddGroup(AddGroupRequest): AddGroupResponse = 0; command ViewGroup(ViewGroupRequest): ViewGroupResponse = 1; command GetGroupMembership(GetGroupMembershipRequest): GetGroupMembershipResponse = 2; - command RemoveGroup(RemoveGroupRequest): RemoveGroupResponse = 3; - command RemoveAllGroups(): DefaultSuccess = 4; - command AddGroupIfIdentifying(AddGroupIfIdentifyingRequest): DefaultSuccess = 5; + command access(invoke: manage) RemoveGroup(RemoveGroupRequest): RemoveGroupResponse = 3; + command access(invoke: manage) RemoveAllGroups(): DefaultSuccess = 4; + command access(invoke: manage) AddGroupIfIdentifying(AddGroupIfIdentifyingRequest): DefaultSuccess = 5; } server cluster IasZone = 1280 { @@ -1713,9 +1713,9 @@ server cluster Identify = 3 { INT16U timeout = 0; } - command Identify(IdentifyRequest): DefaultSuccess = 0; - command IdentifyQuery(): IdentifyQueryResponse = 1; - command TriggerEffect(TriggerEffectRequest): DefaultSuccess = 64; + command access(invoke: manage) Identify(IdentifyRequest): DefaultSuccess = 0; + command access(invoke: manage) IdentifyQuery(): IdentifyQueryResponse = 1; + command access(invoke: manage) TriggerEffect(TriggerEffectRequest): DefaultSuccess = 64; } server cluster IlluminanceMeasurement = 1024 { @@ -1867,7 +1867,7 @@ server cluster LevelControl = 8 { attribute nullable int16u onTransitionTime = 18; attribute nullable int16u offTransitionTime = 19; attribute nullable int8u defaultMoveRate = 20; - attribute nullable int8u startUpCurrentLevel = 16384; + attribute access(write: manage) nullable int8u startUpCurrentLevel = 16384; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; @@ -2088,14 +2088,14 @@ server cluster NetworkCommissioning = 49 { INT8U lqi = 7; } - readonly attribute int8u maxNetworks = 0; - readonly attribute NetworkInfo networks[] = 1; + readonly attribute access(read: administer) int8u maxNetworks = 0; + readonly attribute access(read: administer) NetworkInfo networks[] = 1; readonly attribute int8u scanMaxTimeSeconds = 2; readonly attribute int8u connectMaxTimeSeconds = 3; - attribute boolean interfaceEnabled = 4; - readonly attribute nullable NetworkCommissioningStatus lastNetworkingStatus = 5; - readonly attribute nullable octet_string<32> lastNetworkID = 6; - readonly attribute nullable int32s lastConnectErrorValue = 7; + attribute access(write: administer) boolean interfaceEnabled = 4; + readonly attribute access(read: administer) nullable NetworkCommissioningStatus lastNetworkingStatus = 5; + readonly attribute access(read: administer) nullable octet_string<32> lastNetworkID = 6; + readonly attribute access(read: administer) nullable int32s lastConnectErrorValue = 7; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; @@ -2150,12 +2150,12 @@ server cluster NetworkCommissioning = 49 { nullable INT32S errorValue = 2; } - command ScanNetworks(ScanNetworksRequest): ScanNetworksResponse = 0; - command AddOrUpdateWiFiNetwork(AddOrUpdateWiFiNetworkRequest): NetworkConfigResponse = 2; - command AddOrUpdateThreadNetwork(AddOrUpdateThreadNetworkRequest): NetworkConfigResponse = 3; - command RemoveNetwork(RemoveNetworkRequest): NetworkConfigResponse = 4; - command ConnectNetwork(ConnectNetworkRequest): ConnectNetworkResponse = 6; - command ReorderNetwork(ReorderNetworkRequest): NetworkConfigResponse = 8; + command access(invoke: administer) ScanNetworks(ScanNetworksRequest): ScanNetworksResponse = 0; + command access(invoke: administer) AddOrUpdateWiFiNetwork(AddOrUpdateWiFiNetworkRequest): NetworkConfigResponse = 2; + command access(invoke: administer) AddOrUpdateThreadNetwork(AddOrUpdateThreadNetworkRequest): NetworkConfigResponse = 3; + command access(invoke: administer) RemoveNetwork(RemoveNetworkRequest): NetworkConfigResponse = 4; + command access(invoke: administer) ConnectNetwork(ConnectNetworkRequest): ConnectNetworkResponse = 6; + command access(invoke: administer) ReorderNetwork(ReorderNetworkRequest): NetworkConfigResponse = 8; } client cluster OtaSoftwareUpdateProvider = 41 { @@ -2322,7 +2322,7 @@ server cluster OnOff = 6 { readonly attribute boolean globalSceneControl = 16384; attribute int16u onTime = 16385; attribute int16u offWaitTime = 16386; - attribute nullable OnOffStartUpOnOff startUpOnOff = 16387; + attribute access(write: manage) nullable OnOffStartUpOnOff startUpOnOff = 16387; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; @@ -2380,7 +2380,7 @@ server cluster OperationalCredentials = 62 { fabric_idx fabricIndex = 254; } - readonly attribute NOCStruct NOCs[] = 0; + readonly attribute access(read: administer) NOCStruct NOCs[] = 0; readonly attribute FabricDescriptor fabrics[] = 1; readonly attribute int8u supportedFabrics = 2; readonly attribute int8u commissionedFabrics = 3; @@ -2449,15 +2449,15 @@ server cluster OperationalCredentials = 62 { optional CHAR_STRING debugText = 2; } - command AttestationRequest(AttestationRequestRequest): AttestationResponse = 0; - command CertificateChainRequest(CertificateChainRequestRequest): CertificateChainResponse = 2; - command CSRRequest(CSRRequestRequest): CSRResponse = 4; - command AddNOC(AddNOCRequest): NOCResponse = 6; - command UpdateNOC(UpdateNOCRequest): NOCResponse = 7; - command UpdateFabricLabel(UpdateFabricLabelRequest): NOCResponse = 9; - command RemoveFabric(RemoveFabricRequest): NOCResponse = 10; - command AddTrustedRootCertificate(AddTrustedRootCertificateRequest): DefaultSuccess = 11; - command RemoveTrustedRootCertificate(RemoveTrustedRootCertificateRequest): DefaultSuccess = 12; + command access(invoke: administer) AttestationRequest(AttestationRequestRequest): AttestationResponse = 0; + command access(invoke: administer) CertificateChainRequest(CertificateChainRequestRequest): CertificateChainResponse = 2; + command access(invoke: administer) CSRRequest(CSRRequestRequest): CSRResponse = 4; + command access(invoke: administer) AddNOC(AddNOCRequest): NOCResponse = 6; + command access(invoke: administer) UpdateNOC(UpdateNOCRequest): NOCResponse = 7; + command access(invoke: administer) UpdateFabricLabel(UpdateFabricLabelRequest): NOCResponse = 9; + command access(invoke: administer) RemoveFabric(RemoveFabricRequest): NOCResponse = 10; + command access(invoke: administer) AddTrustedRootCertificate(AddTrustedRootCertificateRequest): DefaultSuccess = 11; + command access(invoke: administer) RemoveTrustedRootCertificate(RemoveTrustedRootCertificateRequest): DefaultSuccess = 12; } server cluster PowerSource = 47 { @@ -2766,11 +2766,11 @@ server cluster Scenes = 5 { INT8U sceneList[] = 4; } - command AddScene(AddSceneRequest): AddSceneResponse = 0; + command access(invoke: manage) AddScene(AddSceneRequest): AddSceneResponse = 0; command ViewScene(ViewSceneRequest): ViewSceneResponse = 1; - command RemoveScene(RemoveSceneRequest): RemoveSceneResponse = 2; - command RemoveAllScenes(RemoveAllScenesRequest): RemoveAllScenesResponse = 3; - command StoreScene(StoreSceneRequest): StoreSceneResponse = 4; + command access(invoke: manage) RemoveScene(RemoveSceneRequest): RemoveSceneResponse = 2; + command access(invoke: manage) RemoveAllScenes(RemoveAllScenesRequest): RemoveAllScenesResponse = 3; + command access(invoke: manage) StoreScene(StoreSceneRequest): StoreSceneResponse = 4; command RecallScene(RecallSceneRequest): DefaultSuccess = 5; command GetSceneMembership(GetSceneMembershipRequest): GetSceneMembershipResponse = 6; } @@ -3236,13 +3236,13 @@ server cluster Thermostat = 513 { readonly attribute int16s absMaxCoolSetpointLimit = 6; attribute int16s occupiedCoolingSetpoint = 17; attribute int16s occupiedHeatingSetpoint = 18; - attribute int16s minHeatSetpointLimit = 21; - attribute int16s maxHeatSetpointLimit = 22; - attribute int16s minCoolSetpointLimit = 23; - attribute int16s maxCoolSetpointLimit = 24; - attribute int8s minSetpointDeadBand = 25; - attribute ThermostatControlSequence controlSequenceOfOperation = 27; - attribute enum8 systemMode = 28; + attribute access(write: manage) int16s minHeatSetpointLimit = 21; + attribute access(write: manage) int16s maxHeatSetpointLimit = 22; + attribute access(write: manage) int16s minCoolSetpointLimit = 23; + attribute access(write: manage) int16s maxCoolSetpointLimit = 24; + attribute access(write: manage) int8s minSetpointDeadBand = 25; + attribute access(write: manage) ThermostatControlSequence controlSequenceOfOperation = 27; + attribute access(write: manage) enum8 systemMode = 28; readonly attribute enum8 startOfWeek = 32; readonly attribute int8u numberOfWeeklyTransitions = 33; readonly attribute int8u numberOfDailyTransitions = 34; @@ -3252,8 +3252,8 @@ server cluster Thermostat = 513 { server cluster ThermostatUserInterfaceConfiguration = 516 { attribute enum8 temperatureDisplayMode = 0; - attribute enum8 keypadLockout = 1; - attribute enum8 scheduleProgrammingVisibility = 2; + attribute access(write: manage) enum8 keypadLockout = 1; + attribute access(write: manage) enum8 scheduleProgrammingVisibility = 2; readonly attribute int16u clusterRevision = 65533; } @@ -3454,7 +3454,7 @@ server cluster UnitLocalization = 45 { } server cluster UserLabel = 65 { - attribute LabelStruct labelList[] = 0; + attribute access(write: manage) LabelStruct labelList[] = 0; readonly attribute int16u clusterRevision = 65533; } @@ -3631,7 +3631,7 @@ server cluster WindowCovering = 258 { readonly attribute int16u installedClosedLimitLift = 17; readonly attribute int16u installedOpenLimitTilt = 18; readonly attribute int16u installedClosedLimitTilt = 19; - attribute bitmap8 mode = 23; + attribute access(write: manage) bitmap8 mode = 23; readonly attribute bitmap16 safetyStatus = 26; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; diff --git a/examples/bridge-app/bridge-common/bridge-app.matter b/examples/bridge-app/bridge-common/bridge-app.matter index fbc4a6e12bc6ef..028fe4bd0fff14 100644 --- a/examples/bridge-app/bridge-common/bridge-app.matter +++ b/examples/bridge-app/bridge-common/bridge-app.matter @@ -46,7 +46,7 @@ client cluster AccessControl = 31 { fabric_idx fabricIndex = 254; } - info event AccessControlEntryChanged = 0 { + info event access(read: administer) AccessControlEntryChanged = 0 { nullable node_id adminNodeID = 1; nullable INT16U adminPasscodeID = 2; ChangeTypeEnum changeType = 3; @@ -54,7 +54,7 @@ client cluster AccessControl = 31 { fabric_idx adminFabricIndex = 254; } - info event AccessControlExtensionChanged = 1 { + info event access(read: administer) AccessControlExtensionChanged = 1 { nullable node_id adminNodeID = 1; nullable INT16U adminPasscodeID = 2; ChangeTypeEnum changeType = 3; @@ -62,8 +62,8 @@ client cluster AccessControl = 31 { fabric_idx adminFabricIndex = 254; } - attribute AccessControlEntry acl[] = 0; - attribute ExtensionEntry extension[] = 1; + attribute access(read: administer, write: administer) AccessControlEntry acl[] = 0; + attribute access(read: administer, write: administer) ExtensionEntry extension[] = 1; readonly attribute int16u subjectsPerAccessControlEntry = 2; readonly attribute int16u targetsPerAccessControlEntry = 3; readonly attribute int16u accessControlEntriesPerFabric = 4; @@ -111,7 +111,7 @@ server cluster AccessControl = 31 { fabric_idx fabricIndex = 254; } - info event AccessControlEntryChanged = 0 { + info event access(read: administer) AccessControlEntryChanged = 0 { nullable node_id adminNodeID = 1; nullable INT16U adminPasscodeID = 2; ChangeTypeEnum changeType = 3; @@ -119,7 +119,7 @@ server cluster AccessControl = 31 { fabric_idx adminFabricIndex = 254; } - info event AccessControlExtensionChanged = 1 { + info event access(read: administer) AccessControlExtensionChanged = 1 { nullable node_id adminNodeID = 1; nullable INT16U adminPasscodeID = 2; ChangeTypeEnum changeType = 3; @@ -127,8 +127,8 @@ server cluster AccessControl = 31 { fabric_idx adminFabricIndex = 254; } - attribute AccessControlEntry acl[] = 0; - attribute ExtensionEntry extension[] = 1; + attribute access(read: administer, write: administer) AccessControlEntry acl[] = 0; + attribute access(read: administer, write: administer) ExtensionEntry extension[] = 1; readonly attribute int16u subjectsPerAccessControlEntry = 2; readonly attribute int16u targetsPerAccessControlEntry = 3; readonly attribute int16u accessControlEntriesPerFabric = 4; @@ -166,9 +166,9 @@ server cluster AdministratorCommissioning = 60 { INT16U commissioningTimeout = 0; } - timed command OpenCommissioningWindow(OpenCommissioningWindowRequest): DefaultSuccess = 0; - timed command OpenBasicCommissioningWindow(OpenBasicCommissioningWindowRequest): DefaultSuccess = 1; - timed command RevokeCommissioning(): DefaultSuccess = 2; + timed command access(invoke: administer) OpenCommissioningWindow(OpenCommissioningWindowRequest): DefaultSuccess = 0; + timed command access(invoke: administer) OpenBasicCommissioningWindow(OpenBasicCommissioningWindowRequest): DefaultSuccess = 1; + timed command access(invoke: administer) RevokeCommissioning(): DefaultSuccess = 2; } server cluster Basic = 40 { @@ -196,8 +196,8 @@ server cluster Basic = 40 { readonly attribute vendor_id vendorID = 2; readonly attribute char_string<32> productName = 3; readonly attribute int16u productID = 4; - attribute char_string<32> nodeLabel = 5; - attribute char_string<2> location = 6; + attribute access(write: manage) char_string<32> nodeLabel = 5; + attribute access(write: administer) char_string<2> location = 6; readonly attribute int16u hardwareVersion = 7; readonly attribute char_string<64> hardwareVersionString = 8; readonly attribute int32u softwareVersion = 9; @@ -207,7 +207,7 @@ server cluster Basic = 40 { readonly attribute long_char_string<256> productURL = 13; readonly attribute char_string<64> productLabel = 14; readonly attribute char_string<32> serialNumber = 15; - attribute boolean localConfigDisabled = 16; + attribute access(write: manage) boolean localConfigDisabled = 16; readonly attribute boolean reachable = 17; readonly attribute char_string<32> uniqueID = 18; readonly attribute CapabilityMinimaStruct capabilityMinima = 19; @@ -308,7 +308,7 @@ server cluster GeneralCommissioning = 48 { INT16U failSafeExpiryLengthSeconds = 0; } - attribute int64u breadcrumb = 0; + attribute access(write: administer) int64u breadcrumb = 0; readonly attribute BasicCommissioningInfo basicCommissioningInfo = 1; readonly attribute RegulatoryLocationType regulatoryConfig = 2; readonly attribute RegulatoryLocationType locationCapability = 3; @@ -342,9 +342,9 @@ server cluster GeneralCommissioning = 48 { CHAR_STRING debugText = 1; } - command ArmFailSafe(ArmFailSafeRequest): ArmFailSafeResponse = 0; - command SetRegulatoryConfig(SetRegulatoryConfigRequest): SetRegulatoryConfigResponse = 2; - command CommissioningComplete(): CommissioningCompleteResponse = 4; + command access(invoke: administer) ArmFailSafe(ArmFailSafeRequest): ArmFailSafeResponse = 0; + command access(invoke: administer) SetRegulatoryConfig(SetRegulatoryConfigRequest): SetRegulatoryConfigResponse = 2; + command access(invoke: administer) CommissioningComplete(): CommissioningCompleteResponse = 4; } server cluster GeneralDiagnostics = 51 { @@ -468,7 +468,7 @@ server cluster LevelControl = 8 { attribute nullable int16u onTransitionTime = 18; attribute nullable int16u offTransitionTime = 19; attribute nullable int8u defaultMoveRate = 20; - attribute nullable int8u startUpCurrentLevel = 16384; + attribute access(write: manage) nullable int8u startUpCurrentLevel = 16384; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; @@ -595,14 +595,14 @@ server cluster NetworkCommissioning = 49 { INT8U lqi = 7; } - readonly attribute int8u maxNetworks = 0; - readonly attribute NetworkInfo networks[] = 1; + readonly attribute access(read: administer) int8u maxNetworks = 0; + readonly attribute access(read: administer) NetworkInfo networks[] = 1; readonly attribute int8u scanMaxTimeSeconds = 2; readonly attribute int8u connectMaxTimeSeconds = 3; - attribute boolean interfaceEnabled = 4; - readonly attribute nullable NetworkCommissioningStatus lastNetworkingStatus = 5; - readonly attribute nullable octet_string<32> lastNetworkID = 6; - readonly attribute nullable int32s lastConnectErrorValue = 7; + attribute access(write: administer) boolean interfaceEnabled = 4; + readonly attribute access(read: administer) nullable NetworkCommissioningStatus lastNetworkingStatus = 5; + readonly attribute access(read: administer) nullable octet_string<32> lastNetworkID = 6; + readonly attribute access(read: administer) nullable int32s lastConnectErrorValue = 7; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; @@ -657,12 +657,12 @@ server cluster NetworkCommissioning = 49 { nullable INT32S errorValue = 2; } - command ScanNetworks(ScanNetworksRequest): ScanNetworksResponse = 0; - command AddOrUpdateWiFiNetwork(AddOrUpdateWiFiNetworkRequest): NetworkConfigResponse = 2; - command AddOrUpdateThreadNetwork(AddOrUpdateThreadNetworkRequest): NetworkConfigResponse = 3; - command RemoveNetwork(RemoveNetworkRequest): NetworkConfigResponse = 4; - command ConnectNetwork(ConnectNetworkRequest): ConnectNetworkResponse = 6; - command ReorderNetwork(ReorderNetworkRequest): NetworkConfigResponse = 8; + command access(invoke: administer) ScanNetworks(ScanNetworksRequest): ScanNetworksResponse = 0; + command access(invoke: administer) AddOrUpdateWiFiNetwork(AddOrUpdateWiFiNetworkRequest): NetworkConfigResponse = 2; + command access(invoke: administer) AddOrUpdateThreadNetwork(AddOrUpdateThreadNetworkRequest): NetworkConfigResponse = 3; + command access(invoke: administer) RemoveNetwork(RemoveNetworkRequest): NetworkConfigResponse = 4; + command access(invoke: administer) ConnectNetwork(ConnectNetworkRequest): ConnectNetworkResponse = 6; + command access(invoke: administer) ReorderNetwork(ReorderNetworkRequest): NetworkConfigResponse = 8; } server cluster OnOff = 6 { @@ -732,7 +732,7 @@ server cluster OperationalCredentials = 62 { fabric_idx fabricIndex = 254; } - readonly attribute NOCStruct NOCs[] = 0; + readonly attribute access(read: administer) NOCStruct NOCs[] = 0; readonly attribute FabricDescriptor fabrics[] = 1; readonly attribute int8u supportedFabrics = 2; readonly attribute int8u commissionedFabrics = 3; @@ -801,15 +801,15 @@ server cluster OperationalCredentials = 62 { optional CHAR_STRING debugText = 2; } - command AttestationRequest(AttestationRequestRequest): AttestationResponse = 0; - command CertificateChainRequest(CertificateChainRequestRequest): CertificateChainResponse = 2; - command CSRRequest(CSRRequestRequest): CSRResponse = 4; - command AddNOC(AddNOCRequest): NOCResponse = 6; - command UpdateNOC(UpdateNOCRequest): NOCResponse = 7; - command UpdateFabricLabel(UpdateFabricLabelRequest): NOCResponse = 9; - command RemoveFabric(RemoveFabricRequest): NOCResponse = 10; - command AddTrustedRootCertificate(AddTrustedRootCertificateRequest): DefaultSuccess = 11; - command RemoveTrustedRootCertificate(RemoveTrustedRootCertificateRequest): DefaultSuccess = 12; + command access(invoke: administer) AttestationRequest(AttestationRequestRequest): AttestationResponse = 0; + command access(invoke: administer) CertificateChainRequest(CertificateChainRequestRequest): CertificateChainResponse = 2; + command access(invoke: administer) CSRRequest(CSRRequestRequest): CSRResponse = 4; + command access(invoke: administer) AddNOC(AddNOCRequest): NOCResponse = 6; + command access(invoke: administer) UpdateNOC(UpdateNOCRequest): NOCResponse = 7; + command access(invoke: administer) UpdateFabricLabel(UpdateFabricLabelRequest): NOCResponse = 9; + command access(invoke: administer) RemoveFabric(RemoveFabricRequest): NOCResponse = 10; + command access(invoke: administer) AddTrustedRootCertificate(AddTrustedRootCertificateRequest): DefaultSuccess = 11; + command access(invoke: administer) RemoveTrustedRootCertificate(RemoveTrustedRootCertificateRequest): DefaultSuccess = 12; } server cluster SoftwareDiagnostics = 52 { @@ -1066,7 +1066,7 @@ server cluster UnitLocalization = 45 { } server cluster UserLabel = 65 { - attribute LabelStruct labelList[] = 0; + attribute access(write: manage) LabelStruct labelList[] = 0; readonly attribute int16u clusterRevision = 65533; } diff --git a/examples/door-lock-app/door-lock-common/door-lock-app.matter b/examples/door-lock-app/door-lock-common/door-lock-app.matter index 0f1a29fd00654d..c35b866c4388fa 100644 --- a/examples/door-lock-app/door-lock-common/door-lock-app.matter +++ b/examples/door-lock-app/door-lock-common/door-lock-app.matter @@ -46,7 +46,7 @@ server cluster AccessControl = 31 { fabric_idx fabricIndex = 254; } - info event AccessControlEntryChanged = 0 { + info event access(read: administer) AccessControlEntryChanged = 0 { nullable node_id adminNodeID = 1; nullable INT16U adminPasscodeID = 2; ChangeTypeEnum changeType = 3; @@ -54,7 +54,7 @@ server cluster AccessControl = 31 { fabric_idx adminFabricIndex = 254; } - info event AccessControlExtensionChanged = 1 { + info event access(read: administer) AccessControlExtensionChanged = 1 { nullable node_id adminNodeID = 1; nullable INT16U adminPasscodeID = 2; ChangeTypeEnum changeType = 3; @@ -62,8 +62,8 @@ server cluster AccessControl = 31 { fabric_idx adminFabricIndex = 254; } - attribute AccessControlEntry acl[] = 0; - attribute ExtensionEntry extension[] = 1; + attribute access(read: administer, write: administer) AccessControlEntry acl[] = 0; + attribute access(read: administer, write: administer) ExtensionEntry extension[] = 1; readonly attribute int16u subjectsPerAccessControlEntry = 2; readonly attribute int16u targetsPerAccessControlEntry = 3; readonly attribute int16u accessControlEntriesPerFabric = 4; @@ -101,9 +101,9 @@ server cluster AdministratorCommissioning = 60 { INT16U commissioningTimeout = 0; } - timed command OpenCommissioningWindow(OpenCommissioningWindowRequest): DefaultSuccess = 0; - timed command OpenBasicCommissioningWindow(OpenBasicCommissioningWindowRequest): DefaultSuccess = 1; - timed command RevokeCommissioning(): DefaultSuccess = 2; + timed command access(invoke: administer) OpenCommissioningWindow(OpenCommissioningWindowRequest): DefaultSuccess = 0; + timed command access(invoke: administer) OpenBasicCommissioningWindow(OpenBasicCommissioningWindowRequest): DefaultSuccess = 1; + timed command access(invoke: administer) RevokeCommissioning(): DefaultSuccess = 2; } server cluster Basic = 40 { @@ -131,8 +131,8 @@ server cluster Basic = 40 { readonly attribute vendor_id vendorID = 2; readonly attribute char_string<32> productName = 3; readonly attribute int16u productID = 4; - attribute char_string<32> nodeLabel = 5; - attribute char_string<2> location = 6; + attribute access(write: manage) char_string<32> nodeLabel = 5; + attribute access(write: administer) char_string<2> location = 6; readonly attribute int16u hardwareVersion = 7; readonly attribute char_string<64> hardwareVersionString = 8; readonly attribute int32u softwareVersion = 9; @@ -142,7 +142,7 @@ server cluster Basic = 40 { readonly attribute long_char_string<256> productURL = 13; readonly attribute char_string<64> productLabel = 14; readonly attribute char_string<32> serialNumber = 15; - attribute boolean localConfigDisabled = 16; + attribute access(write: manage) boolean localConfigDisabled = 16; readonly attribute boolean reachable = 17; readonly attribute char_string<32> uniqueID = 18; readonly attribute CapabilityMinimaStruct capabilityMinima = 19; @@ -585,16 +585,16 @@ server cluster DoorLock = 257 { readonly attribute int8u maxRFIDCodeLength = 25; readonly attribute int8u minRFIDCodeLength = 26; readonly attribute DlCredentialRuleMask credentialRulesSupport = 27; - attribute char_string<3> language = 33; - attribute int32u autoRelockTime = 35; - attribute int8u soundVolume = 36; - attribute DlOperatingMode operatingMode = 37; + attribute access(write: manage) char_string<3> language = 33; + attribute access(write: manage) int32u autoRelockTime = 35; + attribute access(write: manage) int8u soundVolume = 36; + attribute access(write: manage) DlOperatingMode operatingMode = 37; readonly attribute DlSupportedOperatingModes supportedOperatingModes = 38; - attribute boolean enableOneTouchLocking = 41; - attribute boolean enablePrivacyModeButton = 43; - attribute int8u wrongCodeEntryLimit = 48; - attribute int8u userCodeTemporaryDisableTime = 49; - attribute boolean requirePINforRemoteOperation = 51; + attribute access(write: manage) boolean enableOneTouchLocking = 41; + attribute access(write: manage) boolean enablePrivacyModeButton = 43; + attribute access(write: administer) int8u wrongCodeEntryLimit = 48; + attribute access(write: administer) int8u userCodeTemporaryDisableTime = 49; + attribute access(write: administer) boolean requirePINforRemoteOperation = 51; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; @@ -724,18 +724,18 @@ server cluster DoorLock = 257 { timed command LockDoor(LockDoorRequest): DefaultSuccess = 0; timed command UnlockDoor(UnlockDoorRequest): DefaultSuccess = 1; - command SetWeekDaySchedule(SetWeekDayScheduleRequest): DefaultSuccess = 11; - command GetWeekDaySchedule(GetWeekDayScheduleRequest): GetWeekDayScheduleResponse = 12; - command ClearWeekDaySchedule(ClearWeekDayScheduleRequest): DefaultSuccess = 13; - command SetYearDaySchedule(SetYearDayScheduleRequest): DefaultSuccess = 14; - command GetYearDaySchedule(GetYearDayScheduleRequest): GetYearDayScheduleResponse = 15; - command ClearYearDaySchedule(ClearYearDayScheduleRequest): DefaultSuccess = 16; - timed command SetUser(SetUserRequest): DefaultSuccess = 26; - command GetUser(GetUserRequest): GetUserResponse = 27; - timed command ClearUser(ClearUserRequest): DefaultSuccess = 29; - timed command SetCredential(SetCredentialRequest): SetCredentialResponse = 34; - command GetCredentialStatus(GetCredentialStatusRequest): GetCredentialStatusResponse = 36; - timed command ClearCredential(ClearCredentialRequest): DefaultSuccess = 38; + command access(invoke: administer) SetWeekDaySchedule(SetWeekDayScheduleRequest): DefaultSuccess = 11; + command access(invoke: administer) GetWeekDaySchedule(GetWeekDayScheduleRequest): GetWeekDayScheduleResponse = 12; + command access(invoke: administer) ClearWeekDaySchedule(ClearWeekDayScheduleRequest): DefaultSuccess = 13; + command access(invoke: administer) SetYearDaySchedule(SetYearDayScheduleRequest): DefaultSuccess = 14; + command access(invoke: administer) GetYearDaySchedule(GetYearDayScheduleRequest): GetYearDayScheduleResponse = 15; + command access(invoke: administer) ClearYearDaySchedule(ClearYearDayScheduleRequest): DefaultSuccess = 16; + timed command access(invoke: administer) SetUser(SetUserRequest): DefaultSuccess = 26; + command access(invoke: administer) GetUser(GetUserRequest): GetUserResponse = 27; + timed command access(invoke: administer) ClearUser(ClearUserRequest): DefaultSuccess = 29; + timed command access(invoke: administer) SetCredential(SetCredentialRequest): SetCredentialResponse = 34; + command access(invoke: administer) GetCredentialStatus(GetCredentialStatusRequest): GetCredentialStatusResponse = 36; + timed command access(invoke: administer) ClearCredential(ClearCredentialRequest): DefaultSuccess = 38; } server cluster EthernetNetworkDiagnostics = 55 { @@ -789,7 +789,7 @@ server cluster GeneralCommissioning = 48 { INT16U failSafeExpiryLengthSeconds = 0; } - attribute int64u breadcrumb = 0; + attribute access(write: administer) int64u breadcrumb = 0; readonly attribute BasicCommissioningInfo basicCommissioningInfo = 1; readonly attribute RegulatoryLocationType regulatoryConfig = 2; readonly attribute RegulatoryLocationType locationCapability = 3; @@ -823,9 +823,9 @@ server cluster GeneralCommissioning = 48 { CHAR_STRING debugText = 1; } - command ArmFailSafe(ArmFailSafeRequest): ArmFailSafeResponse = 0; - command SetRegulatoryConfig(SetRegulatoryConfigRequest): SetRegulatoryConfigResponse = 2; - command CommissioningComplete(): CommissioningCompleteResponse = 4; + command access(invoke: administer) ArmFailSafe(ArmFailSafeRequest): ArmFailSafeResponse = 0; + command access(invoke: administer) SetRegulatoryConfig(SetRegulatoryConfigRequest): SetRegulatoryConfigResponse = 2; + command access(invoke: administer) CommissioningComplete(): CommissioningCompleteResponse = 4; } server cluster GeneralDiagnostics = 51 { @@ -989,14 +989,14 @@ server cluster NetworkCommissioning = 49 { INT8U lqi = 7; } - readonly attribute int8u maxNetworks = 0; - readonly attribute NetworkInfo networks[] = 1; + readonly attribute access(read: administer) int8u maxNetworks = 0; + readonly attribute access(read: administer) NetworkInfo networks[] = 1; readonly attribute int8u scanMaxTimeSeconds = 2; readonly attribute int8u connectMaxTimeSeconds = 3; - attribute boolean interfaceEnabled = 4; - readonly attribute nullable NetworkCommissioningStatus lastNetworkingStatus = 5; - readonly attribute nullable octet_string<32> lastNetworkID = 6; - readonly attribute nullable int32s lastConnectErrorValue = 7; + attribute access(write: administer) boolean interfaceEnabled = 4; + readonly attribute access(read: administer) nullable NetworkCommissioningStatus lastNetworkingStatus = 5; + readonly attribute access(read: administer) nullable octet_string<32> lastNetworkID = 6; + readonly attribute access(read: administer) nullable int32s lastConnectErrorValue = 7; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; @@ -1051,12 +1051,12 @@ server cluster NetworkCommissioning = 49 { nullable INT32S errorValue = 2; } - command ScanNetworks(ScanNetworksRequest): ScanNetworksResponse = 0; - command AddOrUpdateWiFiNetwork(AddOrUpdateWiFiNetworkRequest): NetworkConfigResponse = 2; - command AddOrUpdateThreadNetwork(AddOrUpdateThreadNetworkRequest): NetworkConfigResponse = 3; - command RemoveNetwork(RemoveNetworkRequest): NetworkConfigResponse = 4; - command ConnectNetwork(ConnectNetworkRequest): ConnectNetworkResponse = 6; - command ReorderNetwork(ReorderNetworkRequest): NetworkConfigResponse = 8; + command access(invoke: administer) ScanNetworks(ScanNetworksRequest): ScanNetworksResponse = 0; + command access(invoke: administer) AddOrUpdateWiFiNetwork(AddOrUpdateWiFiNetworkRequest): NetworkConfigResponse = 2; + command access(invoke: administer) AddOrUpdateThreadNetwork(AddOrUpdateThreadNetworkRequest): NetworkConfigResponse = 3; + command access(invoke: administer) RemoveNetwork(RemoveNetworkRequest): NetworkConfigResponse = 4; + command access(invoke: administer) ConnectNetwork(ConnectNetworkRequest): ConnectNetworkResponse = 6; + command access(invoke: administer) ReorderNetwork(ReorderNetworkRequest): NetworkConfigResponse = 8; } server cluster OperationalCredentials = 62 { @@ -1088,7 +1088,7 @@ server cluster OperationalCredentials = 62 { fabric_idx fabricIndex = 254; } - readonly attribute NOCStruct NOCs[] = 0; + readonly attribute access(read: administer) NOCStruct NOCs[] = 0; readonly attribute FabricDescriptor fabrics[] = 1; readonly attribute int8u supportedFabrics = 2; readonly attribute int8u commissionedFabrics = 3; @@ -1157,15 +1157,15 @@ server cluster OperationalCredentials = 62 { optional CHAR_STRING debugText = 2; } - command AttestationRequest(AttestationRequestRequest): AttestationResponse = 0; - command CertificateChainRequest(CertificateChainRequestRequest): CertificateChainResponse = 2; - command CSRRequest(CSRRequestRequest): CSRResponse = 4; - command AddNOC(AddNOCRequest): NOCResponse = 6; - command UpdateNOC(UpdateNOCRequest): NOCResponse = 7; - command UpdateFabricLabel(UpdateFabricLabelRequest): NOCResponse = 9; - command RemoveFabric(RemoveFabricRequest): NOCResponse = 10; - command AddTrustedRootCertificate(AddTrustedRootCertificateRequest): DefaultSuccess = 11; - command RemoveTrustedRootCertificate(RemoveTrustedRootCertificateRequest): DefaultSuccess = 12; + command access(invoke: administer) AttestationRequest(AttestationRequestRequest): AttestationResponse = 0; + command access(invoke: administer) CertificateChainRequest(CertificateChainRequestRequest): CertificateChainResponse = 2; + command access(invoke: administer) CSRRequest(CSRRequestRequest): CSRResponse = 4; + command access(invoke: administer) AddNOC(AddNOCRequest): NOCResponse = 6; + command access(invoke: administer) UpdateNOC(UpdateNOCRequest): NOCResponse = 7; + command access(invoke: administer) UpdateFabricLabel(UpdateFabricLabelRequest): NOCResponse = 9; + command access(invoke: administer) RemoveFabric(RemoveFabricRequest): NOCResponse = 10; + command access(invoke: administer) AddTrustedRootCertificate(AddTrustedRootCertificateRequest): DefaultSuccess = 11; + command access(invoke: administer) RemoveTrustedRootCertificate(RemoveTrustedRootCertificateRequest): DefaultSuccess = 12; } server cluster PowerSource = 47 { @@ -1451,7 +1451,7 @@ server cluster TimeFormatLocalization = 44 { } server cluster UserLabel = 65 { - attribute LabelStruct labelList[] = 0; + attribute access(write: manage) LabelStruct labelList[] = 0; readonly attribute int16u clusterRevision = 65533; } diff --git a/examples/light-switch-app/light-switch-common/light-switch-app.matter b/examples/light-switch-app/light-switch-common/light-switch-app.matter index fdae3849a14521..fe365d19079581 100644 --- a/examples/light-switch-app/light-switch-common/light-switch-app.matter +++ b/examples/light-switch-app/light-switch-common/light-switch-app.matter @@ -46,7 +46,7 @@ server cluster AccessControl = 31 { fabric_idx fabricIndex = 254; } - info event AccessControlEntryChanged = 0 { + info event access(read: administer) AccessControlEntryChanged = 0 { nullable node_id adminNodeID = 1; nullable INT16U adminPasscodeID = 2; ChangeTypeEnum changeType = 3; @@ -54,7 +54,7 @@ server cluster AccessControl = 31 { fabric_idx adminFabricIndex = 254; } - info event AccessControlExtensionChanged = 1 { + info event access(read: administer) AccessControlExtensionChanged = 1 { nullable node_id adminNodeID = 1; nullable INT16U adminPasscodeID = 2; ChangeTypeEnum changeType = 3; @@ -62,8 +62,8 @@ server cluster AccessControl = 31 { fabric_idx adminFabricIndex = 254; } - attribute AccessControlEntry acl[] = 0; - attribute ExtensionEntry extension[] = 1; + attribute access(read: administer, write: administer) AccessControlEntry acl[] = 0; + attribute access(read: administer, write: administer) ExtensionEntry extension[] = 1; readonly attribute int16u subjectsPerAccessControlEntry = 2; readonly attribute int16u targetsPerAccessControlEntry = 3; readonly attribute int16u accessControlEntriesPerFabric = 4; @@ -101,9 +101,9 @@ server cluster AdministratorCommissioning = 60 { INT16U commissioningTimeout = 0; } - timed command OpenCommissioningWindow(OpenCommissioningWindowRequest): DefaultSuccess = 0; - timed command OpenBasicCommissioningWindow(OpenBasicCommissioningWindowRequest): DefaultSuccess = 1; - timed command RevokeCommissioning(): DefaultSuccess = 2; + timed command access(invoke: administer) OpenCommissioningWindow(OpenCommissioningWindowRequest): DefaultSuccess = 0; + timed command access(invoke: administer) OpenBasicCommissioningWindow(OpenBasicCommissioningWindowRequest): DefaultSuccess = 1; + timed command access(invoke: administer) RevokeCommissioning(): DefaultSuccess = 2; } server cluster Basic = 40 { @@ -131,8 +131,8 @@ server cluster Basic = 40 { readonly attribute vendor_id vendorID = 2; readonly attribute char_string<32> productName = 3; readonly attribute int16u productID = 4; - attribute char_string<32> nodeLabel = 5; - attribute char_string<2> location = 6; + attribute access(write: manage) char_string<32> nodeLabel = 5; + attribute access(write: administer) char_string<2> location = 6; readonly attribute int16u hardwareVersion = 7; readonly attribute char_string<64> hardwareVersionString = 8; readonly attribute int32u softwareVersion = 9; @@ -142,7 +142,7 @@ server cluster Basic = 40 { readonly attribute long_char_string<256> productURL = 13; readonly attribute char_string<64> productLabel = 14; readonly attribute char_string<32> serialNumber = 15; - attribute boolean localConfigDisabled = 16; + attribute access(write: manage) boolean localConfigDisabled = 16; readonly attribute boolean reachable = 17; readonly attribute char_string<32> uniqueID = 18; readonly attribute CapabilityMinimaStruct capabilityMinima = 19; @@ -252,7 +252,7 @@ client cluster ColorControl = 768 { readonly attribute int16u colorTempPhysicalMin = 16395; readonly attribute int16u colorTempPhysicalMax = 16396; readonly attribute int16u coupleColorTempToLevelMinMireds = 16397; - attribute int16u startUpColorTemperatureMireds = 16400; + attribute access(write: manage) int16u startUpColorTemperatureMireds = 16400; readonly attribute int16u clusterRevision = 65533; request struct MoveToHueRequest { @@ -494,7 +494,7 @@ server cluster GeneralCommissioning = 48 { INT16U failSafeExpiryLengthSeconds = 0; } - attribute int64u breadcrumb = 0; + attribute access(write: administer) int64u breadcrumb = 0; readonly attribute BasicCommissioningInfo basicCommissioningInfo = 1; readonly attribute RegulatoryLocationType regulatoryConfig = 2; readonly attribute RegulatoryLocationType locationCapability = 3; @@ -528,9 +528,9 @@ server cluster GeneralCommissioning = 48 { CHAR_STRING debugText = 1; } - command ArmFailSafe(ArmFailSafeRequest): ArmFailSafeResponse = 0; - command SetRegulatoryConfig(SetRegulatoryConfigRequest): SetRegulatoryConfigResponse = 2; - command CommissioningComplete(): CommissioningCompleteResponse = 4; + command access(invoke: administer) ArmFailSafe(ArmFailSafeRequest): ArmFailSafeResponse = 0; + command access(invoke: administer) SetRegulatoryConfig(SetRegulatoryConfigRequest): SetRegulatoryConfigResponse = 2; + command access(invoke: administer) CommissioningComplete(): CommissioningCompleteResponse = 4; } server cluster GeneralDiagnostics = 51 { @@ -654,7 +654,7 @@ server cluster GroupKeyManagement = 63 { nullable epoch_us epochStartTime2 = 7; } - attribute GroupKeyMapStruct groupKeyMap[] = 0; + attribute access(write: manage) GroupKeyMapStruct groupKeyMap[] = 0; readonly attribute GroupInfoMapStruct groupTable[] = 1; readonly attribute int16u maxGroupsPerFabric = 2; readonly attribute int16u maxGroupKeysPerFabric = 3; @@ -684,10 +684,10 @@ server cluster GroupKeyManagement = 63 { INT16U groupKeySetIDs[] = 0; } - command KeySetWrite(KeySetWriteRequest): DefaultSuccess = 0; - command KeySetRead(KeySetReadRequest): KeySetReadResponse = 1; - command KeySetRemove(KeySetRemoveRequest): DefaultSuccess = 3; - command KeySetReadAllIndices(KeySetReadAllIndicesRequest): KeySetReadAllIndicesResponse = 4; + command access(invoke: administer) KeySetWrite(KeySetWriteRequest): DefaultSuccess = 0; + command access(invoke: administer) KeySetRead(KeySetReadRequest): KeySetReadResponse = 1; + command access(invoke: administer) KeySetRemove(KeySetRemoveRequest): DefaultSuccess = 3; + command access(invoke: administer) KeySetReadAllIndices(KeySetReadAllIndicesRequest): KeySetReadAllIndicesResponse = 4; } server cluster Groups = 4 { @@ -737,12 +737,12 @@ server cluster Groups = 4 { group_id groupId = 1; } - command AddGroup(AddGroupRequest): AddGroupResponse = 0; + command access(invoke: manage) AddGroup(AddGroupRequest): AddGroupResponse = 0; command ViewGroup(ViewGroupRequest): ViewGroupResponse = 1; command GetGroupMembership(GetGroupMembershipRequest): GetGroupMembershipResponse = 2; - command RemoveGroup(RemoveGroupRequest): RemoveGroupResponse = 3; - command RemoveAllGroups(): DefaultSuccess = 4; - command AddGroupIfIdentifying(AddGroupIfIdentifyingRequest): DefaultSuccess = 5; + command access(invoke: manage) RemoveGroup(RemoveGroupRequest): RemoveGroupResponse = 3; + command access(invoke: manage) RemoveAllGroups(): DefaultSuccess = 4; + command access(invoke: manage) AddGroupIfIdentifying(AddGroupIfIdentifyingRequest): DefaultSuccess = 5; } client cluster Identify = 3 { @@ -815,9 +815,9 @@ server cluster Identify = 3 { INT16U timeout = 0; } - command Identify(IdentifyRequest): DefaultSuccess = 0; - command IdentifyQuery(): IdentifyQueryResponse = 1; - command TriggerEffect(TriggerEffectRequest): DefaultSuccess = 64; + command access(invoke: manage) Identify(IdentifyRequest): DefaultSuccess = 0; + command access(invoke: manage) IdentifyQuery(): IdentifyQueryResponse = 1; + command access(invoke: manage) TriggerEffect(TriggerEffectRequest): DefaultSuccess = 64; } server cluster LocalizationConfiguration = 43 { @@ -889,14 +889,14 @@ server cluster NetworkCommissioning = 49 { INT8U lqi = 7; } - readonly attribute int8u maxNetworks = 0; - readonly attribute NetworkInfo networks[] = 1; + readonly attribute access(read: administer) int8u maxNetworks = 0; + readonly attribute access(read: administer) NetworkInfo networks[] = 1; readonly attribute int8u scanMaxTimeSeconds = 2; readonly attribute int8u connectMaxTimeSeconds = 3; - attribute boolean interfaceEnabled = 4; - readonly attribute nullable NetworkCommissioningStatus lastNetworkingStatus = 5; - readonly attribute nullable octet_string<32> lastNetworkID = 6; - readonly attribute nullable int32s lastConnectErrorValue = 7; + attribute access(write: administer) boolean interfaceEnabled = 4; + readonly attribute access(read: administer) nullable NetworkCommissioningStatus lastNetworkingStatus = 5; + readonly attribute access(read: administer) nullable octet_string<32> lastNetworkID = 6; + readonly attribute access(read: administer) nullable int32s lastConnectErrorValue = 7; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; @@ -951,12 +951,12 @@ server cluster NetworkCommissioning = 49 { nullable INT32S errorValue = 2; } - command ScanNetworks(ScanNetworksRequest): ScanNetworksResponse = 0; - command AddOrUpdateWiFiNetwork(AddOrUpdateWiFiNetworkRequest): NetworkConfigResponse = 2; - command AddOrUpdateThreadNetwork(AddOrUpdateThreadNetworkRequest): NetworkConfigResponse = 3; - command RemoveNetwork(RemoveNetworkRequest): NetworkConfigResponse = 4; - command ConnectNetwork(ConnectNetworkRequest): ConnectNetworkResponse = 6; - command ReorderNetwork(ReorderNetworkRequest): NetworkConfigResponse = 8; + command access(invoke: administer) ScanNetworks(ScanNetworksRequest): ScanNetworksResponse = 0; + command access(invoke: administer) AddOrUpdateWiFiNetwork(AddOrUpdateWiFiNetworkRequest): NetworkConfigResponse = 2; + command access(invoke: administer) AddOrUpdateThreadNetwork(AddOrUpdateThreadNetworkRequest): NetworkConfigResponse = 3; + command access(invoke: administer) RemoveNetwork(RemoveNetworkRequest): NetworkConfigResponse = 4; + command access(invoke: administer) ConnectNetwork(ConnectNetworkRequest): ConnectNetworkResponse = 6; + command access(invoke: administer) ReorderNetwork(ReorderNetworkRequest): NetworkConfigResponse = 8; } client cluster OtaSoftwareUpdateProvider = 41 { @@ -1127,7 +1127,7 @@ client cluster OnOff = 6 { readonly attribute boolean globalSceneControl = 16384; attribute int16u onTime = 16385; attribute int16u offWaitTime = 16386; - attribute nullable OnOffStartUpOnOff startUpOnOff = 16387; + attribute access(write: manage) nullable OnOffStartUpOnOff startUpOnOff = 16387; readonly attribute attrib_id attributeList[] = 65531; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; @@ -1166,7 +1166,7 @@ server cluster OperationalCredentials = 62 { fabric_idx fabricIndex = 254; } - readonly attribute NOCStruct NOCs[] = 0; + readonly attribute access(read: administer) NOCStruct NOCs[] = 0; readonly attribute FabricDescriptor fabrics[] = 1; readonly attribute int8u supportedFabrics = 2; readonly attribute int8u commissionedFabrics = 3; @@ -1235,15 +1235,15 @@ server cluster OperationalCredentials = 62 { optional CHAR_STRING debugText = 2; } - command AttestationRequest(AttestationRequestRequest): AttestationResponse = 0; - command CertificateChainRequest(CertificateChainRequestRequest): CertificateChainResponse = 2; - command CSRRequest(CSRRequestRequest): CSRResponse = 4; - command AddNOC(AddNOCRequest): NOCResponse = 6; - command UpdateNOC(UpdateNOCRequest): NOCResponse = 7; - command UpdateFabricLabel(UpdateFabricLabelRequest): NOCResponse = 9; - command RemoveFabric(RemoveFabricRequest): NOCResponse = 10; - command AddTrustedRootCertificate(AddTrustedRootCertificateRequest): DefaultSuccess = 11; - command RemoveTrustedRootCertificate(RemoveTrustedRootCertificateRequest): DefaultSuccess = 12; + command access(invoke: administer) AttestationRequest(AttestationRequestRequest): AttestationResponse = 0; + command access(invoke: administer) CertificateChainRequest(CertificateChainRequestRequest): CertificateChainResponse = 2; + command access(invoke: administer) CSRRequest(CSRRequestRequest): CSRResponse = 4; + command access(invoke: administer) AddNOC(AddNOCRequest): NOCResponse = 6; + command access(invoke: administer) UpdateNOC(UpdateNOCRequest): NOCResponse = 7; + command access(invoke: administer) UpdateFabricLabel(UpdateFabricLabelRequest): NOCResponse = 9; + command access(invoke: administer) RemoveFabric(RemoveFabricRequest): NOCResponse = 10; + command access(invoke: administer) AddTrustedRootCertificate(AddTrustedRootCertificateRequest): DefaultSuccess = 11; + command access(invoke: administer) RemoveTrustedRootCertificate(RemoveTrustedRootCertificateRequest): DefaultSuccess = 12; } client cluster Scenes = 5 { @@ -1342,11 +1342,11 @@ client cluster Scenes = 5 { INT8U sceneList[] = 4; } - command AddScene(AddSceneRequest): AddSceneResponse = 0; + command access(invoke: manage) AddScene(AddSceneRequest): AddSceneResponse = 0; command ViewScene(ViewSceneRequest): ViewSceneResponse = 1; - command RemoveScene(RemoveSceneRequest): RemoveSceneResponse = 2; - command RemoveAllScenes(RemoveAllScenesRequest): RemoveAllScenesResponse = 3; - command StoreScene(StoreSceneRequest): StoreSceneResponse = 4; + command access(invoke: manage) RemoveScene(RemoveSceneRequest): RemoveSceneResponse = 2; + command access(invoke: manage) RemoveAllScenes(RemoveAllScenesRequest): RemoveAllScenesResponse = 3; + command access(invoke: manage) StoreScene(StoreSceneRequest): StoreSceneResponse = 4; command RecallScene(RecallSceneRequest): DefaultSuccess = 5; command GetSceneMembership(GetSceneMembershipRequest): GetSceneMembershipResponse = 6; } @@ -1588,7 +1588,7 @@ server cluster TimeFormatLocalization = 44 { } server cluster UserLabel = 65 { - attribute LabelStruct labelList[] = 0; + attribute access(write: manage) LabelStruct labelList[] = 0; readonly attribute int16u clusterRevision = 65533; } diff --git a/examples/lighting-app/lighting-common/lighting-app.matter b/examples/lighting-app/lighting-common/lighting-app.matter index f1b1a69188d0f7..7830bcc39c7641 100644 --- a/examples/lighting-app/lighting-common/lighting-app.matter +++ b/examples/lighting-app/lighting-common/lighting-app.matter @@ -46,7 +46,7 @@ server cluster AccessControl = 31 { fabric_idx fabricIndex = 254; } - info event AccessControlEntryChanged = 0 { + info event access(read: administer) AccessControlEntryChanged = 0 { nullable node_id adminNodeID = 1; nullable INT16U adminPasscodeID = 2; ChangeTypeEnum changeType = 3; @@ -54,7 +54,7 @@ server cluster AccessControl = 31 { fabric_idx adminFabricIndex = 254; } - info event AccessControlExtensionChanged = 1 { + info event access(read: administer) AccessControlExtensionChanged = 1 { nullable node_id adminNodeID = 1; nullable INT16U adminPasscodeID = 2; ChangeTypeEnum changeType = 3; @@ -62,8 +62,8 @@ server cluster AccessControl = 31 { fabric_idx adminFabricIndex = 254; } - attribute AccessControlEntry acl[] = 0; - attribute ExtensionEntry extension[] = 1; + attribute access(read: administer, write: administer) AccessControlEntry acl[] = 0; + attribute access(read: administer, write: administer) ExtensionEntry extension[] = 1; readonly attribute int16u subjectsPerAccessControlEntry = 2; readonly attribute int16u targetsPerAccessControlEntry = 3; readonly attribute int16u accessControlEntriesPerFabric = 4; @@ -101,9 +101,9 @@ server cluster AdministratorCommissioning = 60 { INT16U commissioningTimeout = 0; } - timed command OpenCommissioningWindow(OpenCommissioningWindowRequest): DefaultSuccess = 0; - timed command OpenBasicCommissioningWindow(OpenBasicCommissioningWindowRequest): DefaultSuccess = 1; - timed command RevokeCommissioning(): DefaultSuccess = 2; + timed command access(invoke: administer) OpenCommissioningWindow(OpenCommissioningWindowRequest): DefaultSuccess = 0; + timed command access(invoke: administer) OpenBasicCommissioningWindow(OpenBasicCommissioningWindowRequest): DefaultSuccess = 1; + timed command access(invoke: administer) RevokeCommissioning(): DefaultSuccess = 2; } server cluster Basic = 40 { @@ -131,8 +131,8 @@ server cluster Basic = 40 { readonly attribute vendor_id vendorID = 2; readonly attribute char_string<32> productName = 3; readonly attribute int16u productID = 4; - attribute char_string<32> nodeLabel = 5; - attribute char_string<2> location = 6; + attribute access(write: manage) char_string<32> nodeLabel = 5; + attribute access(write: administer) char_string<2> location = 6; readonly attribute int16u hardwareVersion = 7; readonly attribute char_string<64> hardwareVersionString = 8; readonly attribute int32u softwareVersion = 9; @@ -142,7 +142,7 @@ server cluster Basic = 40 { readonly attribute long_char_string<256> productURL = 13; readonly attribute char_string<64> productLabel = 14; readonly attribute char_string<32> serialNumber = 15; - attribute boolean localConfigDisabled = 16; + attribute access(write: manage) boolean localConfigDisabled = 16; readonly attribute boolean reachable = 17; readonly attribute char_string<32> uniqueID = 18; readonly attribute CapabilityMinimaStruct capabilityMinima = 19; @@ -239,7 +239,7 @@ server cluster ColorControl = 768 { readonly attribute int16u colorTempPhysicalMin = 16395; readonly attribute int16u colorTempPhysicalMax = 16396; readonly attribute int16u coupleColorTempToLevelMinMireds = 16397; - attribute int16u startUpColorTemperatureMireds = 16400; + attribute access(write: manage) int16u startUpColorTemperatureMireds = 16400; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; @@ -508,7 +508,7 @@ server cluster GeneralCommissioning = 48 { INT16U failSafeExpiryLengthSeconds = 0; } - attribute int64u breadcrumb = 0; + attribute access(write: administer) int64u breadcrumb = 0; readonly attribute BasicCommissioningInfo basicCommissioningInfo = 1; readonly attribute RegulatoryLocationType regulatoryConfig = 2; readonly attribute RegulatoryLocationType locationCapability = 3; @@ -542,9 +542,9 @@ server cluster GeneralCommissioning = 48 { CHAR_STRING debugText = 1; } - command ArmFailSafe(ArmFailSafeRequest): ArmFailSafeResponse = 0; - command SetRegulatoryConfig(SetRegulatoryConfigRequest): SetRegulatoryConfigResponse = 2; - command CommissioningComplete(): CommissioningCompleteResponse = 4; + command access(invoke: administer) ArmFailSafe(ArmFailSafeRequest): ArmFailSafeResponse = 0; + command access(invoke: administer) SetRegulatoryConfig(SetRegulatoryConfigRequest): SetRegulatoryConfigResponse = 2; + command access(invoke: administer) CommissioningComplete(): CommissioningCompleteResponse = 4; } server cluster GeneralDiagnostics = 51 { @@ -668,7 +668,7 @@ server cluster GroupKeyManagement = 63 { nullable epoch_us epochStartTime2 = 7; } - attribute GroupKeyMapStruct groupKeyMap[] = 0; + attribute access(write: manage) GroupKeyMapStruct groupKeyMap[] = 0; readonly attribute GroupInfoMapStruct groupTable[] = 1; readonly attribute int16u maxGroupsPerFabric = 2; readonly attribute int16u maxGroupKeysPerFabric = 3; @@ -698,10 +698,10 @@ server cluster GroupKeyManagement = 63 { INT16U groupKeySetIDs[] = 0; } - command KeySetWrite(KeySetWriteRequest): DefaultSuccess = 0; - command KeySetRead(KeySetReadRequest): KeySetReadResponse = 1; - command KeySetRemove(KeySetRemoveRequest): DefaultSuccess = 3; - command KeySetReadAllIndices(KeySetReadAllIndicesRequest): KeySetReadAllIndicesResponse = 4; + command access(invoke: administer) KeySetWrite(KeySetWriteRequest): DefaultSuccess = 0; + command access(invoke: administer) KeySetRead(KeySetReadRequest): KeySetReadResponse = 1; + command access(invoke: administer) KeySetRemove(KeySetRemoveRequest): DefaultSuccess = 3; + command access(invoke: administer) KeySetReadAllIndices(KeySetReadAllIndicesRequest): KeySetReadAllIndicesResponse = 4; } server cluster Groups = 4 { @@ -751,12 +751,12 @@ server cluster Groups = 4 { group_id groupId = 1; } - command AddGroup(AddGroupRequest): AddGroupResponse = 0; + command access(invoke: manage) AddGroup(AddGroupRequest): AddGroupResponse = 0; command ViewGroup(ViewGroupRequest): ViewGroupResponse = 1; command GetGroupMembership(GetGroupMembershipRequest): GetGroupMembershipResponse = 2; - command RemoveGroup(RemoveGroupRequest): RemoveGroupResponse = 3; - command RemoveAllGroups(): DefaultSuccess = 4; - command AddGroupIfIdentifying(AddGroupIfIdentifyingRequest): DefaultSuccess = 5; + command access(invoke: manage) RemoveGroup(RemoveGroupRequest): RemoveGroupResponse = 3; + command access(invoke: manage) RemoveAllGroups(): DefaultSuccess = 4; + command access(invoke: manage) AddGroupIfIdentifying(AddGroupIfIdentifyingRequest): DefaultSuccess = 5; } server cluster Identify = 3 { @@ -799,9 +799,9 @@ server cluster Identify = 3 { INT16U timeout = 0; } - command Identify(IdentifyRequest): DefaultSuccess = 0; - command IdentifyQuery(): IdentifyQueryResponse = 1; - command TriggerEffect(TriggerEffectRequest): DefaultSuccess = 64; + command access(invoke: manage) Identify(IdentifyRequest): DefaultSuccess = 0; + command access(invoke: manage) IdentifyQuery(): IdentifyQueryResponse = 1; + command access(invoke: manage) TriggerEffect(TriggerEffectRequest): DefaultSuccess = 64; } server cluster LevelControl = 8 { @@ -834,7 +834,7 @@ server cluster LevelControl = 8 { attribute nullable int16u onTransitionTime = 18; attribute nullable int16u offTransitionTime = 19; attribute nullable int8u defaultMoveRate = 20; - attribute nullable int8u startUpCurrentLevel = 16384; + attribute access(write: manage) nullable int8u startUpCurrentLevel = 16384; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; @@ -961,14 +961,14 @@ server cluster NetworkCommissioning = 49 { INT8U lqi = 7; } - readonly attribute int8u maxNetworks = 0; - readonly attribute NetworkInfo networks[] = 1; + readonly attribute access(read: administer) int8u maxNetworks = 0; + readonly attribute access(read: administer) NetworkInfo networks[] = 1; readonly attribute int8u scanMaxTimeSeconds = 2; readonly attribute int8u connectMaxTimeSeconds = 3; - attribute boolean interfaceEnabled = 4; - readonly attribute nullable NetworkCommissioningStatus lastNetworkingStatus = 5; - readonly attribute nullable octet_string<32> lastNetworkID = 6; - readonly attribute nullable int32s lastConnectErrorValue = 7; + attribute access(write: administer) boolean interfaceEnabled = 4; + readonly attribute access(read: administer) nullable NetworkCommissioningStatus lastNetworkingStatus = 5; + readonly attribute access(read: administer) nullable octet_string<32> lastNetworkID = 6; + readonly attribute access(read: administer) nullable int32s lastConnectErrorValue = 7; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; @@ -1023,12 +1023,12 @@ server cluster NetworkCommissioning = 49 { nullable INT32S errorValue = 2; } - command ScanNetworks(ScanNetworksRequest): ScanNetworksResponse = 0; - command AddOrUpdateWiFiNetwork(AddOrUpdateWiFiNetworkRequest): NetworkConfigResponse = 2; - command AddOrUpdateThreadNetwork(AddOrUpdateThreadNetworkRequest): NetworkConfigResponse = 3; - command RemoveNetwork(RemoveNetworkRequest): NetworkConfigResponse = 4; - command ConnectNetwork(ConnectNetworkRequest): ConnectNetworkResponse = 6; - command ReorderNetwork(ReorderNetworkRequest): NetworkConfigResponse = 8; + command access(invoke: administer) ScanNetworks(ScanNetworksRequest): ScanNetworksResponse = 0; + command access(invoke: administer) AddOrUpdateWiFiNetwork(AddOrUpdateWiFiNetworkRequest): NetworkConfigResponse = 2; + command access(invoke: administer) AddOrUpdateThreadNetwork(AddOrUpdateThreadNetworkRequest): NetworkConfigResponse = 3; + command access(invoke: administer) RemoveNetwork(RemoveNetworkRequest): NetworkConfigResponse = 4; + command access(invoke: administer) ConnectNetwork(ConnectNetworkRequest): ConnectNetworkResponse = 6; + command access(invoke: administer) ReorderNetwork(ReorderNetworkRequest): NetworkConfigResponse = 8; } client cluster OtaSoftwareUpdateProvider = 41 { @@ -1206,7 +1206,7 @@ server cluster OnOff = 6 { readonly attribute boolean globalSceneControl = 16384; attribute int16u onTime = 16385; attribute int16u offWaitTime = 16386; - attribute nullable OnOffStartUpOnOff startUpOnOff = 16387; + attribute access(write: manage) nullable OnOffStartUpOnOff startUpOnOff = 16387; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; @@ -1258,7 +1258,7 @@ server cluster OperationalCredentials = 62 { fabric_idx fabricIndex = 254; } - readonly attribute NOCStruct NOCs[] = 0; + readonly attribute access(read: administer) NOCStruct NOCs[] = 0; readonly attribute FabricDescriptor fabrics[] = 1; readonly attribute int8u supportedFabrics = 2; readonly attribute int8u commissionedFabrics = 3; @@ -1327,15 +1327,15 @@ server cluster OperationalCredentials = 62 { optional CHAR_STRING debugText = 2; } - command AttestationRequest(AttestationRequestRequest): AttestationResponse = 0; - command CertificateChainRequest(CertificateChainRequestRequest): CertificateChainResponse = 2; - command CSRRequest(CSRRequestRequest): CSRResponse = 4; - command AddNOC(AddNOCRequest): NOCResponse = 6; - command UpdateNOC(UpdateNOCRequest): NOCResponse = 7; - command UpdateFabricLabel(UpdateFabricLabelRequest): NOCResponse = 9; - command RemoveFabric(RemoveFabricRequest): NOCResponse = 10; - command AddTrustedRootCertificate(AddTrustedRootCertificateRequest): DefaultSuccess = 11; - command RemoveTrustedRootCertificate(RemoveTrustedRootCertificateRequest): DefaultSuccess = 12; + command access(invoke: administer) AttestationRequest(AttestationRequestRequest): AttestationResponse = 0; + command access(invoke: administer) CertificateChainRequest(CertificateChainRequestRequest): CertificateChainResponse = 2; + command access(invoke: administer) CSRRequest(CSRRequestRequest): CSRResponse = 4; + command access(invoke: administer) AddNOC(AddNOCRequest): NOCResponse = 6; + command access(invoke: administer) UpdateNOC(UpdateNOCRequest): NOCResponse = 7; + command access(invoke: administer) UpdateFabricLabel(UpdateFabricLabelRequest): NOCResponse = 9; + command access(invoke: administer) RemoveFabric(RemoveFabricRequest): NOCResponse = 10; + command access(invoke: administer) AddTrustedRootCertificate(AddTrustedRootCertificateRequest): DefaultSuccess = 11; + command access(invoke: administer) RemoveTrustedRootCertificate(RemoveTrustedRootCertificateRequest): DefaultSuccess = 12; } server cluster SoftwareDiagnostics = 52 { @@ -1575,7 +1575,7 @@ server cluster TimeFormatLocalization = 44 { } server cluster UserLabel = 65 { - attribute LabelStruct labelList[] = 0; + attribute access(write: manage) LabelStruct labelList[] = 0; readonly attribute int16u clusterRevision = 65533; } diff --git a/examples/lock-app/lock-common/lock-app.matter b/examples/lock-app/lock-common/lock-app.matter index 9fc122a58291da..12901c560362c8 100644 --- a/examples/lock-app/lock-common/lock-app.matter +++ b/examples/lock-app/lock-common/lock-app.matter @@ -46,7 +46,7 @@ server cluster AccessControl = 31 { fabric_idx fabricIndex = 254; } - info event AccessControlEntryChanged = 0 { + info event access(read: administer) AccessControlEntryChanged = 0 { nullable node_id adminNodeID = 1; nullable INT16U adminPasscodeID = 2; ChangeTypeEnum changeType = 3; @@ -54,7 +54,7 @@ server cluster AccessControl = 31 { fabric_idx adminFabricIndex = 254; } - info event AccessControlExtensionChanged = 1 { + info event access(read: administer) AccessControlExtensionChanged = 1 { nullable node_id adminNodeID = 1; nullable INT16U adminPasscodeID = 2; ChangeTypeEnum changeType = 3; @@ -62,8 +62,8 @@ server cluster AccessControl = 31 { fabric_idx adminFabricIndex = 254; } - attribute AccessControlEntry acl[] = 0; - attribute ExtensionEntry extension[] = 1; + attribute access(read: administer, write: administer) AccessControlEntry acl[] = 0; + attribute access(read: administer, write: administer) ExtensionEntry extension[] = 1; readonly attribute int16u subjectsPerAccessControlEntry = 2; readonly attribute int16u targetsPerAccessControlEntry = 3; readonly attribute int16u accessControlEntriesPerFabric = 4; @@ -101,9 +101,9 @@ server cluster AdministratorCommissioning = 60 { INT16U commissioningTimeout = 0; } - timed command OpenCommissioningWindow(OpenCommissioningWindowRequest): DefaultSuccess = 0; - timed command OpenBasicCommissioningWindow(OpenBasicCommissioningWindowRequest): DefaultSuccess = 1; - timed command RevokeCommissioning(): DefaultSuccess = 2; + timed command access(invoke: administer) OpenCommissioningWindow(OpenCommissioningWindowRequest): DefaultSuccess = 0; + timed command access(invoke: administer) OpenBasicCommissioningWindow(OpenBasicCommissioningWindowRequest): DefaultSuccess = 1; + timed command access(invoke: administer) RevokeCommissioning(): DefaultSuccess = 2; } server cluster Basic = 40 { @@ -131,8 +131,8 @@ server cluster Basic = 40 { readonly attribute vendor_id vendorID = 2; readonly attribute char_string<32> productName = 3; readonly attribute int16u productID = 4; - attribute char_string<32> nodeLabel = 5; - attribute char_string<2> location = 6; + attribute access(write: manage) char_string<32> nodeLabel = 5; + attribute access(write: administer) char_string<2> location = 6; readonly attribute int16u hardwareVersion = 7; readonly attribute char_string<64> hardwareVersionString = 8; readonly attribute int32u softwareVersion = 9; @@ -142,7 +142,7 @@ server cluster Basic = 40 { readonly attribute long_char_string<256> productURL = 13; readonly attribute char_string<64> productLabel = 14; readonly attribute char_string<32> serialNumber = 15; - attribute boolean localConfigDisabled = 16; + attribute access(write: manage) boolean localConfigDisabled = 16; readonly attribute boolean reachable = 17; readonly attribute char_string<32> uniqueID = 18; readonly attribute CapabilityMinimaStruct capabilityMinima = 19; @@ -245,7 +245,7 @@ server cluster GeneralCommissioning = 48 { INT16U failSafeExpiryLengthSeconds = 0; } - attribute int64u breadcrumb = 0; + attribute access(write: administer) int64u breadcrumb = 0; readonly attribute BasicCommissioningInfo basicCommissioningInfo = 1; readonly attribute RegulatoryLocationType regulatoryConfig = 2; readonly attribute RegulatoryLocationType locationCapability = 3; @@ -279,9 +279,9 @@ server cluster GeneralCommissioning = 48 { CHAR_STRING debugText = 1; } - command ArmFailSafe(ArmFailSafeRequest): ArmFailSafeResponse = 0; - command SetRegulatoryConfig(SetRegulatoryConfigRequest): SetRegulatoryConfigResponse = 2; - command CommissioningComplete(): CommissioningCompleteResponse = 4; + command access(invoke: administer) ArmFailSafe(ArmFailSafeRequest): ArmFailSafeResponse = 0; + command access(invoke: administer) SetRegulatoryConfig(SetRegulatoryConfigRequest): SetRegulatoryConfigResponse = 2; + command access(invoke: administer) CommissioningComplete(): CommissioningCompleteResponse = 4; } server cluster GeneralDiagnostics = 51 { @@ -445,14 +445,14 @@ server cluster NetworkCommissioning = 49 { INT8U lqi = 7; } - readonly attribute int8u maxNetworks = 0; - readonly attribute NetworkInfo networks[] = 1; + readonly attribute access(read: administer) int8u maxNetworks = 0; + readonly attribute access(read: administer) NetworkInfo networks[] = 1; readonly attribute int8u scanMaxTimeSeconds = 2; readonly attribute int8u connectMaxTimeSeconds = 3; - attribute boolean interfaceEnabled = 4; - readonly attribute nullable NetworkCommissioningStatus lastNetworkingStatus = 5; - readonly attribute nullable octet_string<32> lastNetworkID = 6; - readonly attribute nullable int32s lastConnectErrorValue = 7; + attribute access(write: administer) boolean interfaceEnabled = 4; + readonly attribute access(read: administer) nullable NetworkCommissioningStatus lastNetworkingStatus = 5; + readonly attribute access(read: administer) nullable octet_string<32> lastNetworkID = 6; + readonly attribute access(read: administer) nullable int32s lastConnectErrorValue = 7; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; @@ -507,12 +507,12 @@ server cluster NetworkCommissioning = 49 { nullable INT32S errorValue = 2; } - command ScanNetworks(ScanNetworksRequest): ScanNetworksResponse = 0; - command AddOrUpdateWiFiNetwork(AddOrUpdateWiFiNetworkRequest): NetworkConfigResponse = 2; - command AddOrUpdateThreadNetwork(AddOrUpdateThreadNetworkRequest): NetworkConfigResponse = 3; - command RemoveNetwork(RemoveNetworkRequest): NetworkConfigResponse = 4; - command ConnectNetwork(ConnectNetworkRequest): ConnectNetworkResponse = 6; - command ReorderNetwork(ReorderNetworkRequest): NetworkConfigResponse = 8; + command access(invoke: administer) ScanNetworks(ScanNetworksRequest): ScanNetworksResponse = 0; + command access(invoke: administer) AddOrUpdateWiFiNetwork(AddOrUpdateWiFiNetworkRequest): NetworkConfigResponse = 2; + command access(invoke: administer) AddOrUpdateThreadNetwork(AddOrUpdateThreadNetworkRequest): NetworkConfigResponse = 3; + command access(invoke: administer) RemoveNetwork(RemoveNetworkRequest): NetworkConfigResponse = 4; + command access(invoke: administer) ConnectNetwork(ConnectNetworkRequest): ConnectNetworkResponse = 6; + command access(invoke: administer) ReorderNetwork(ReorderNetworkRequest): NetworkConfigResponse = 8; } client cluster OtaSoftwareUpdateProvider = 41 { @@ -683,7 +683,7 @@ server cluster OnOff = 6 { readonly attribute boolean globalSceneControl = 16384; attribute int16u onTime = 16385; attribute int16u offWaitTime = 16386; - attribute nullable OnOffStartUpOnOff startUpOnOff = 16387; + attribute access(write: manage) nullable OnOffStartUpOnOff startUpOnOff = 16387; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; @@ -721,7 +721,7 @@ server cluster OperationalCredentials = 62 { fabric_idx fabricIndex = 254; } - readonly attribute NOCStruct NOCs[] = 0; + readonly attribute access(read: administer) NOCStruct NOCs[] = 0; readonly attribute FabricDescriptor fabrics[] = 1; readonly attribute int8u supportedFabrics = 2; readonly attribute int8u commissionedFabrics = 3; @@ -790,15 +790,15 @@ server cluster OperationalCredentials = 62 { optional CHAR_STRING debugText = 2; } - command AttestationRequest(AttestationRequestRequest): AttestationResponse = 0; - command CertificateChainRequest(CertificateChainRequestRequest): CertificateChainResponse = 2; - command CSRRequest(CSRRequestRequest): CSRResponse = 4; - command AddNOC(AddNOCRequest): NOCResponse = 6; - command UpdateNOC(UpdateNOCRequest): NOCResponse = 7; - command UpdateFabricLabel(UpdateFabricLabelRequest): NOCResponse = 9; - command RemoveFabric(RemoveFabricRequest): NOCResponse = 10; - command AddTrustedRootCertificate(AddTrustedRootCertificateRequest): DefaultSuccess = 11; - command RemoveTrustedRootCertificate(RemoveTrustedRootCertificateRequest): DefaultSuccess = 12; + command access(invoke: administer) AttestationRequest(AttestationRequestRequest): AttestationResponse = 0; + command access(invoke: administer) CertificateChainRequest(CertificateChainRequestRequest): CertificateChainResponse = 2; + command access(invoke: administer) CSRRequest(CSRRequestRequest): CSRResponse = 4; + command access(invoke: administer) AddNOC(AddNOCRequest): NOCResponse = 6; + command access(invoke: administer) UpdateNOC(UpdateNOCRequest): NOCResponse = 7; + command access(invoke: administer) UpdateFabricLabel(UpdateFabricLabelRequest): NOCResponse = 9; + command access(invoke: administer) RemoveFabric(RemoveFabricRequest): NOCResponse = 10; + command access(invoke: administer) AddTrustedRootCertificate(AddTrustedRootCertificateRequest): DefaultSuccess = 11; + command access(invoke: administer) RemoveTrustedRootCertificate(RemoveTrustedRootCertificateRequest): DefaultSuccess = 12; } server cluster PowerSource = 47 { @@ -1088,7 +1088,7 @@ server cluster TimeFormatLocalization = 44 { } server cluster UserLabel = 65 { - attribute LabelStruct labelList[] = 0; + attribute access(write: manage) LabelStruct labelList[] = 0; readonly attribute int16u clusterRevision = 65533; } diff --git a/examples/log-source-app/log-source-common/log-source-app.matter b/examples/log-source-app/log-source-common/log-source-app.matter index a1a8cfa9127958..0b13c89d19b97c 100644 --- a/examples/log-source-app/log-source-common/log-source-app.matter +++ b/examples/log-source-app/log-source-common/log-source-app.matter @@ -41,7 +41,7 @@ server cluster AccessControl = 31 { fabric_idx fabricIndex = 254; } - info event AccessControlEntryChanged = 0 { + info event access(read: administer) AccessControlEntryChanged = 0 { nullable node_id adminNodeID = 1; nullable INT16U adminPasscodeID = 2; ChangeTypeEnum changeType = 3; @@ -49,7 +49,7 @@ server cluster AccessControl = 31 { fabric_idx adminFabricIndex = 254; } - info event AccessControlExtensionChanged = 1 { + info event access(read: administer) AccessControlExtensionChanged = 1 { nullable node_id adminNodeID = 1; nullable INT16U adminPasscodeID = 2; ChangeTypeEnum changeType = 3; @@ -57,8 +57,8 @@ server cluster AccessControl = 31 { fabric_idx adminFabricIndex = 254; } - attribute AccessControlEntry acl[] = 0; - attribute ExtensionEntry extension[] = 1; + attribute access(read: administer, write: administer) AccessControlEntry acl[] = 0; + attribute access(read: administer, write: administer) ExtensionEntry extension[] = 1; readonly attribute int16u subjectsPerAccessControlEntry = 2; readonly attribute int16u targetsPerAccessControlEntry = 3; readonly attribute int16u accessControlEntriesPerFabric = 4; @@ -144,7 +144,7 @@ server cluster GeneralCommissioning = 48 { INT16U failSafeExpiryLengthSeconds = 0; } - attribute int64u breadcrumb = 0; + attribute access(write: administer) int64u breadcrumb = 0; readonly attribute BasicCommissioningInfo basicCommissioningInfo = 1; readonly attribute boolean supportsConcurrentConnection = 4; readonly attribute int16u clusterRevision = 65533; @@ -175,9 +175,9 @@ server cluster GeneralCommissioning = 48 { CHAR_STRING debugText = 1; } - command ArmFailSafe(ArmFailSafeRequest): ArmFailSafeResponse = 0; - command SetRegulatoryConfig(SetRegulatoryConfigRequest): SetRegulatoryConfigResponse = 2; - command CommissioningComplete(): CommissioningCompleteResponse = 4; + command access(invoke: administer) ArmFailSafe(ArmFailSafeRequest): ArmFailSafeResponse = 0; + command access(invoke: administer) SetRegulatoryConfig(SetRegulatoryConfigRequest): SetRegulatoryConfigResponse = 2; + command access(invoke: administer) CommissioningComplete(): CommissioningCompleteResponse = 4; } server cluster NetworkCommissioning = 49 { @@ -292,12 +292,12 @@ server cluster NetworkCommissioning = 49 { nullable INT32S errorValue = 2; } - command ScanNetworks(ScanNetworksRequest): ScanNetworksResponse = 0; - command AddOrUpdateWiFiNetwork(AddOrUpdateWiFiNetworkRequest): NetworkConfigResponse = 2; - command AddOrUpdateThreadNetwork(AddOrUpdateThreadNetworkRequest): NetworkConfigResponse = 3; - command RemoveNetwork(RemoveNetworkRequest): NetworkConfigResponse = 4; - command ConnectNetwork(ConnectNetworkRequest): ConnectNetworkResponse = 6; - command ReorderNetwork(ReorderNetworkRequest): NetworkConfigResponse = 8; + command access(invoke: administer) ScanNetworks(ScanNetworksRequest): ScanNetworksResponse = 0; + command access(invoke: administer) AddOrUpdateWiFiNetwork(AddOrUpdateWiFiNetworkRequest): NetworkConfigResponse = 2; + command access(invoke: administer) AddOrUpdateThreadNetwork(AddOrUpdateThreadNetworkRequest): NetworkConfigResponse = 3; + command access(invoke: administer) RemoveNetwork(RemoveNetworkRequest): NetworkConfigResponse = 4; + command access(invoke: administer) ConnectNetwork(ConnectNetworkRequest): ConnectNetworkResponse = 6; + command access(invoke: administer) ReorderNetwork(ReorderNetworkRequest): NetworkConfigResponse = 8; } server cluster OperationalCredentials = 62 { @@ -381,13 +381,13 @@ server cluster OperationalCredentials = 62 { optional CHAR_STRING debugText = 2; } - command AttestationRequest(AttestationRequestRequest): AttestationResponse = 0; - command CertificateChainRequest(CertificateChainRequestRequest): CertificateChainResponse = 2; - command CSRRequest(CSRRequestRequest): CSRResponse = 4; - command AddNOC(AddNOCRequest): NOCResponse = 6; - command UpdateFabricLabel(UpdateFabricLabelRequest): NOCResponse = 9; - command RemoveFabric(RemoveFabricRequest): NOCResponse = 10; - command AddTrustedRootCertificate(AddTrustedRootCertificateRequest): DefaultSuccess = 11; + command access(invoke: administer) AttestationRequest(AttestationRequestRequest): AttestationResponse = 0; + command access(invoke: administer) CertificateChainRequest(CertificateChainRequestRequest): CertificateChainResponse = 2; + command access(invoke: administer) CSRRequest(CSRRequestRequest): CSRResponse = 4; + command access(invoke: administer) AddNOC(AddNOCRequest): NOCResponse = 6; + command access(invoke: administer) UpdateFabricLabel(UpdateFabricLabelRequest): NOCResponse = 9; + command access(invoke: administer) RemoveFabric(RemoveFabricRequest): NOCResponse = 10; + command access(invoke: administer) AddTrustedRootCertificate(AddTrustedRootCertificateRequest): DefaultSuccess = 11; } diff --git a/examples/ota-provider-app/ota-provider-common/ota-provider-app.matter b/examples/ota-provider-app/ota-provider-common/ota-provider-app.matter index 770692c7bd6c48..700efe7d27cf4a 100644 --- a/examples/ota-provider-app/ota-provider-common/ota-provider-app.matter +++ b/examples/ota-provider-app/ota-provider-common/ota-provider-app.matter @@ -46,7 +46,7 @@ client cluster AccessControl = 31 { fabric_idx fabricIndex = 254; } - info event AccessControlEntryChanged = 0 { + info event access(read: administer) AccessControlEntryChanged = 0 { nullable node_id adminNodeID = 1; nullable INT16U adminPasscodeID = 2; ChangeTypeEnum changeType = 3; @@ -54,7 +54,7 @@ client cluster AccessControl = 31 { fabric_idx adminFabricIndex = 254; } - info event AccessControlExtensionChanged = 1 { + info event access(read: administer) AccessControlExtensionChanged = 1 { nullable node_id adminNodeID = 1; nullable INT16U adminPasscodeID = 2; ChangeTypeEnum changeType = 3; @@ -62,8 +62,8 @@ client cluster AccessControl = 31 { fabric_idx adminFabricIndex = 254; } - attribute AccessControlEntry acl[] = 0; - attribute ExtensionEntry extension[] = 1; + attribute access(read: administer, write: administer) AccessControlEntry acl[] = 0; + attribute access(read: administer, write: administer) ExtensionEntry extension[] = 1; readonly attribute int16u subjectsPerAccessControlEntry = 2; readonly attribute int16u targetsPerAccessControlEntry = 3; readonly attribute int16u accessControlEntriesPerFabric = 4; @@ -111,7 +111,7 @@ server cluster AccessControl = 31 { fabric_idx fabricIndex = 254; } - info event AccessControlEntryChanged = 0 { + info event access(read: administer) AccessControlEntryChanged = 0 { nullable node_id adminNodeID = 1; nullable INT16U adminPasscodeID = 2; ChangeTypeEnum changeType = 3; @@ -119,7 +119,7 @@ server cluster AccessControl = 31 { fabric_idx adminFabricIndex = 254; } - info event AccessControlExtensionChanged = 1 { + info event access(read: administer) AccessControlExtensionChanged = 1 { nullable node_id adminNodeID = 1; nullable INT16U adminPasscodeID = 2; ChangeTypeEnum changeType = 3; @@ -127,8 +127,8 @@ server cluster AccessControl = 31 { fabric_idx adminFabricIndex = 254; } - attribute AccessControlEntry acl[] = 0; - attribute ExtensionEntry extension[] = 1; + attribute access(read: administer, write: administer) AccessControlEntry acl[] = 0; + attribute access(read: administer, write: administer) ExtensionEntry extension[] = 1; readonly attribute int16u subjectsPerAccessControlEntry = 2; readonly attribute int16u targetsPerAccessControlEntry = 3; readonly attribute int16u accessControlEntriesPerFabric = 4; @@ -161,8 +161,8 @@ server cluster Basic = 40 { readonly attribute vendor_id vendorID = 2; readonly attribute char_string<32> productName = 3; readonly attribute int16u productID = 4; - attribute char_string<32> nodeLabel = 5; - attribute char_string<2> location = 6; + attribute access(write: manage) char_string<32> nodeLabel = 5; + attribute access(write: administer) char_string<2> location = 6; readonly attribute int16u hardwareVersion = 7; readonly attribute char_string<64> hardwareVersionString = 8; readonly attribute int32u softwareVersion = 9; @@ -172,7 +172,7 @@ server cluster Basic = 40 { readonly attribute long_char_string<256> productURL = 13; readonly attribute char_string<64> productLabel = 14; readonly attribute char_string<32> serialNumber = 15; - attribute boolean localConfigDisabled = 16; + attribute access(write: manage) boolean localConfigDisabled = 16; readonly attribute boolean reachable = 17; readonly attribute char_string<32> uniqueID = 18; readonly attribute CapabilityMinimaStruct capabilityMinima = 19; @@ -203,7 +203,7 @@ server cluster GeneralCommissioning = 48 { INT16U failSafeExpiryLengthSeconds = 0; } - attribute int64u breadcrumb = 0; + attribute access(write: administer) int64u breadcrumb = 0; readonly attribute BasicCommissioningInfo basicCommissioningInfo = 1; readonly attribute RegulatoryLocationType regulatoryConfig = 2; readonly attribute RegulatoryLocationType locationCapability = 3; @@ -237,9 +237,9 @@ server cluster GeneralCommissioning = 48 { CHAR_STRING debugText = 1; } - command ArmFailSafe(ArmFailSafeRequest): ArmFailSafeResponse = 0; - command SetRegulatoryConfig(SetRegulatoryConfigRequest): SetRegulatoryConfigResponse = 2; - command CommissioningComplete(): CommissioningCompleteResponse = 4; + command access(invoke: administer) ArmFailSafe(ArmFailSafeRequest): ArmFailSafeResponse = 0; + command access(invoke: administer) SetRegulatoryConfig(SetRegulatoryConfigRequest): SetRegulatoryConfigResponse = 2; + command access(invoke: administer) CommissioningComplete(): CommissioningCompleteResponse = 4; } server cluster LocalizationConfiguration = 43 { @@ -312,14 +312,14 @@ server cluster NetworkCommissioning = 49 { INT8U lqi = 7; } - readonly attribute int8u maxNetworks = 0; - readonly attribute NetworkInfo networks[] = 1; + readonly attribute access(read: administer) int8u maxNetworks = 0; + readonly attribute access(read: administer) NetworkInfo networks[] = 1; readonly attribute int8u scanMaxTimeSeconds = 2; readonly attribute int8u connectMaxTimeSeconds = 3; - attribute boolean interfaceEnabled = 4; - readonly attribute nullable NetworkCommissioningStatus lastNetworkingStatus = 5; - readonly attribute nullable octet_string<32> lastNetworkID = 6; - readonly attribute nullable int32s lastConnectErrorValue = 7; + attribute access(write: administer) boolean interfaceEnabled = 4; + readonly attribute access(read: administer) nullable NetworkCommissioningStatus lastNetworkingStatus = 5; + readonly attribute access(read: administer) nullable octet_string<32> lastNetworkID = 6; + readonly attribute access(read: administer) nullable int32s lastConnectErrorValue = 7; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; @@ -374,12 +374,12 @@ server cluster NetworkCommissioning = 49 { nullable INT32S errorValue = 2; } - command ScanNetworks(ScanNetworksRequest): ScanNetworksResponse = 0; - command AddOrUpdateWiFiNetwork(AddOrUpdateWiFiNetworkRequest): NetworkConfigResponse = 2; - command AddOrUpdateThreadNetwork(AddOrUpdateThreadNetworkRequest): NetworkConfigResponse = 3; - command RemoveNetwork(RemoveNetworkRequest): NetworkConfigResponse = 4; - command ConnectNetwork(ConnectNetworkRequest): ConnectNetworkResponse = 6; - command ReorderNetwork(ReorderNetworkRequest): NetworkConfigResponse = 8; + command access(invoke: administer) ScanNetworks(ScanNetworksRequest): ScanNetworksResponse = 0; + command access(invoke: administer) AddOrUpdateWiFiNetwork(AddOrUpdateWiFiNetworkRequest): NetworkConfigResponse = 2; + command access(invoke: administer) AddOrUpdateThreadNetwork(AddOrUpdateThreadNetworkRequest): NetworkConfigResponse = 3; + command access(invoke: administer) RemoveNetwork(RemoveNetworkRequest): NetworkConfigResponse = 4; + command access(invoke: administer) ConnectNetwork(ConnectNetworkRequest): ConnectNetworkResponse = 6; + command access(invoke: administer) ReorderNetwork(ReorderNetworkRequest): NetworkConfigResponse = 8; } server cluster OtaSoftwareUpdateProvider = 41 { @@ -476,7 +476,7 @@ server cluster OperationalCredentials = 62 { fabric_idx fabricIndex = 254; } - readonly attribute NOCStruct NOCs[] = 0; + readonly attribute access(read: administer) NOCStruct NOCs[] = 0; readonly attribute FabricDescriptor fabrics[] = 1; readonly attribute int8u supportedFabrics = 2; readonly attribute int8u commissionedFabrics = 3; @@ -536,13 +536,13 @@ server cluster OperationalCredentials = 62 { optional CHAR_STRING debugText = 2; } - command AttestationRequest(AttestationRequestRequest): AttestationResponse = 0; - command CertificateChainRequest(CertificateChainRequestRequest): CertificateChainResponse = 2; - command CSRRequest(CSRRequestRequest): CSRResponse = 4; - command AddNOC(AddNOCRequest): NOCResponse = 6; - command UpdateFabricLabel(UpdateFabricLabelRequest): NOCResponse = 9; - command RemoveFabric(RemoveFabricRequest): NOCResponse = 10; - command AddTrustedRootCertificate(AddTrustedRootCertificateRequest): DefaultSuccess = 11; + command access(invoke: administer) AttestationRequest(AttestationRequestRequest): AttestationResponse = 0; + command access(invoke: administer) CertificateChainRequest(CertificateChainRequestRequest): CertificateChainResponse = 2; + command access(invoke: administer) CSRRequest(CSRRequestRequest): CSRResponse = 4; + command access(invoke: administer) AddNOC(AddNOCRequest): NOCResponse = 6; + command access(invoke: administer) UpdateFabricLabel(UpdateFabricLabelRequest): NOCResponse = 9; + command access(invoke: administer) RemoveFabric(RemoveFabricRequest): NOCResponse = 10; + command access(invoke: administer) AddTrustedRootCertificate(AddTrustedRootCertificateRequest): DefaultSuccess = 11; } server cluster TimeFormatLocalization = 44 { @@ -573,7 +573,7 @@ server cluster TimeFormatLocalization = 44 { } server cluster UserLabel = 65 { - attribute LabelStruct labelList[] = 0; + attribute access(write: manage) LabelStruct labelList[] = 0; readonly attribute int16u clusterRevision = 65533; } diff --git a/examples/ota-requestor-app/ota-requestor-common/ota-requestor-app.matter b/examples/ota-requestor-app/ota-requestor-common/ota-requestor-app.matter index 77cd17b58dc47e..acbc65c0c25a15 100644 --- a/examples/ota-requestor-app/ota-requestor-common/ota-requestor-app.matter +++ b/examples/ota-requestor-app/ota-requestor-common/ota-requestor-app.matter @@ -46,7 +46,7 @@ server cluster AccessControl = 31 { fabric_idx fabricIndex = 254; } - info event AccessControlEntryChanged = 0 { + info event access(read: administer) AccessControlEntryChanged = 0 { nullable node_id adminNodeID = 1; nullable INT16U adminPasscodeID = 2; ChangeTypeEnum changeType = 3; @@ -54,7 +54,7 @@ server cluster AccessControl = 31 { fabric_idx adminFabricIndex = 254; } - info event AccessControlExtensionChanged = 1 { + info event access(read: administer) AccessControlExtensionChanged = 1 { nullable node_id adminNodeID = 1; nullable INT16U adminPasscodeID = 2; ChangeTypeEnum changeType = 3; @@ -62,8 +62,8 @@ server cluster AccessControl = 31 { fabric_idx adminFabricIndex = 254; } - attribute AccessControlEntry acl[] = 0; - attribute ExtensionEntry extension[] = 1; + attribute access(read: administer, write: administer) AccessControlEntry acl[] = 0; + attribute access(read: administer, write: administer) ExtensionEntry extension[] = 1; readonly attribute int16u subjectsPerAccessControlEntry = 2; readonly attribute int16u targetsPerAccessControlEntry = 3; readonly attribute int16u accessControlEntriesPerFabric = 4; @@ -101,9 +101,9 @@ server cluster AdministratorCommissioning = 60 { INT16U commissioningTimeout = 0; } - timed command OpenCommissioningWindow(OpenCommissioningWindowRequest): DefaultSuccess = 0; - timed command OpenBasicCommissioningWindow(OpenBasicCommissioningWindowRequest): DefaultSuccess = 1; - timed command RevokeCommissioning(): DefaultSuccess = 2; + timed command access(invoke: administer) OpenCommissioningWindow(OpenCommissioningWindowRequest): DefaultSuccess = 0; + timed command access(invoke: administer) OpenBasicCommissioningWindow(OpenBasicCommissioningWindowRequest): DefaultSuccess = 1; + timed command access(invoke: administer) RevokeCommissioning(): DefaultSuccess = 2; } server cluster Basic = 40 { @@ -131,8 +131,8 @@ server cluster Basic = 40 { readonly attribute vendor_id vendorID = 2; readonly attribute char_string<32> productName = 3; readonly attribute int16u productID = 4; - attribute char_string<32> nodeLabel = 5; - attribute char_string<2> location = 6; + attribute access(write: manage) char_string<32> nodeLabel = 5; + attribute access(write: administer) char_string<2> location = 6; readonly attribute int16u hardwareVersion = 7; readonly attribute char_string<64> hardwareVersionString = 8; readonly attribute int32u softwareVersion = 9; @@ -142,7 +142,7 @@ server cluster Basic = 40 { readonly attribute long_char_string<256> productURL = 13; readonly attribute char_string<64> productLabel = 14; readonly attribute char_string<32> serialNumber = 15; - attribute boolean localConfigDisabled = 16; + attribute access(write: manage) boolean localConfigDisabled = 16; readonly attribute boolean reachable = 17; readonly attribute char_string<32> uniqueID = 18; readonly attribute CapabilityMinimaStruct capabilityMinima = 19; @@ -173,7 +173,7 @@ server cluster GeneralCommissioning = 48 { INT16U failSafeExpiryLengthSeconds = 0; } - attribute int64u breadcrumb = 0; + attribute access(write: administer) int64u breadcrumb = 0; readonly attribute BasicCommissioningInfo basicCommissioningInfo = 1; readonly attribute RegulatoryLocationType regulatoryConfig = 2; readonly attribute RegulatoryLocationType locationCapability = 3; @@ -207,9 +207,9 @@ server cluster GeneralCommissioning = 48 { CHAR_STRING debugText = 1; } - command ArmFailSafe(ArmFailSafeRequest): ArmFailSafeResponse = 0; - command SetRegulatoryConfig(SetRegulatoryConfigRequest): SetRegulatoryConfigResponse = 2; - command CommissioningComplete(): CommissioningCompleteResponse = 4; + command access(invoke: administer) ArmFailSafe(ArmFailSafeRequest): ArmFailSafeResponse = 0; + command access(invoke: administer) SetRegulatoryConfig(SetRegulatoryConfigRequest): SetRegulatoryConfigResponse = 2; + command access(invoke: administer) CommissioningComplete(): CommissioningCompleteResponse = 4; } server cluster LocalizationConfiguration = 43 { @@ -282,14 +282,14 @@ server cluster NetworkCommissioning = 49 { INT8U lqi = 7; } - readonly attribute int8u maxNetworks = 0; - readonly attribute NetworkInfo networks[] = 1; + readonly attribute access(read: administer) int8u maxNetworks = 0; + readonly attribute access(read: administer) NetworkInfo networks[] = 1; readonly attribute int8u scanMaxTimeSeconds = 2; readonly attribute int8u connectMaxTimeSeconds = 3; - attribute boolean interfaceEnabled = 4; - readonly attribute nullable NetworkCommissioningStatus lastNetworkingStatus = 5; - readonly attribute nullable octet_string<32> lastNetworkID = 6; - readonly attribute nullable int32s lastConnectErrorValue = 7; + attribute access(write: administer) boolean interfaceEnabled = 4; + readonly attribute access(read: administer) nullable NetworkCommissioningStatus lastNetworkingStatus = 5; + readonly attribute access(read: administer) nullable octet_string<32> lastNetworkID = 6; + readonly attribute access(read: administer) nullable int32s lastConnectErrorValue = 7; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; @@ -344,12 +344,12 @@ server cluster NetworkCommissioning = 49 { nullable INT32S errorValue = 2; } - command ScanNetworks(ScanNetworksRequest): ScanNetworksResponse = 0; - command AddOrUpdateWiFiNetwork(AddOrUpdateWiFiNetworkRequest): NetworkConfigResponse = 2; - command AddOrUpdateThreadNetwork(AddOrUpdateThreadNetworkRequest): NetworkConfigResponse = 3; - command RemoveNetwork(RemoveNetworkRequest): NetworkConfigResponse = 4; - command ConnectNetwork(ConnectNetworkRequest): ConnectNetworkResponse = 6; - command ReorderNetwork(ReorderNetworkRequest): NetworkConfigResponse = 8; + command access(invoke: administer) ScanNetworks(ScanNetworksRequest): ScanNetworksResponse = 0; + command access(invoke: administer) AddOrUpdateWiFiNetwork(AddOrUpdateWiFiNetworkRequest): NetworkConfigResponse = 2; + command access(invoke: administer) AddOrUpdateThreadNetwork(AddOrUpdateThreadNetworkRequest): NetworkConfigResponse = 3; + command access(invoke: administer) RemoveNetwork(RemoveNetworkRequest): NetworkConfigResponse = 4; + command access(invoke: administer) ConnectNetwork(ConnectNetworkRequest): ConnectNetworkResponse = 6; + command access(invoke: administer) ReorderNetwork(ReorderNetworkRequest): NetworkConfigResponse = 8; } client cluster OtaSoftwareUpdateProvider = 41 { @@ -515,7 +515,7 @@ server cluster OperationalCredentials = 62 { fabric_idx fabricIndex = 254; } - readonly attribute NOCStruct NOCs[] = 0; + readonly attribute access(read: administer) NOCStruct NOCs[] = 0; readonly attribute FabricDescriptor fabrics[] = 1; readonly attribute int8u supportedFabrics = 2; readonly attribute int8u commissionedFabrics = 3; @@ -584,15 +584,15 @@ server cluster OperationalCredentials = 62 { optional CHAR_STRING debugText = 2; } - command AttestationRequest(AttestationRequestRequest): AttestationResponse = 0; - command CertificateChainRequest(CertificateChainRequestRequest): CertificateChainResponse = 2; - command CSRRequest(CSRRequestRequest): CSRResponse = 4; - command AddNOC(AddNOCRequest): NOCResponse = 6; - command UpdateNOC(UpdateNOCRequest): NOCResponse = 7; - command UpdateFabricLabel(UpdateFabricLabelRequest): NOCResponse = 9; - command RemoveFabric(RemoveFabricRequest): NOCResponse = 10; - command AddTrustedRootCertificate(AddTrustedRootCertificateRequest): DefaultSuccess = 11; - command RemoveTrustedRootCertificate(RemoveTrustedRootCertificateRequest): DefaultSuccess = 12; + command access(invoke: administer) AttestationRequest(AttestationRequestRequest): AttestationResponse = 0; + command access(invoke: administer) CertificateChainRequest(CertificateChainRequestRequest): CertificateChainResponse = 2; + command access(invoke: administer) CSRRequest(CSRRequestRequest): CSRResponse = 4; + command access(invoke: administer) AddNOC(AddNOCRequest): NOCResponse = 6; + command access(invoke: administer) UpdateNOC(UpdateNOCRequest): NOCResponse = 7; + command access(invoke: administer) UpdateFabricLabel(UpdateFabricLabelRequest): NOCResponse = 9; + command access(invoke: administer) RemoveFabric(RemoveFabricRequest): NOCResponse = 10; + command access(invoke: administer) AddTrustedRootCertificate(AddTrustedRootCertificateRequest): DefaultSuccess = 11; + command access(invoke: administer) RemoveTrustedRootCertificate(RemoveTrustedRootCertificateRequest): DefaultSuccess = 12; } server cluster TimeFormatLocalization = 44 { @@ -623,7 +623,7 @@ server cluster TimeFormatLocalization = 44 { } server cluster UserLabel = 65 { - attribute LabelStruct labelList[] = 0; + attribute access(write: manage) LabelStruct labelList[] = 0; readonly attribute int16u clusterRevision = 65533; } diff --git a/examples/placeholder/linux/apps/app1/config.matter b/examples/placeholder/linux/apps/app1/config.matter index a5e6d4cc3c4a63..ae7e8fb259a913 100644 --- a/examples/placeholder/linux/apps/app1/config.matter +++ b/examples/placeholder/linux/apps/app1/config.matter @@ -31,9 +31,9 @@ server cluster AdministratorCommissioning = 60 { INT16U commissioningTimeout = 0; } - timed command OpenCommissioningWindow(OpenCommissioningWindowRequest): DefaultSuccess = 0; - timed command OpenBasicCommissioningWindow(OpenBasicCommissioningWindowRequest): DefaultSuccess = 1; - timed command RevokeCommissioning(): DefaultSuccess = 2; + timed command access(invoke: administer) OpenCommissioningWindow(OpenCommissioningWindowRequest): DefaultSuccess = 0; + timed command access(invoke: administer) OpenBasicCommissioningWindow(OpenBasicCommissioningWindowRequest): DefaultSuccess = 1; + timed command access(invoke: administer) RevokeCommissioning(): DefaultSuccess = 2; } client cluster ApplicationBasic = 1293 { @@ -115,8 +115,8 @@ server cluster Basic = 40 { readonly attribute vendor_id vendorID = 2; readonly attribute char_string<32> productName = 3; readonly attribute int16u productID = 4; - attribute char_string<32> nodeLabel = 5; - attribute char_string<2> location = 6; + attribute access(write: manage) char_string<32> nodeLabel = 5; + attribute access(write: administer) char_string<2> location = 6; readonly attribute int16u hardwareVersion = 7; readonly attribute char_string<64> hardwareVersionString = 8; readonly attribute int32u softwareVersion = 9; @@ -126,7 +126,7 @@ server cluster Basic = 40 { readonly attribute long_char_string<256> productURL = 13; readonly attribute char_string<64> productLabel = 14; readonly attribute char_string<32> serialNumber = 15; - attribute boolean localConfigDisabled = 16; + attribute access(write: manage) boolean localConfigDisabled = 16; readonly attribute boolean reachable = 17; readonly attribute char_string<32> uniqueID = 18; readonly attribute CapabilityMinimaStruct capabilityMinima = 19; @@ -295,7 +295,7 @@ server cluster ColorControl = 768 { readonly attribute int16u currentY = 4; attribute bitmap8 colorControlOptions = 15; readonly attribute int16u coupleColorTempToLevelMinMireds = 16397; - attribute int16u startUpColorTemperatureMireds = 16400; + attribute access(write: manage) int16u startUpColorTemperatureMireds = 16400; readonly attribute int16u clusterRevision = 65533; request struct MoveToColorRequest { @@ -599,7 +599,7 @@ client cluster GeneralCommissioning = 48 { INT16U failSafeExpiryLengthSeconds = 0; } - attribute int64u breadcrumb = 0; + attribute access(write: administer) int64u breadcrumb = 0; readonly attribute BasicCommissioningInfo basicCommissioningInfo = 1; readonly attribute RegulatoryLocationType regulatoryConfig = 2; readonly attribute RegulatoryLocationType locationCapability = 3; @@ -621,9 +621,9 @@ client cluster GeneralCommissioning = 48 { INT64U breadcrumb = 2; } - command ArmFailSafe(ArmFailSafeRequest): ArmFailSafeResponse = 0; - command SetRegulatoryConfig(SetRegulatoryConfigRequest): SetRegulatoryConfigResponse = 2; - command CommissioningComplete(): CommissioningCompleteResponse = 4; + command access(invoke: administer) ArmFailSafe(ArmFailSafeRequest): ArmFailSafeResponse = 0; + command access(invoke: administer) SetRegulatoryConfig(SetRegulatoryConfigRequest): SetRegulatoryConfigResponse = 2; + command access(invoke: administer) CommissioningComplete(): CommissioningCompleteResponse = 4; } server cluster GeneralCommissioning = 48 { @@ -645,7 +645,7 @@ server cluster GeneralCommissioning = 48 { INT16U failSafeExpiryLengthSeconds = 0; } - attribute int64u breadcrumb = 0; + attribute access(write: administer) int64u breadcrumb = 0; readonly attribute BasicCommissioningInfo basicCommissioningInfo = 1; readonly attribute RegulatoryLocationType regulatoryConfig = 2; readonly attribute RegulatoryLocationType locationCapability = 3; @@ -682,9 +682,9 @@ server cluster GeneralCommissioning = 48 { CHAR_STRING debugText = 1; } - command ArmFailSafe(ArmFailSafeRequest): ArmFailSafeResponse = 0; - command SetRegulatoryConfig(SetRegulatoryConfigRequest): SetRegulatoryConfigResponse = 2; - command CommissioningComplete(): CommissioningCompleteResponse = 4; + command access(invoke: administer) ArmFailSafe(ArmFailSafeRequest): ArmFailSafeResponse = 0; + command access(invoke: administer) SetRegulatoryConfig(SetRegulatoryConfigRequest): SetRegulatoryConfigResponse = 2; + command access(invoke: administer) CommissioningComplete(): CommissioningCompleteResponse = 4; } server cluster GeneralDiagnostics = 51 { @@ -825,12 +825,12 @@ server cluster Groups = 4 { group_id groupId = 1; } - command AddGroup(AddGroupRequest): AddGroupResponse = 0; + command access(invoke: manage) AddGroup(AddGroupRequest): AddGroupResponse = 0; command ViewGroup(ViewGroupRequest): ViewGroupResponse = 1; command GetGroupMembership(GetGroupMembershipRequest): GetGroupMembershipResponse = 2; - command RemoveGroup(RemoveGroupRequest): RemoveGroupResponse = 3; - command RemoveAllGroups(): DefaultSuccess = 4; - command AddGroupIfIdentifying(AddGroupIfIdentifyingRequest): DefaultSuccess = 5; + command access(invoke: manage) RemoveGroup(RemoveGroupRequest): RemoveGroupResponse = 3; + command access(invoke: manage) RemoveAllGroups(): DefaultSuccess = 4; + command access(invoke: manage) AddGroupIfIdentifying(AddGroupIfIdentifyingRequest): DefaultSuccess = 5; } server cluster Identify = 3 { @@ -868,8 +868,8 @@ server cluster Identify = 3 { INT16U timeout = 0; } - command Identify(IdentifyRequest): DefaultSuccess = 0; - command IdentifyQuery(): IdentifyQueryResponse = 1; + command access(invoke: manage) Identify(IdentifyRequest): DefaultSuccess = 0; + command access(invoke: manage) IdentifyQuery(): IdentifyQueryResponse = 1; } server cluster IlluminanceMeasurement = 1024 { @@ -1317,14 +1317,14 @@ server cluster NetworkCommissioning = 49 { INT8U lqi = 7; } - readonly attribute int8u maxNetworks = 0; - readonly attribute NetworkInfo networks[] = 1; + readonly attribute access(read: administer) int8u maxNetworks = 0; + readonly attribute access(read: administer) NetworkInfo networks[] = 1; readonly attribute int8u scanMaxTimeSeconds = 2; readonly attribute int8u connectMaxTimeSeconds = 3; - attribute boolean interfaceEnabled = 4; - readonly attribute nullable NetworkCommissioningStatus lastNetworkingStatus = 5; - readonly attribute nullable octet_string<32> lastNetworkID = 6; - readonly attribute nullable int32s lastConnectErrorValue = 7; + attribute access(write: administer) boolean interfaceEnabled = 4; + readonly attribute access(read: administer) nullable NetworkCommissioningStatus lastNetworkingStatus = 5; + readonly attribute access(read: administer) nullable octet_string<32> lastNetworkID = 6; + readonly attribute access(read: administer) nullable int32s lastConnectErrorValue = 7; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; @@ -1379,12 +1379,12 @@ server cluster NetworkCommissioning = 49 { nullable INT32S errorValue = 2; } - command ScanNetworks(ScanNetworksRequest): ScanNetworksResponse = 0; - command AddOrUpdateWiFiNetwork(AddOrUpdateWiFiNetworkRequest): NetworkConfigResponse = 2; - command AddOrUpdateThreadNetwork(AddOrUpdateThreadNetworkRequest): NetworkConfigResponse = 3; - command RemoveNetwork(RemoveNetworkRequest): NetworkConfigResponse = 4; - command ConnectNetwork(ConnectNetworkRequest): ConnectNetworkResponse = 6; - command ReorderNetwork(ReorderNetworkRequest): NetworkConfigResponse = 8; + command access(invoke: administer) ScanNetworks(ScanNetworksRequest): ScanNetworksResponse = 0; + command access(invoke: administer) AddOrUpdateWiFiNetwork(AddOrUpdateWiFiNetworkRequest): NetworkConfigResponse = 2; + command access(invoke: administer) AddOrUpdateThreadNetwork(AddOrUpdateThreadNetworkRequest): NetworkConfigResponse = 3; + command access(invoke: administer) RemoveNetwork(RemoveNetworkRequest): NetworkConfigResponse = 4; + command access(invoke: administer) ConnectNetwork(ConnectNetworkRequest): ConnectNetworkResponse = 6; + command access(invoke: administer) ReorderNetwork(ReorderNetworkRequest): NetworkConfigResponse = 8; } client cluster OnOff = 6 { @@ -1421,7 +1421,7 @@ client cluster OnOff = 6 { readonly attribute boolean globalSceneControl = 16384; attribute int16u onTime = 16385; attribute int16u offWaitTime = 16386; - attribute nullable OnOffStartUpOnOff startUpOnOff = 16387; + attribute access(write: manage) nullable OnOffStartUpOnOff startUpOnOff = 16387; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; @@ -1478,7 +1478,7 @@ server cluster OnOff = 6 { readonly attribute boolean globalSceneControl = 16384; attribute int16u onTime = 16385; attribute int16u offWaitTime = 16386; - attribute nullable OnOffStartUpOnOff startUpOnOff = 16387; + attribute access(write: manage) nullable OnOffStartUpOnOff startUpOnOff = 16387; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; @@ -1572,15 +1572,15 @@ client cluster OperationalCredentials = 62 { OCTET_STRING trustedRootIdentifier = 0; } - command AttestationRequest(AttestationRequestRequest): AttestationResponse = 0; - command CertificateChainRequest(CertificateChainRequestRequest): CertificateChainResponse = 2; - command CSRRequest(CSRRequestRequest): CSRResponse = 4; - command AddNOC(AddNOCRequest): NOCResponse = 6; - command UpdateNOC(UpdateNOCRequest): NOCResponse = 7; - command UpdateFabricLabel(UpdateFabricLabelRequest): NOCResponse = 9; - command RemoveFabric(RemoveFabricRequest): NOCResponse = 10; - command AddTrustedRootCertificate(AddTrustedRootCertificateRequest): DefaultSuccess = 11; - command RemoveTrustedRootCertificate(RemoveTrustedRootCertificateRequest): DefaultSuccess = 12; + command access(invoke: administer) AttestationRequest(AttestationRequestRequest): AttestationResponse = 0; + command access(invoke: administer) CertificateChainRequest(CertificateChainRequestRequest): CertificateChainResponse = 2; + command access(invoke: administer) CSRRequest(CSRRequestRequest): CSRResponse = 4; + command access(invoke: administer) AddNOC(AddNOCRequest): NOCResponse = 6; + command access(invoke: administer) UpdateNOC(UpdateNOCRequest): NOCResponse = 7; + command access(invoke: administer) UpdateFabricLabel(UpdateFabricLabelRequest): NOCResponse = 9; + command access(invoke: administer) RemoveFabric(RemoveFabricRequest): NOCResponse = 10; + command access(invoke: administer) AddTrustedRootCertificate(AddTrustedRootCertificateRequest): DefaultSuccess = 11; + command access(invoke: administer) RemoveTrustedRootCertificate(RemoveTrustedRootCertificateRequest): DefaultSuccess = 12; } server cluster OperationalCredentials = 62 { @@ -1674,15 +1674,15 @@ server cluster OperationalCredentials = 62 { optional CHAR_STRING debugText = 2; } - command AttestationRequest(AttestationRequestRequest): AttestationResponse = 0; - command CertificateChainRequest(CertificateChainRequestRequest): CertificateChainResponse = 2; - command CSRRequest(CSRRequestRequest): CSRResponse = 4; - command AddNOC(AddNOCRequest): NOCResponse = 6; - command UpdateNOC(UpdateNOCRequest): NOCResponse = 7; - command UpdateFabricLabel(UpdateFabricLabelRequest): NOCResponse = 9; - command RemoveFabric(RemoveFabricRequest): NOCResponse = 10; - command AddTrustedRootCertificate(AddTrustedRootCertificateRequest): DefaultSuccess = 11; - command RemoveTrustedRootCertificate(RemoveTrustedRootCertificateRequest): DefaultSuccess = 12; + command access(invoke: administer) AttestationRequest(AttestationRequestRequest): AttestationResponse = 0; + command access(invoke: administer) CertificateChainRequest(CertificateChainRequestRequest): CertificateChainResponse = 2; + command access(invoke: administer) CSRRequest(CSRRequestRequest): CSRResponse = 4; + command access(invoke: administer) AddNOC(AddNOCRequest): NOCResponse = 6; + command access(invoke: administer) UpdateNOC(UpdateNOCRequest): NOCResponse = 7; + command access(invoke: administer) UpdateFabricLabel(UpdateFabricLabelRequest): NOCResponse = 9; + command access(invoke: administer) RemoveFabric(RemoveFabricRequest): NOCResponse = 10; + command access(invoke: administer) AddTrustedRootCertificate(AddTrustedRootCertificateRequest): DefaultSuccess = 11; + command access(invoke: administer) RemoveTrustedRootCertificate(RemoveTrustedRootCertificateRequest): DefaultSuccess = 12; } server cluster PowerSource = 47 { @@ -2033,11 +2033,11 @@ server cluster Scenes = 5 { INT8U sceneList[] = 4; } - command AddScene(AddSceneRequest): AddSceneResponse = 0; + command access(invoke: manage) AddScene(AddSceneRequest): AddSceneResponse = 0; command ViewScene(ViewSceneRequest): ViewSceneResponse = 1; - command RemoveScene(RemoveSceneRequest): RemoveSceneResponse = 2; - command RemoveAllScenes(RemoveAllScenesRequest): RemoveAllScenesResponse = 3; - command StoreScene(StoreSceneRequest): StoreSceneResponse = 4; + command access(invoke: manage) RemoveScene(RemoveSceneRequest): RemoveSceneResponse = 2; + command access(invoke: manage) RemoveAllScenes(RemoveAllScenesRequest): RemoveAllScenesResponse = 3; + command access(invoke: manage) StoreScene(StoreSceneRequest): StoreSceneResponse = 4; command RecallScene(RecallSceneRequest): DefaultSuccess = 5; command GetSceneMembership(GetSceneMembershipRequest): GetSceneMembershipResponse = 6; } @@ -2288,13 +2288,13 @@ server cluster Thermostat = 513 { readonly attribute int16s absMaxCoolSetpointLimit = 6; attribute int16s occupiedCoolingSetpoint = 17; attribute int16s occupiedHeatingSetpoint = 18; - attribute int16s minHeatSetpointLimit = 21; - attribute int16s maxHeatSetpointLimit = 22; - attribute int16s minCoolSetpointLimit = 23; - attribute int16s maxCoolSetpointLimit = 24; - attribute int8s minSetpointDeadBand = 25; - attribute ThermostatControlSequence controlSequenceOfOperation = 27; - attribute enum8 systemMode = 28; + attribute access(write: manage) int16s minHeatSetpointLimit = 21; + attribute access(write: manage) int16s maxHeatSetpointLimit = 22; + attribute access(write: manage) int16s minCoolSetpointLimit = 23; + attribute access(write: manage) int16s maxCoolSetpointLimit = 24; + attribute access(write: manage) int8s minSetpointDeadBand = 25; + attribute access(write: manage) ThermostatControlSequence controlSequenceOfOperation = 27; + attribute access(write: manage) enum8 systemMode = 28; readonly attribute enum8 startOfWeek = 32; readonly attribute int8u numberOfWeeklyTransitions = 33; readonly attribute int8u numberOfDailyTransitions = 34; @@ -2304,8 +2304,8 @@ server cluster Thermostat = 513 { client cluster ThermostatUserInterfaceConfiguration = 516 { attribute enum8 temperatureDisplayMode = 0; - attribute enum8 keypadLockout = 1; - attribute enum8 scheduleProgrammingVisibility = 2; + attribute access(write: manage) enum8 keypadLockout = 1; + attribute access(write: manage) enum8 scheduleProgrammingVisibility = 2; readonly attribute command_id generatedCommandList[] = 65528; readonly attribute command_id acceptedCommandList[] = 65529; readonly attribute attrib_id attributeList[] = 65531; @@ -2315,8 +2315,8 @@ client cluster ThermostatUserInterfaceConfiguration = 516 { server cluster ThermostatUserInterfaceConfiguration = 516 { attribute enum8 temperatureDisplayMode = 0; - attribute enum8 keypadLockout = 1; - attribute enum8 scheduleProgrammingVisibility = 2; + attribute access(write: manage) enum8 keypadLockout = 1; + attribute access(write: manage) enum8 scheduleProgrammingVisibility = 2; readonly attribute command_id generatedCommandList[] = 65528; readonly attribute command_id acceptedCommandList[] = 65529; readonly attribute attrib_id attributeList[] = 65531; @@ -2492,7 +2492,7 @@ server cluster WindowCovering = 258 { readonly attribute int16u installedClosedLimitLift = 17; readonly attribute int16u installedOpenLimitTilt = 18; readonly attribute int16u installedClosedLimitTilt = 19; - attribute bitmap8 mode = 23; + attribute access(write: manage) bitmap8 mode = 23; readonly attribute bitmap16 safetyStatus = 26; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; diff --git a/examples/placeholder/linux/apps/app2/config.matter b/examples/placeholder/linux/apps/app2/config.matter index a5e6d4cc3c4a63..ae7e8fb259a913 100644 --- a/examples/placeholder/linux/apps/app2/config.matter +++ b/examples/placeholder/linux/apps/app2/config.matter @@ -31,9 +31,9 @@ server cluster AdministratorCommissioning = 60 { INT16U commissioningTimeout = 0; } - timed command OpenCommissioningWindow(OpenCommissioningWindowRequest): DefaultSuccess = 0; - timed command OpenBasicCommissioningWindow(OpenBasicCommissioningWindowRequest): DefaultSuccess = 1; - timed command RevokeCommissioning(): DefaultSuccess = 2; + timed command access(invoke: administer) OpenCommissioningWindow(OpenCommissioningWindowRequest): DefaultSuccess = 0; + timed command access(invoke: administer) OpenBasicCommissioningWindow(OpenBasicCommissioningWindowRequest): DefaultSuccess = 1; + timed command access(invoke: administer) RevokeCommissioning(): DefaultSuccess = 2; } client cluster ApplicationBasic = 1293 { @@ -115,8 +115,8 @@ server cluster Basic = 40 { readonly attribute vendor_id vendorID = 2; readonly attribute char_string<32> productName = 3; readonly attribute int16u productID = 4; - attribute char_string<32> nodeLabel = 5; - attribute char_string<2> location = 6; + attribute access(write: manage) char_string<32> nodeLabel = 5; + attribute access(write: administer) char_string<2> location = 6; readonly attribute int16u hardwareVersion = 7; readonly attribute char_string<64> hardwareVersionString = 8; readonly attribute int32u softwareVersion = 9; @@ -126,7 +126,7 @@ server cluster Basic = 40 { readonly attribute long_char_string<256> productURL = 13; readonly attribute char_string<64> productLabel = 14; readonly attribute char_string<32> serialNumber = 15; - attribute boolean localConfigDisabled = 16; + attribute access(write: manage) boolean localConfigDisabled = 16; readonly attribute boolean reachable = 17; readonly attribute char_string<32> uniqueID = 18; readonly attribute CapabilityMinimaStruct capabilityMinima = 19; @@ -295,7 +295,7 @@ server cluster ColorControl = 768 { readonly attribute int16u currentY = 4; attribute bitmap8 colorControlOptions = 15; readonly attribute int16u coupleColorTempToLevelMinMireds = 16397; - attribute int16u startUpColorTemperatureMireds = 16400; + attribute access(write: manage) int16u startUpColorTemperatureMireds = 16400; readonly attribute int16u clusterRevision = 65533; request struct MoveToColorRequest { @@ -599,7 +599,7 @@ client cluster GeneralCommissioning = 48 { INT16U failSafeExpiryLengthSeconds = 0; } - attribute int64u breadcrumb = 0; + attribute access(write: administer) int64u breadcrumb = 0; readonly attribute BasicCommissioningInfo basicCommissioningInfo = 1; readonly attribute RegulatoryLocationType regulatoryConfig = 2; readonly attribute RegulatoryLocationType locationCapability = 3; @@ -621,9 +621,9 @@ client cluster GeneralCommissioning = 48 { INT64U breadcrumb = 2; } - command ArmFailSafe(ArmFailSafeRequest): ArmFailSafeResponse = 0; - command SetRegulatoryConfig(SetRegulatoryConfigRequest): SetRegulatoryConfigResponse = 2; - command CommissioningComplete(): CommissioningCompleteResponse = 4; + command access(invoke: administer) ArmFailSafe(ArmFailSafeRequest): ArmFailSafeResponse = 0; + command access(invoke: administer) SetRegulatoryConfig(SetRegulatoryConfigRequest): SetRegulatoryConfigResponse = 2; + command access(invoke: administer) CommissioningComplete(): CommissioningCompleteResponse = 4; } server cluster GeneralCommissioning = 48 { @@ -645,7 +645,7 @@ server cluster GeneralCommissioning = 48 { INT16U failSafeExpiryLengthSeconds = 0; } - attribute int64u breadcrumb = 0; + attribute access(write: administer) int64u breadcrumb = 0; readonly attribute BasicCommissioningInfo basicCommissioningInfo = 1; readonly attribute RegulatoryLocationType regulatoryConfig = 2; readonly attribute RegulatoryLocationType locationCapability = 3; @@ -682,9 +682,9 @@ server cluster GeneralCommissioning = 48 { CHAR_STRING debugText = 1; } - command ArmFailSafe(ArmFailSafeRequest): ArmFailSafeResponse = 0; - command SetRegulatoryConfig(SetRegulatoryConfigRequest): SetRegulatoryConfigResponse = 2; - command CommissioningComplete(): CommissioningCompleteResponse = 4; + command access(invoke: administer) ArmFailSafe(ArmFailSafeRequest): ArmFailSafeResponse = 0; + command access(invoke: administer) SetRegulatoryConfig(SetRegulatoryConfigRequest): SetRegulatoryConfigResponse = 2; + command access(invoke: administer) CommissioningComplete(): CommissioningCompleteResponse = 4; } server cluster GeneralDiagnostics = 51 { @@ -825,12 +825,12 @@ server cluster Groups = 4 { group_id groupId = 1; } - command AddGroup(AddGroupRequest): AddGroupResponse = 0; + command access(invoke: manage) AddGroup(AddGroupRequest): AddGroupResponse = 0; command ViewGroup(ViewGroupRequest): ViewGroupResponse = 1; command GetGroupMembership(GetGroupMembershipRequest): GetGroupMembershipResponse = 2; - command RemoveGroup(RemoveGroupRequest): RemoveGroupResponse = 3; - command RemoveAllGroups(): DefaultSuccess = 4; - command AddGroupIfIdentifying(AddGroupIfIdentifyingRequest): DefaultSuccess = 5; + command access(invoke: manage) RemoveGroup(RemoveGroupRequest): RemoveGroupResponse = 3; + command access(invoke: manage) RemoveAllGroups(): DefaultSuccess = 4; + command access(invoke: manage) AddGroupIfIdentifying(AddGroupIfIdentifyingRequest): DefaultSuccess = 5; } server cluster Identify = 3 { @@ -868,8 +868,8 @@ server cluster Identify = 3 { INT16U timeout = 0; } - command Identify(IdentifyRequest): DefaultSuccess = 0; - command IdentifyQuery(): IdentifyQueryResponse = 1; + command access(invoke: manage) Identify(IdentifyRequest): DefaultSuccess = 0; + command access(invoke: manage) IdentifyQuery(): IdentifyQueryResponse = 1; } server cluster IlluminanceMeasurement = 1024 { @@ -1317,14 +1317,14 @@ server cluster NetworkCommissioning = 49 { INT8U lqi = 7; } - readonly attribute int8u maxNetworks = 0; - readonly attribute NetworkInfo networks[] = 1; + readonly attribute access(read: administer) int8u maxNetworks = 0; + readonly attribute access(read: administer) NetworkInfo networks[] = 1; readonly attribute int8u scanMaxTimeSeconds = 2; readonly attribute int8u connectMaxTimeSeconds = 3; - attribute boolean interfaceEnabled = 4; - readonly attribute nullable NetworkCommissioningStatus lastNetworkingStatus = 5; - readonly attribute nullable octet_string<32> lastNetworkID = 6; - readonly attribute nullable int32s lastConnectErrorValue = 7; + attribute access(write: administer) boolean interfaceEnabled = 4; + readonly attribute access(read: administer) nullable NetworkCommissioningStatus lastNetworkingStatus = 5; + readonly attribute access(read: administer) nullable octet_string<32> lastNetworkID = 6; + readonly attribute access(read: administer) nullable int32s lastConnectErrorValue = 7; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; @@ -1379,12 +1379,12 @@ server cluster NetworkCommissioning = 49 { nullable INT32S errorValue = 2; } - command ScanNetworks(ScanNetworksRequest): ScanNetworksResponse = 0; - command AddOrUpdateWiFiNetwork(AddOrUpdateWiFiNetworkRequest): NetworkConfigResponse = 2; - command AddOrUpdateThreadNetwork(AddOrUpdateThreadNetworkRequest): NetworkConfigResponse = 3; - command RemoveNetwork(RemoveNetworkRequest): NetworkConfigResponse = 4; - command ConnectNetwork(ConnectNetworkRequest): ConnectNetworkResponse = 6; - command ReorderNetwork(ReorderNetworkRequest): NetworkConfigResponse = 8; + command access(invoke: administer) ScanNetworks(ScanNetworksRequest): ScanNetworksResponse = 0; + command access(invoke: administer) AddOrUpdateWiFiNetwork(AddOrUpdateWiFiNetworkRequest): NetworkConfigResponse = 2; + command access(invoke: administer) AddOrUpdateThreadNetwork(AddOrUpdateThreadNetworkRequest): NetworkConfigResponse = 3; + command access(invoke: administer) RemoveNetwork(RemoveNetworkRequest): NetworkConfigResponse = 4; + command access(invoke: administer) ConnectNetwork(ConnectNetworkRequest): ConnectNetworkResponse = 6; + command access(invoke: administer) ReorderNetwork(ReorderNetworkRequest): NetworkConfigResponse = 8; } client cluster OnOff = 6 { @@ -1421,7 +1421,7 @@ client cluster OnOff = 6 { readonly attribute boolean globalSceneControl = 16384; attribute int16u onTime = 16385; attribute int16u offWaitTime = 16386; - attribute nullable OnOffStartUpOnOff startUpOnOff = 16387; + attribute access(write: manage) nullable OnOffStartUpOnOff startUpOnOff = 16387; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; @@ -1478,7 +1478,7 @@ server cluster OnOff = 6 { readonly attribute boolean globalSceneControl = 16384; attribute int16u onTime = 16385; attribute int16u offWaitTime = 16386; - attribute nullable OnOffStartUpOnOff startUpOnOff = 16387; + attribute access(write: manage) nullable OnOffStartUpOnOff startUpOnOff = 16387; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; @@ -1572,15 +1572,15 @@ client cluster OperationalCredentials = 62 { OCTET_STRING trustedRootIdentifier = 0; } - command AttestationRequest(AttestationRequestRequest): AttestationResponse = 0; - command CertificateChainRequest(CertificateChainRequestRequest): CertificateChainResponse = 2; - command CSRRequest(CSRRequestRequest): CSRResponse = 4; - command AddNOC(AddNOCRequest): NOCResponse = 6; - command UpdateNOC(UpdateNOCRequest): NOCResponse = 7; - command UpdateFabricLabel(UpdateFabricLabelRequest): NOCResponse = 9; - command RemoveFabric(RemoveFabricRequest): NOCResponse = 10; - command AddTrustedRootCertificate(AddTrustedRootCertificateRequest): DefaultSuccess = 11; - command RemoveTrustedRootCertificate(RemoveTrustedRootCertificateRequest): DefaultSuccess = 12; + command access(invoke: administer) AttestationRequest(AttestationRequestRequest): AttestationResponse = 0; + command access(invoke: administer) CertificateChainRequest(CertificateChainRequestRequest): CertificateChainResponse = 2; + command access(invoke: administer) CSRRequest(CSRRequestRequest): CSRResponse = 4; + command access(invoke: administer) AddNOC(AddNOCRequest): NOCResponse = 6; + command access(invoke: administer) UpdateNOC(UpdateNOCRequest): NOCResponse = 7; + command access(invoke: administer) UpdateFabricLabel(UpdateFabricLabelRequest): NOCResponse = 9; + command access(invoke: administer) RemoveFabric(RemoveFabricRequest): NOCResponse = 10; + command access(invoke: administer) AddTrustedRootCertificate(AddTrustedRootCertificateRequest): DefaultSuccess = 11; + command access(invoke: administer) RemoveTrustedRootCertificate(RemoveTrustedRootCertificateRequest): DefaultSuccess = 12; } server cluster OperationalCredentials = 62 { @@ -1674,15 +1674,15 @@ server cluster OperationalCredentials = 62 { optional CHAR_STRING debugText = 2; } - command AttestationRequest(AttestationRequestRequest): AttestationResponse = 0; - command CertificateChainRequest(CertificateChainRequestRequest): CertificateChainResponse = 2; - command CSRRequest(CSRRequestRequest): CSRResponse = 4; - command AddNOC(AddNOCRequest): NOCResponse = 6; - command UpdateNOC(UpdateNOCRequest): NOCResponse = 7; - command UpdateFabricLabel(UpdateFabricLabelRequest): NOCResponse = 9; - command RemoveFabric(RemoveFabricRequest): NOCResponse = 10; - command AddTrustedRootCertificate(AddTrustedRootCertificateRequest): DefaultSuccess = 11; - command RemoveTrustedRootCertificate(RemoveTrustedRootCertificateRequest): DefaultSuccess = 12; + command access(invoke: administer) AttestationRequest(AttestationRequestRequest): AttestationResponse = 0; + command access(invoke: administer) CertificateChainRequest(CertificateChainRequestRequest): CertificateChainResponse = 2; + command access(invoke: administer) CSRRequest(CSRRequestRequest): CSRResponse = 4; + command access(invoke: administer) AddNOC(AddNOCRequest): NOCResponse = 6; + command access(invoke: administer) UpdateNOC(UpdateNOCRequest): NOCResponse = 7; + command access(invoke: administer) UpdateFabricLabel(UpdateFabricLabelRequest): NOCResponse = 9; + command access(invoke: administer) RemoveFabric(RemoveFabricRequest): NOCResponse = 10; + command access(invoke: administer) AddTrustedRootCertificate(AddTrustedRootCertificateRequest): DefaultSuccess = 11; + command access(invoke: administer) RemoveTrustedRootCertificate(RemoveTrustedRootCertificateRequest): DefaultSuccess = 12; } server cluster PowerSource = 47 { @@ -2033,11 +2033,11 @@ server cluster Scenes = 5 { INT8U sceneList[] = 4; } - command AddScene(AddSceneRequest): AddSceneResponse = 0; + command access(invoke: manage) AddScene(AddSceneRequest): AddSceneResponse = 0; command ViewScene(ViewSceneRequest): ViewSceneResponse = 1; - command RemoveScene(RemoveSceneRequest): RemoveSceneResponse = 2; - command RemoveAllScenes(RemoveAllScenesRequest): RemoveAllScenesResponse = 3; - command StoreScene(StoreSceneRequest): StoreSceneResponse = 4; + command access(invoke: manage) RemoveScene(RemoveSceneRequest): RemoveSceneResponse = 2; + command access(invoke: manage) RemoveAllScenes(RemoveAllScenesRequest): RemoveAllScenesResponse = 3; + command access(invoke: manage) StoreScene(StoreSceneRequest): StoreSceneResponse = 4; command RecallScene(RecallSceneRequest): DefaultSuccess = 5; command GetSceneMembership(GetSceneMembershipRequest): GetSceneMembershipResponse = 6; } @@ -2288,13 +2288,13 @@ server cluster Thermostat = 513 { readonly attribute int16s absMaxCoolSetpointLimit = 6; attribute int16s occupiedCoolingSetpoint = 17; attribute int16s occupiedHeatingSetpoint = 18; - attribute int16s minHeatSetpointLimit = 21; - attribute int16s maxHeatSetpointLimit = 22; - attribute int16s minCoolSetpointLimit = 23; - attribute int16s maxCoolSetpointLimit = 24; - attribute int8s minSetpointDeadBand = 25; - attribute ThermostatControlSequence controlSequenceOfOperation = 27; - attribute enum8 systemMode = 28; + attribute access(write: manage) int16s minHeatSetpointLimit = 21; + attribute access(write: manage) int16s maxHeatSetpointLimit = 22; + attribute access(write: manage) int16s minCoolSetpointLimit = 23; + attribute access(write: manage) int16s maxCoolSetpointLimit = 24; + attribute access(write: manage) int8s minSetpointDeadBand = 25; + attribute access(write: manage) ThermostatControlSequence controlSequenceOfOperation = 27; + attribute access(write: manage) enum8 systemMode = 28; readonly attribute enum8 startOfWeek = 32; readonly attribute int8u numberOfWeeklyTransitions = 33; readonly attribute int8u numberOfDailyTransitions = 34; @@ -2304,8 +2304,8 @@ server cluster Thermostat = 513 { client cluster ThermostatUserInterfaceConfiguration = 516 { attribute enum8 temperatureDisplayMode = 0; - attribute enum8 keypadLockout = 1; - attribute enum8 scheduleProgrammingVisibility = 2; + attribute access(write: manage) enum8 keypadLockout = 1; + attribute access(write: manage) enum8 scheduleProgrammingVisibility = 2; readonly attribute command_id generatedCommandList[] = 65528; readonly attribute command_id acceptedCommandList[] = 65529; readonly attribute attrib_id attributeList[] = 65531; @@ -2315,8 +2315,8 @@ client cluster ThermostatUserInterfaceConfiguration = 516 { server cluster ThermostatUserInterfaceConfiguration = 516 { attribute enum8 temperatureDisplayMode = 0; - attribute enum8 keypadLockout = 1; - attribute enum8 scheduleProgrammingVisibility = 2; + attribute access(write: manage) enum8 keypadLockout = 1; + attribute access(write: manage) enum8 scheduleProgrammingVisibility = 2; readonly attribute command_id generatedCommandList[] = 65528; readonly attribute command_id acceptedCommandList[] = 65529; readonly attribute attrib_id attributeList[] = 65531; @@ -2492,7 +2492,7 @@ server cluster WindowCovering = 258 { readonly attribute int16u installedClosedLimitLift = 17; readonly attribute int16u installedOpenLimitTilt = 18; readonly attribute int16u installedClosedLimitTilt = 19; - attribute bitmap8 mode = 23; + attribute access(write: manage) bitmap8 mode = 23; readonly attribute bitmap16 safetyStatus = 26; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; diff --git a/examples/pump-app/pump-common/pump-app.matter b/examples/pump-app/pump-common/pump-app.matter index 8b3878f757d113..2303484b2d9c74 100644 --- a/examples/pump-app/pump-common/pump-app.matter +++ b/examples/pump-app/pump-common/pump-app.matter @@ -46,7 +46,7 @@ server cluster AccessControl = 31 { fabric_idx fabricIndex = 254; } - info event AccessControlEntryChanged = 0 { + info event access(read: administer) AccessControlEntryChanged = 0 { nullable node_id adminNodeID = 1; nullable INT16U adminPasscodeID = 2; ChangeTypeEnum changeType = 3; @@ -54,7 +54,7 @@ server cluster AccessControl = 31 { fabric_idx adminFabricIndex = 254; } - info event AccessControlExtensionChanged = 1 { + info event access(read: administer) AccessControlExtensionChanged = 1 { nullable node_id adminNodeID = 1; nullable INT16U adminPasscodeID = 2; ChangeTypeEnum changeType = 3; @@ -62,8 +62,8 @@ server cluster AccessControl = 31 { fabric_idx adminFabricIndex = 254; } - attribute AccessControlEntry acl[] = 0; - attribute ExtensionEntry extension[] = 1; + attribute access(read: administer, write: administer) AccessControlEntry acl[] = 0; + attribute access(read: administer, write: administer) ExtensionEntry extension[] = 1; readonly attribute int16u subjectsPerAccessControlEntry = 2; readonly attribute int16u targetsPerAccessControlEntry = 3; readonly attribute int16u accessControlEntriesPerFabric = 4; @@ -103,9 +103,9 @@ server cluster AdministratorCommissioning = 60 { INT16U commissioningTimeout = 0; } - timed command OpenCommissioningWindow(OpenCommissioningWindowRequest): DefaultSuccess = 0; - timed command OpenBasicCommissioningWindow(OpenBasicCommissioningWindowRequest): DefaultSuccess = 1; - timed command RevokeCommissioning(): DefaultSuccess = 2; + timed command access(invoke: administer) OpenCommissioningWindow(OpenCommissioningWindowRequest): DefaultSuccess = 0; + timed command access(invoke: administer) OpenBasicCommissioningWindow(OpenBasicCommissioningWindowRequest): DefaultSuccess = 1; + timed command access(invoke: administer) RevokeCommissioning(): DefaultSuccess = 2; } server cluster Basic = 40 { @@ -133,8 +133,8 @@ server cluster Basic = 40 { readonly attribute vendor_id vendorID = 2; readonly attribute char_string<32> productName = 3; readonly attribute int16u productID = 4; - attribute char_string<32> nodeLabel = 5; - attribute char_string<2> location = 6; + attribute access(write: manage) char_string<32> nodeLabel = 5; + attribute access(write: administer) char_string<2> location = 6; readonly attribute int16u hardwareVersion = 7; readonly attribute char_string<64> hardwareVersionString = 8; readonly attribute int32u softwareVersion = 9; @@ -144,7 +144,7 @@ server cluster Basic = 40 { readonly attribute long_char_string<256> productURL = 13; readonly attribute char_string<64> productLabel = 14; readonly attribute char_string<32> serialNumber = 15; - attribute boolean localConfigDisabled = 16; + attribute access(write: manage) boolean localConfigDisabled = 16; readonly attribute boolean reachable = 17; readonly attribute char_string<32> uniqueID = 18; readonly attribute CapabilityMinimaStruct capabilityMinima = 19; @@ -248,7 +248,7 @@ server cluster GeneralCommissioning = 48 { INT16U failSafeExpiryLengthSeconds = 0; } - attribute int64u breadcrumb = 0; + attribute access(write: administer) int64u breadcrumb = 0; readonly attribute BasicCommissioningInfo basicCommissioningInfo = 1; readonly attribute RegulatoryLocationType regulatoryConfig = 2; readonly attribute RegulatoryLocationType locationCapability = 3; @@ -282,9 +282,9 @@ server cluster GeneralCommissioning = 48 { CHAR_STRING debugText = 1; } - command ArmFailSafe(ArmFailSafeRequest): ArmFailSafeResponse = 0; - command SetRegulatoryConfig(SetRegulatoryConfigRequest): SetRegulatoryConfigResponse = 2; - command CommissioningComplete(): CommissioningCompleteResponse = 4; + command access(invoke: administer) ArmFailSafe(ArmFailSafeRequest): ArmFailSafeResponse = 0; + command access(invoke: administer) SetRegulatoryConfig(SetRegulatoryConfigRequest): SetRegulatoryConfigResponse = 2; + command access(invoke: administer) CommissioningComplete(): CommissioningCompleteResponse = 4; } server cluster GeneralDiagnostics = 51 { @@ -409,7 +409,7 @@ server cluster GroupKeyManagement = 63 { nullable epoch_us epochStartTime2 = 7; } - attribute GroupKeyMapStruct groupKeyMap[] = 0; + attribute access(write: manage) GroupKeyMapStruct groupKeyMap[] = 0; readonly attribute GroupInfoMapStruct groupTable[] = 1; readonly attribute int16u maxGroupsPerFabric = 2; readonly attribute int16u maxGroupKeysPerFabric = 3; @@ -440,10 +440,10 @@ server cluster GroupKeyManagement = 63 { INT16U groupKeySetIDs[] = 0; } - command KeySetWrite(KeySetWriteRequest): DefaultSuccess = 0; - command KeySetRead(KeySetReadRequest): KeySetReadResponse = 1; - command KeySetRemove(KeySetRemoveRequest): DefaultSuccess = 3; - command KeySetReadAllIndices(KeySetReadAllIndicesRequest): KeySetReadAllIndicesResponse = 4; + command access(invoke: administer) KeySetWrite(KeySetWriteRequest): DefaultSuccess = 0; + command access(invoke: administer) KeySetRead(KeySetReadRequest): KeySetReadResponse = 1; + command access(invoke: administer) KeySetRemove(KeySetRemoveRequest): DefaultSuccess = 3; + command access(invoke: administer) KeySetReadAllIndices(KeySetReadAllIndicesRequest): KeySetReadAllIndicesResponse = 4; } server cluster Groups = 4 { @@ -494,12 +494,12 @@ server cluster Groups = 4 { group_id groupId = 1; } - command AddGroup(AddGroupRequest): AddGroupResponse = 0; + command access(invoke: manage) AddGroup(AddGroupRequest): AddGroupResponse = 0; command ViewGroup(ViewGroupRequest): ViewGroupResponse = 1; command GetGroupMembership(GetGroupMembershipRequest): GetGroupMembershipResponse = 2; - command RemoveGroup(RemoveGroupRequest): RemoveGroupResponse = 3; - command RemoveAllGroups(): DefaultSuccess = 4; - command AddGroupIfIdentifying(AddGroupIfIdentifyingRequest): DefaultSuccess = 5; + command access(invoke: manage) RemoveGroup(RemoveGroupRequest): RemoveGroupResponse = 3; + command access(invoke: manage) RemoveAllGroups(): DefaultSuccess = 4; + command access(invoke: manage) AddGroupIfIdentifying(AddGroupIfIdentifyingRequest): DefaultSuccess = 5; } server cluster Identify = 3 { @@ -543,9 +543,9 @@ server cluster Identify = 3 { INT16U timeout = 0; } - command Identify(IdentifyRequest): DefaultSuccess = 0; - command IdentifyQuery(): IdentifyQueryResponse = 1; - command TriggerEffect(TriggerEffectRequest): DefaultSuccess = 64; + command access(invoke: manage) Identify(IdentifyRequest): DefaultSuccess = 0; + command access(invoke: manage) IdentifyQuery(): IdentifyQueryResponse = 1; + command access(invoke: manage) TriggerEffect(TriggerEffectRequest): DefaultSuccess = 64; } server cluster LevelControl = 8 { @@ -578,7 +578,7 @@ server cluster LevelControl = 8 { attribute nullable int16u onTransitionTime = 18; attribute nullable int16u offTransitionTime = 19; attribute nullable int8u defaultMoveRate = 20; - attribute nullable int8u startUpCurrentLevel = 16384; + attribute access(write: manage) nullable int8u startUpCurrentLevel = 16384; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; @@ -706,14 +706,14 @@ server cluster NetworkCommissioning = 49 { INT8U lqi = 7; } - readonly attribute int8u maxNetworks = 0; - readonly attribute NetworkInfo networks[] = 1; + readonly attribute access(read: administer) int8u maxNetworks = 0; + readonly attribute access(read: administer) NetworkInfo networks[] = 1; readonly attribute int8u scanMaxTimeSeconds = 2; readonly attribute int8u connectMaxTimeSeconds = 3; - attribute boolean interfaceEnabled = 4; - readonly attribute nullable NetworkCommissioningStatus lastNetworkingStatus = 5; - readonly attribute nullable octet_string<32> lastNetworkID = 6; - readonly attribute nullable int32s lastConnectErrorValue = 7; + attribute access(write: administer) boolean interfaceEnabled = 4; + readonly attribute access(read: administer) nullable NetworkCommissioningStatus lastNetworkingStatus = 5; + readonly attribute access(read: administer) nullable octet_string<32> lastNetworkID = 6; + readonly attribute access(read: administer) nullable int32s lastConnectErrorValue = 7; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; @@ -768,12 +768,12 @@ server cluster NetworkCommissioning = 49 { nullable INT32S errorValue = 2; } - command ScanNetworks(ScanNetworksRequest): ScanNetworksResponse = 0; - command AddOrUpdateWiFiNetwork(AddOrUpdateWiFiNetworkRequest): NetworkConfigResponse = 2; - command AddOrUpdateThreadNetwork(AddOrUpdateThreadNetworkRequest): NetworkConfigResponse = 3; - command RemoveNetwork(RemoveNetworkRequest): NetworkConfigResponse = 4; - command ConnectNetwork(ConnectNetworkRequest): ConnectNetworkResponse = 6; - command ReorderNetwork(ReorderNetworkRequest): NetworkConfigResponse = 8; + command access(invoke: administer) ScanNetworks(ScanNetworksRequest): ScanNetworksResponse = 0; + command access(invoke: administer) AddOrUpdateWiFiNetwork(AddOrUpdateWiFiNetworkRequest): NetworkConfigResponse = 2; + command access(invoke: administer) AddOrUpdateThreadNetwork(AddOrUpdateThreadNetworkRequest): NetworkConfigResponse = 3; + command access(invoke: administer) RemoveNetwork(RemoveNetworkRequest): NetworkConfigResponse = 4; + command access(invoke: administer) ConnectNetwork(ConnectNetworkRequest): ConnectNetworkResponse = 6; + command access(invoke: administer) ReorderNetwork(ReorderNetworkRequest): NetworkConfigResponse = 8; } client cluster OtaSoftwareUpdateProvider = 41 { @@ -940,7 +940,7 @@ server cluster OnOff = 6 { readonly attribute boolean globalSceneControl = 16384; attribute int16u onTime = 16385; attribute int16u offWaitTime = 16386; - attribute nullable OnOffStartUpOnOff startUpOnOff = 16387; + attribute access(write: manage) nullable OnOffStartUpOnOff startUpOnOff = 16387; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; @@ -992,7 +992,7 @@ server cluster OperationalCredentials = 62 { fabric_idx fabricIndex = 254; } - readonly attribute NOCStruct NOCs[] = 0; + readonly attribute access(read: administer) NOCStruct NOCs[] = 0; readonly attribute FabricDescriptor fabrics[] = 1; readonly attribute int8u supportedFabrics = 2; readonly attribute int8u commissionedFabrics = 3; @@ -1062,15 +1062,15 @@ server cluster OperationalCredentials = 62 { optional CHAR_STRING debugText = 2; } - command AttestationRequest(AttestationRequestRequest): AttestationResponse = 0; - command CertificateChainRequest(CertificateChainRequestRequest): CertificateChainResponse = 2; - command CSRRequest(CSRRequestRequest): CSRResponse = 4; - command AddNOC(AddNOCRequest): NOCResponse = 6; - command UpdateNOC(UpdateNOCRequest): NOCResponse = 7; - command UpdateFabricLabel(UpdateFabricLabelRequest): NOCResponse = 9; - command RemoveFabric(RemoveFabricRequest): NOCResponse = 10; - command AddTrustedRootCertificate(AddTrustedRootCertificateRequest): DefaultSuccess = 11; - command RemoveTrustedRootCertificate(RemoveTrustedRootCertificateRequest): DefaultSuccess = 12; + command access(invoke: administer) AttestationRequest(AttestationRequestRequest): AttestationResponse = 0; + command access(invoke: administer) CertificateChainRequest(CertificateChainRequestRequest): CertificateChainResponse = 2; + command access(invoke: administer) CSRRequest(CSRRequestRequest): CSRResponse = 4; + command access(invoke: administer) AddNOC(AddNOCRequest): NOCResponse = 6; + command access(invoke: administer) UpdateNOC(UpdateNOCRequest): NOCResponse = 7; + command access(invoke: administer) UpdateFabricLabel(UpdateFabricLabelRequest): NOCResponse = 9; + command access(invoke: administer) RemoveFabric(RemoveFabricRequest): NOCResponse = 10; + command access(invoke: administer) AddTrustedRootCertificate(AddTrustedRootCertificateRequest): DefaultSuccess = 11; + command access(invoke: administer) RemoveTrustedRootCertificate(RemoveTrustedRootCertificateRequest): DefaultSuccess = 12; } client cluster PressureMeasurement = 1027 { @@ -1313,11 +1313,11 @@ server cluster Scenes = 5 { INT8U sceneList[] = 4; } - command AddScene(AddSceneRequest): AddSceneResponse = 0; + command access(invoke: manage) AddScene(AddSceneRequest): AddSceneResponse = 0; command ViewScene(ViewSceneRequest): ViewSceneResponse = 1; - command RemoveScene(RemoveSceneRequest): RemoveSceneResponse = 2; - command RemoveAllScenes(RemoveAllScenesRequest): RemoveAllScenesResponse = 3; - command StoreScene(StoreSceneRequest): StoreSceneResponse = 4; + command access(invoke: manage) RemoveScene(RemoveSceneRequest): RemoveSceneResponse = 2; + command access(invoke: manage) RemoveAllScenes(RemoveAllScenesRequest): RemoveAllScenesResponse = 3; + command access(invoke: manage) StoreScene(StoreSceneRequest): StoreSceneResponse = 4; command RecallScene(RecallSceneRequest): DefaultSuccess = 5; command GetSceneMembership(GetSceneMembershipRequest): GetSceneMembershipResponse = 6; } @@ -1561,7 +1561,7 @@ server cluster UnitLocalization = 45 { } server cluster UserLabel = 65 { - attribute LabelStruct labelList[] = 0; + attribute access(write: manage) LabelStruct labelList[] = 0; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; } diff --git a/examples/pump-controller-app/pump-controller-common/pump-controller-app.matter b/examples/pump-controller-app/pump-controller-common/pump-controller-app.matter index e9ff5ed06ac6b1..7ad2695c4680b9 100644 --- a/examples/pump-controller-app/pump-controller-common/pump-controller-app.matter +++ b/examples/pump-controller-app/pump-controller-common/pump-controller-app.matter @@ -46,7 +46,7 @@ server cluster AccessControl = 31 { fabric_idx fabricIndex = 254; } - info event AccessControlEntryChanged = 0 { + info event access(read: administer) AccessControlEntryChanged = 0 { nullable node_id adminNodeID = 1; nullable INT16U adminPasscodeID = 2; ChangeTypeEnum changeType = 3; @@ -54,7 +54,7 @@ server cluster AccessControl = 31 { fabric_idx adminFabricIndex = 254; } - info event AccessControlExtensionChanged = 1 { + info event access(read: administer) AccessControlExtensionChanged = 1 { nullable node_id adminNodeID = 1; nullable INT16U adminPasscodeID = 2; ChangeTypeEnum changeType = 3; @@ -62,8 +62,8 @@ server cluster AccessControl = 31 { fabric_idx adminFabricIndex = 254; } - attribute AccessControlEntry acl[] = 0; - attribute ExtensionEntry extension[] = 1; + attribute access(read: administer, write: administer) AccessControlEntry acl[] = 0; + attribute access(read: administer, write: administer) ExtensionEntry extension[] = 1; readonly attribute int16u subjectsPerAccessControlEntry = 2; readonly attribute int16u targetsPerAccessControlEntry = 3; readonly attribute int16u accessControlEntriesPerFabric = 4; @@ -103,9 +103,9 @@ server cluster AdministratorCommissioning = 60 { INT16U commissioningTimeout = 0; } - timed command OpenCommissioningWindow(OpenCommissioningWindowRequest): DefaultSuccess = 0; - timed command OpenBasicCommissioningWindow(OpenBasicCommissioningWindowRequest): DefaultSuccess = 1; - timed command RevokeCommissioning(): DefaultSuccess = 2; + timed command access(invoke: administer) OpenCommissioningWindow(OpenCommissioningWindowRequest): DefaultSuccess = 0; + timed command access(invoke: administer) OpenBasicCommissioningWindow(OpenBasicCommissioningWindowRequest): DefaultSuccess = 1; + timed command access(invoke: administer) RevokeCommissioning(): DefaultSuccess = 2; } server cluster Basic = 40 { @@ -133,8 +133,8 @@ server cluster Basic = 40 { readonly attribute vendor_id vendorID = 2; readonly attribute char_string<32> productName = 3; readonly attribute int16u productID = 4; - attribute char_string<32> nodeLabel = 5; - attribute char_string<2> location = 6; + attribute access(write: manage) char_string<32> nodeLabel = 5; + attribute access(write: administer) char_string<2> location = 6; readonly attribute int16u hardwareVersion = 7; readonly attribute char_string<64> hardwareVersionString = 8; readonly attribute int32u softwareVersion = 9; @@ -144,7 +144,7 @@ server cluster Basic = 40 { readonly attribute long_char_string<256> productURL = 13; readonly attribute char_string<64> productLabel = 14; readonly attribute char_string<32> serialNumber = 15; - attribute boolean localConfigDisabled = 16; + attribute access(write: manage) boolean localConfigDisabled = 16; readonly attribute boolean reachable = 17; readonly attribute char_string<32> uniqueID = 18; readonly attribute CapabilityMinimaStruct capabilityMinima = 19; @@ -240,7 +240,7 @@ server cluster GeneralCommissioning = 48 { INT16U failSafeExpiryLengthSeconds = 0; } - attribute int64u breadcrumb = 0; + attribute access(write: administer) int64u breadcrumb = 0; readonly attribute BasicCommissioningInfo basicCommissioningInfo = 1; readonly attribute RegulatoryLocationType regulatoryConfig = 2; readonly attribute RegulatoryLocationType locationCapability = 3; @@ -274,9 +274,9 @@ server cluster GeneralCommissioning = 48 { CHAR_STRING debugText = 1; } - command ArmFailSafe(ArmFailSafeRequest): ArmFailSafeResponse = 0; - command SetRegulatoryConfig(SetRegulatoryConfigRequest): SetRegulatoryConfigResponse = 2; - command CommissioningComplete(): CommissioningCompleteResponse = 4; + command access(invoke: administer) ArmFailSafe(ArmFailSafeRequest): ArmFailSafeResponse = 0; + command access(invoke: administer) SetRegulatoryConfig(SetRegulatoryConfigRequest): SetRegulatoryConfigResponse = 2; + command access(invoke: administer) CommissioningComplete(): CommissioningCompleteResponse = 4; } server cluster GeneralDiagnostics = 51 { @@ -404,7 +404,7 @@ server cluster GroupKeyManagement = 63 { nullable epoch_us epochStartTime2 = 7; } - attribute GroupKeyMapStruct groupKeyMap[] = 0; + attribute access(write: manage) GroupKeyMapStruct groupKeyMap[] = 0; readonly attribute GroupInfoMapStruct groupTable[] = 1; readonly attribute int16u maxGroupsPerFabric = 2; readonly attribute int16u maxGroupKeysPerFabric = 3; @@ -435,10 +435,10 @@ server cluster GroupKeyManagement = 63 { INT16U groupKeySetIDs[] = 0; } - command KeySetWrite(KeySetWriteRequest): DefaultSuccess = 0; - command KeySetRead(KeySetReadRequest): KeySetReadResponse = 1; - command KeySetRemove(KeySetRemoveRequest): DefaultSuccess = 3; - command KeySetReadAllIndices(KeySetReadAllIndicesRequest): KeySetReadAllIndicesResponse = 4; + command access(invoke: administer) KeySetWrite(KeySetWriteRequest): DefaultSuccess = 0; + command access(invoke: administer) KeySetRead(KeySetReadRequest): KeySetReadResponse = 1; + command access(invoke: administer) KeySetRemove(KeySetRemoveRequest): DefaultSuccess = 3; + command access(invoke: administer) KeySetReadAllIndices(KeySetReadAllIndicesRequest): KeySetReadAllIndicesResponse = 4; } server cluster Groups = 4 { @@ -489,12 +489,12 @@ server cluster Groups = 4 { group_id groupId = 1; } - command AddGroup(AddGroupRequest): AddGroupResponse = 0; + command access(invoke: manage) AddGroup(AddGroupRequest): AddGroupResponse = 0; command ViewGroup(ViewGroupRequest): ViewGroupResponse = 1; command GetGroupMembership(GetGroupMembershipRequest): GetGroupMembershipResponse = 2; - command RemoveGroup(RemoveGroupRequest): RemoveGroupResponse = 3; - command RemoveAllGroups(): DefaultSuccess = 4; - command AddGroupIfIdentifying(AddGroupIfIdentifyingRequest): DefaultSuccess = 5; + command access(invoke: manage) RemoveGroup(RemoveGroupRequest): RemoveGroupResponse = 3; + command access(invoke: manage) RemoveAllGroups(): DefaultSuccess = 4; + command access(invoke: manage) AddGroupIfIdentifying(AddGroupIfIdentifyingRequest): DefaultSuccess = 5; } server cluster Identify = 3 { @@ -538,9 +538,9 @@ server cluster Identify = 3 { INT16U timeout = 0; } - command Identify(IdentifyRequest): DefaultSuccess = 0; - command IdentifyQuery(): IdentifyQueryResponse = 1; - command TriggerEffect(TriggerEffectRequest): DefaultSuccess = 64; + command access(invoke: manage) Identify(IdentifyRequest): DefaultSuccess = 0; + command access(invoke: manage) IdentifyQuery(): IdentifyQueryResponse = 1; + command access(invoke: manage) TriggerEffect(TriggerEffectRequest): DefaultSuccess = 64; } server cluster LocalizationConfiguration = 43 { @@ -614,14 +614,14 @@ server cluster NetworkCommissioning = 49 { INT8U lqi = 7; } - readonly attribute int8u maxNetworks = 0; - readonly attribute NetworkInfo networks[] = 1; + readonly attribute access(read: administer) int8u maxNetworks = 0; + readonly attribute access(read: administer) NetworkInfo networks[] = 1; readonly attribute int8u scanMaxTimeSeconds = 2; readonly attribute int8u connectMaxTimeSeconds = 3; - attribute boolean interfaceEnabled = 4; - readonly attribute nullable NetworkCommissioningStatus lastNetworkingStatus = 5; - readonly attribute nullable octet_string<32> lastNetworkID = 6; - readonly attribute nullable int32s lastConnectErrorValue = 7; + attribute access(write: administer) boolean interfaceEnabled = 4; + readonly attribute access(read: administer) nullable NetworkCommissioningStatus lastNetworkingStatus = 5; + readonly attribute access(read: administer) nullable octet_string<32> lastNetworkID = 6; + readonly attribute access(read: administer) nullable int32s lastConnectErrorValue = 7; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; @@ -676,12 +676,12 @@ server cluster NetworkCommissioning = 49 { nullable INT32S errorValue = 2; } - command ScanNetworks(ScanNetworksRequest): ScanNetworksResponse = 0; - command AddOrUpdateWiFiNetwork(AddOrUpdateWiFiNetworkRequest): NetworkConfigResponse = 2; - command AddOrUpdateThreadNetwork(AddOrUpdateThreadNetworkRequest): NetworkConfigResponse = 3; - command RemoveNetwork(RemoveNetworkRequest): NetworkConfigResponse = 4; - command ConnectNetwork(ConnectNetworkRequest): ConnectNetworkResponse = 6; - command ReorderNetwork(ReorderNetworkRequest): NetworkConfigResponse = 8; + command access(invoke: administer) ScanNetworks(ScanNetworksRequest): ScanNetworksResponse = 0; + command access(invoke: administer) AddOrUpdateWiFiNetwork(AddOrUpdateWiFiNetworkRequest): NetworkConfigResponse = 2; + command access(invoke: administer) AddOrUpdateThreadNetwork(AddOrUpdateThreadNetworkRequest): NetworkConfigResponse = 3; + command access(invoke: administer) RemoveNetwork(RemoveNetworkRequest): NetworkConfigResponse = 4; + command access(invoke: administer) ConnectNetwork(ConnectNetworkRequest): ConnectNetworkResponse = 6; + command access(invoke: administer) ReorderNetwork(ReorderNetworkRequest): NetworkConfigResponse = 8; } client cluster OtaSoftwareUpdateProvider = 41 { @@ -878,7 +878,7 @@ server cluster OperationalCredentials = 62 { fabric_idx fabricIndex = 254; } - readonly attribute NOCStruct NOCs[] = 0; + readonly attribute access(read: administer) NOCStruct NOCs[] = 0; readonly attribute FabricDescriptor fabrics[] = 1; readonly attribute int8u supportedFabrics = 2; readonly attribute int8u commissionedFabrics = 3; @@ -948,15 +948,15 @@ server cluster OperationalCredentials = 62 { optional CHAR_STRING debugText = 2; } - command AttestationRequest(AttestationRequestRequest): AttestationResponse = 0; - command CertificateChainRequest(CertificateChainRequestRequest): CertificateChainResponse = 2; - command CSRRequest(CSRRequestRequest): CSRResponse = 4; - command AddNOC(AddNOCRequest): NOCResponse = 6; - command UpdateNOC(UpdateNOCRequest): NOCResponse = 7; - command UpdateFabricLabel(UpdateFabricLabelRequest): NOCResponse = 9; - command RemoveFabric(RemoveFabricRequest): NOCResponse = 10; - command AddTrustedRootCertificate(AddTrustedRootCertificateRequest): DefaultSuccess = 11; - command RemoveTrustedRootCertificate(RemoveTrustedRootCertificateRequest): DefaultSuccess = 12; + command access(invoke: administer) AttestationRequest(AttestationRequestRequest): AttestationResponse = 0; + command access(invoke: administer) CertificateChainRequest(CertificateChainRequestRequest): CertificateChainResponse = 2; + command access(invoke: administer) CSRRequest(CSRRequestRequest): CSRResponse = 4; + command access(invoke: administer) AddNOC(AddNOCRequest): NOCResponse = 6; + command access(invoke: administer) UpdateNOC(UpdateNOCRequest): NOCResponse = 7; + command access(invoke: administer) UpdateFabricLabel(UpdateFabricLabelRequest): NOCResponse = 9; + command access(invoke: administer) RemoveFabric(RemoveFabricRequest): NOCResponse = 10; + command access(invoke: administer) AddTrustedRootCertificate(AddTrustedRootCertificateRequest): DefaultSuccess = 11; + command access(invoke: administer) RemoveTrustedRootCertificate(RemoveTrustedRootCertificateRequest): DefaultSuccess = 12; } client cluster PressureMeasurement = 1027 { @@ -1288,7 +1288,7 @@ server cluster UnitLocalization = 45 { } server cluster UserLabel = 65 { - attribute LabelStruct labelList[] = 0; + attribute access(write: manage) LabelStruct labelList[] = 0; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; } diff --git a/examples/temperature-measurement-app/esp32/main/temperature-measurement.matter b/examples/temperature-measurement-app/esp32/main/temperature-measurement.matter index a37f0000ab6c75..f2deaf7f3cd215 100644 --- a/examples/temperature-measurement-app/esp32/main/temperature-measurement.matter +++ b/examples/temperature-measurement-app/esp32/main/temperature-measurement.matter @@ -46,7 +46,7 @@ server cluster AccessControl = 31 { fabric_idx fabricIndex = 254; } - info event AccessControlEntryChanged = 0 { + info event access(read: administer) AccessControlEntryChanged = 0 { nullable node_id adminNodeID = 1; nullable INT16U adminPasscodeID = 2; ChangeTypeEnum changeType = 3; @@ -54,7 +54,7 @@ server cluster AccessControl = 31 { fabric_idx adminFabricIndex = 254; } - info event AccessControlExtensionChanged = 1 { + info event access(read: administer) AccessControlExtensionChanged = 1 { nullable node_id adminNodeID = 1; nullable INT16U adminPasscodeID = 2; ChangeTypeEnum changeType = 3; @@ -62,8 +62,8 @@ server cluster AccessControl = 31 { fabric_idx adminFabricIndex = 254; } - attribute AccessControlEntry acl[] = 0; - attribute ExtensionEntry extension[] = 1; + attribute access(read: administer, write: administer) AccessControlEntry acl[] = 0; + attribute access(read: administer, write: administer) ExtensionEntry extension[] = 1; readonly attribute int16u subjectsPerAccessControlEntry = 2; readonly attribute int16u targetsPerAccessControlEntry = 3; readonly attribute int16u accessControlEntriesPerFabric = 4; @@ -101,9 +101,9 @@ server cluster AdministratorCommissioning = 60 { INT16U commissioningTimeout = 0; } - timed command OpenCommissioningWindow(OpenCommissioningWindowRequest): DefaultSuccess = 0; - timed command OpenBasicCommissioningWindow(OpenBasicCommissioningWindowRequest): DefaultSuccess = 1; - timed command RevokeCommissioning(): DefaultSuccess = 2; + timed command access(invoke: administer) OpenCommissioningWindow(OpenCommissioningWindowRequest): DefaultSuccess = 0; + timed command access(invoke: administer) OpenBasicCommissioningWindow(OpenBasicCommissioningWindowRequest): DefaultSuccess = 1; + timed command access(invoke: administer) RevokeCommissioning(): DefaultSuccess = 2; } server cluster Basic = 40 { @@ -131,8 +131,8 @@ server cluster Basic = 40 { readonly attribute vendor_id vendorID = 2; readonly attribute char_string<32> productName = 3; readonly attribute int16u productID = 4; - attribute char_string<32> nodeLabel = 5; - attribute char_string<2> location = 6; + attribute access(write: manage) char_string<32> nodeLabel = 5; + attribute access(write: administer) char_string<2> location = 6; readonly attribute int16u hardwareVersion = 7; readonly attribute char_string<64> hardwareVersionString = 8; readonly attribute int32u softwareVersion = 9; @@ -142,7 +142,7 @@ server cluster Basic = 40 { readonly attribute long_char_string<256> productURL = 13; readonly attribute char_string<64> productLabel = 14; readonly attribute char_string<32> serialNumber = 15; - attribute boolean localConfigDisabled = 16; + attribute access(write: manage) boolean localConfigDisabled = 16; readonly attribute boolean reachable = 17; readonly attribute char_string<32> uniqueID = 18; readonly attribute CapabilityMinimaStruct capabilityMinima = 19; @@ -243,7 +243,7 @@ server cluster GeneralCommissioning = 48 { INT16U failSafeExpiryLengthSeconds = 0; } - attribute int64u breadcrumb = 0; + attribute access(write: administer) int64u breadcrumb = 0; readonly attribute BasicCommissioningInfo basicCommissioningInfo = 1; readonly attribute RegulatoryLocationType regulatoryConfig = 2; readonly attribute RegulatoryLocationType locationCapability = 3; @@ -277,9 +277,9 @@ server cluster GeneralCommissioning = 48 { CHAR_STRING debugText = 1; } - command ArmFailSafe(ArmFailSafeRequest): ArmFailSafeResponse = 0; - command SetRegulatoryConfig(SetRegulatoryConfigRequest): SetRegulatoryConfigResponse = 2; - command CommissioningComplete(): CommissioningCompleteResponse = 4; + command access(invoke: administer) ArmFailSafe(ArmFailSafeRequest): ArmFailSafeResponse = 0; + command access(invoke: administer) SetRegulatoryConfig(SetRegulatoryConfigRequest): SetRegulatoryConfigResponse = 2; + command access(invoke: administer) CommissioningComplete(): CommissioningCompleteResponse = 4; } server cluster GeneralDiagnostics = 51 { @@ -443,14 +443,14 @@ server cluster NetworkCommissioning = 49 { INT8U lqi = 7; } - readonly attribute int8u maxNetworks = 0; - readonly attribute NetworkInfo networks[] = 1; + readonly attribute access(read: administer) int8u maxNetworks = 0; + readonly attribute access(read: administer) NetworkInfo networks[] = 1; readonly attribute int8u scanMaxTimeSeconds = 2; readonly attribute int8u connectMaxTimeSeconds = 3; - attribute boolean interfaceEnabled = 4; - readonly attribute nullable NetworkCommissioningStatus lastNetworkingStatus = 5; - readonly attribute nullable octet_string<32> lastNetworkID = 6; - readonly attribute nullable int32s lastConnectErrorValue = 7; + attribute access(write: administer) boolean interfaceEnabled = 4; + readonly attribute access(read: administer) nullable NetworkCommissioningStatus lastNetworkingStatus = 5; + readonly attribute access(read: administer) nullable octet_string<32> lastNetworkID = 6; + readonly attribute access(read: administer) nullable int32s lastConnectErrorValue = 7; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; @@ -500,11 +500,11 @@ server cluster NetworkCommissioning = 49 { nullable INT32S errorValue = 2; } - command ScanNetworks(ScanNetworksRequest): ScanNetworksResponse = 0; - command AddOrUpdateWiFiNetwork(AddOrUpdateWiFiNetworkRequest): NetworkConfigResponse = 2; - command RemoveNetwork(RemoveNetworkRequest): NetworkConfigResponse = 4; - command ConnectNetwork(ConnectNetworkRequest): ConnectNetworkResponse = 6; - command ReorderNetwork(ReorderNetworkRequest): NetworkConfigResponse = 8; + command access(invoke: administer) ScanNetworks(ScanNetworksRequest): ScanNetworksResponse = 0; + command access(invoke: administer) AddOrUpdateWiFiNetwork(AddOrUpdateWiFiNetworkRequest): NetworkConfigResponse = 2; + command access(invoke: administer) RemoveNetwork(RemoveNetworkRequest): NetworkConfigResponse = 4; + command access(invoke: administer) ConnectNetwork(ConnectNetworkRequest): ConnectNetworkResponse = 6; + command access(invoke: administer) ReorderNetwork(ReorderNetworkRequest): NetworkConfigResponse = 8; } server cluster OperationalCredentials = 62 { @@ -536,7 +536,7 @@ server cluster OperationalCredentials = 62 { fabric_idx fabricIndex = 254; } - readonly attribute NOCStruct NOCs[] = 0; + readonly attribute access(read: administer) NOCStruct NOCs[] = 0; readonly attribute FabricDescriptor fabrics[] = 1; readonly attribute int8u supportedFabrics = 2; readonly attribute int8u commissionedFabrics = 3; @@ -605,15 +605,15 @@ server cluster OperationalCredentials = 62 { optional CHAR_STRING debugText = 2; } - command AttestationRequest(AttestationRequestRequest): AttestationResponse = 0; - command CertificateChainRequest(CertificateChainRequestRequest): CertificateChainResponse = 2; - command CSRRequest(CSRRequestRequest): CSRResponse = 4; - command AddNOC(AddNOCRequest): NOCResponse = 6; - command UpdateNOC(UpdateNOCRequest): NOCResponse = 7; - command UpdateFabricLabel(UpdateFabricLabelRequest): NOCResponse = 9; - command RemoveFabric(RemoveFabricRequest): NOCResponse = 10; - command AddTrustedRootCertificate(AddTrustedRootCertificateRequest): DefaultSuccess = 11; - command RemoveTrustedRootCertificate(RemoveTrustedRootCertificateRequest): DefaultSuccess = 12; + command access(invoke: administer) AttestationRequest(AttestationRequestRequest): AttestationResponse = 0; + command access(invoke: administer) CertificateChainRequest(CertificateChainRequestRequest): CertificateChainResponse = 2; + command access(invoke: administer) CSRRequest(CSRRequestRequest): CSRResponse = 4; + command access(invoke: administer) AddNOC(AddNOCRequest): NOCResponse = 6; + command access(invoke: administer) UpdateNOC(UpdateNOCRequest): NOCResponse = 7; + command access(invoke: administer) UpdateFabricLabel(UpdateFabricLabelRequest): NOCResponse = 9; + command access(invoke: administer) RemoveFabric(RemoveFabricRequest): NOCResponse = 10; + command access(invoke: administer) AddTrustedRootCertificate(AddTrustedRootCertificateRequest): DefaultSuccess = 11; + command access(invoke: administer) RemoveTrustedRootCertificate(RemoveTrustedRootCertificateRequest): DefaultSuccess = 12; } server cluster SoftwareDiagnostics = 52 { @@ -677,7 +677,7 @@ server cluster UnitLocalization = 45 { } server cluster UserLabel = 65 { - attribute LabelStruct labelList[] = 0; + attribute access(write: manage) LabelStruct labelList[] = 0; readonly attribute int16u clusterRevision = 65533; } diff --git a/examples/thermostat/thermostat-common/thermostat.matter b/examples/thermostat/thermostat-common/thermostat.matter index 99840c5d4c6b9d..d7273664478a1e 100644 --- a/examples/thermostat/thermostat-common/thermostat.matter +++ b/examples/thermostat/thermostat-common/thermostat.matter @@ -46,7 +46,7 @@ server cluster AccessControl = 31 { fabric_idx fabricIndex = 254; } - info event AccessControlEntryChanged = 0 { + info event access(read: administer) AccessControlEntryChanged = 0 { nullable node_id adminNodeID = 1; nullable INT16U adminPasscodeID = 2; ChangeTypeEnum changeType = 3; @@ -54,7 +54,7 @@ server cluster AccessControl = 31 { fabric_idx adminFabricIndex = 254; } - info event AccessControlExtensionChanged = 1 { + info event access(read: administer) AccessControlExtensionChanged = 1 { nullable node_id adminNodeID = 1; nullable INT16U adminPasscodeID = 2; ChangeTypeEnum changeType = 3; @@ -62,8 +62,8 @@ server cluster AccessControl = 31 { fabric_idx adminFabricIndex = 254; } - attribute AccessControlEntry acl[] = 0; - attribute ExtensionEntry extension[] = 1; + attribute access(read: administer, write: administer) AccessControlEntry acl[] = 0; + attribute access(read: administer, write: administer) ExtensionEntry extension[] = 1; readonly attribute int16u subjectsPerAccessControlEntry = 2; readonly attribute int16u targetsPerAccessControlEntry = 3; readonly attribute int16u accessControlEntriesPerFabric = 4; @@ -101,9 +101,9 @@ server cluster AdministratorCommissioning = 60 { INT16U commissioningTimeout = 0; } - timed command OpenCommissioningWindow(OpenCommissioningWindowRequest): DefaultSuccess = 0; - timed command OpenBasicCommissioningWindow(OpenBasicCommissioningWindowRequest): DefaultSuccess = 1; - timed command RevokeCommissioning(): DefaultSuccess = 2; + timed command access(invoke: administer) OpenCommissioningWindow(OpenCommissioningWindowRequest): DefaultSuccess = 0; + timed command access(invoke: administer) OpenBasicCommissioningWindow(OpenBasicCommissioningWindowRequest): DefaultSuccess = 1; + timed command access(invoke: administer) RevokeCommissioning(): DefaultSuccess = 2; } server cluster Basic = 40 { @@ -131,8 +131,8 @@ server cluster Basic = 40 { readonly attribute vendor_id vendorID = 2; readonly attribute char_string<32> productName = 3; readonly attribute int16u productID = 4; - attribute char_string<32> nodeLabel = 5; - attribute char_string<2> location = 6; + attribute access(write: manage) char_string<32> nodeLabel = 5; + attribute access(write: administer) char_string<2> location = 6; readonly attribute int16u hardwareVersion = 7; readonly attribute char_string<64> hardwareVersionString = 8; readonly attribute int32u softwareVersion = 9; @@ -142,7 +142,7 @@ server cluster Basic = 40 { readonly attribute long_char_string<256> productURL = 13; readonly attribute char_string<64> productLabel = 14; readonly attribute char_string<32> serialNumber = 15; - attribute boolean localConfigDisabled = 16; + attribute access(write: manage) boolean localConfigDisabled = 16; readonly attribute boolean reachable = 17; readonly attribute char_string<32> uniqueID = 18; readonly attribute CapabilityMinimaStruct capabilityMinima = 19; @@ -256,7 +256,7 @@ server cluster GeneralCommissioning = 48 { INT16U failSafeExpiryLengthSeconds = 0; } - attribute int64u breadcrumb = 0; + attribute access(write: administer) int64u breadcrumb = 0; readonly attribute BasicCommissioningInfo basicCommissioningInfo = 1; readonly attribute RegulatoryLocationType regulatoryConfig = 2; readonly attribute RegulatoryLocationType locationCapability = 3; @@ -290,9 +290,9 @@ server cluster GeneralCommissioning = 48 { CHAR_STRING debugText = 1; } - command ArmFailSafe(ArmFailSafeRequest): ArmFailSafeResponse = 0; - command SetRegulatoryConfig(SetRegulatoryConfigRequest): SetRegulatoryConfigResponse = 2; - command CommissioningComplete(): CommissioningCompleteResponse = 4; + command access(invoke: administer) ArmFailSafe(ArmFailSafeRequest): ArmFailSafeResponse = 0; + command access(invoke: administer) SetRegulatoryConfig(SetRegulatoryConfigRequest): SetRegulatoryConfigResponse = 2; + command access(invoke: administer) CommissioningComplete(): CommissioningCompleteResponse = 4; } server cluster GeneralDiagnostics = 51 { @@ -405,7 +405,7 @@ server cluster GroupKeyManagement = 63 { fabric_idx fabricIndex = 254; } - attribute GroupKeyMapStruct groupKeyMap[] = 0; + attribute access(write: manage) GroupKeyMapStruct groupKeyMap[] = 0; readonly attribute GroupInfoMapStruct groupTable[] = 1; readonly attribute int16u clusterRevision = 65533; } @@ -457,12 +457,12 @@ server cluster Groups = 4 { group_id groupId = 1; } - command AddGroup(AddGroupRequest): AddGroupResponse = 0; + command access(invoke: manage) AddGroup(AddGroupRequest): AddGroupResponse = 0; command ViewGroup(ViewGroupRequest): ViewGroupResponse = 1; command GetGroupMembership(GetGroupMembershipRequest): GetGroupMembershipResponse = 2; - command RemoveGroup(RemoveGroupRequest): RemoveGroupResponse = 3; - command RemoveAllGroups(): DefaultSuccess = 4; - command AddGroupIfIdentifying(AddGroupIfIdentifyingRequest): DefaultSuccess = 5; + command access(invoke: manage) RemoveGroup(RemoveGroupRequest): RemoveGroupResponse = 3; + command access(invoke: manage) RemoveAllGroups(): DefaultSuccess = 4; + command access(invoke: manage) AddGroupIfIdentifying(AddGroupIfIdentifyingRequest): DefaultSuccess = 5; } client cluster Identify = 3 { @@ -500,8 +500,8 @@ client cluster Identify = 3 { INT16U timeout = 0; } - command Identify(IdentifyRequest): DefaultSuccess = 0; - command IdentifyQuery(): IdentifyQueryResponse = 1; + command access(invoke: manage) Identify(IdentifyRequest): DefaultSuccess = 0; + command access(invoke: manage) IdentifyQuery(): IdentifyQueryResponse = 1; } server cluster Identify = 3 { @@ -539,8 +539,8 @@ server cluster Identify = 3 { INT16U timeout = 0; } - command Identify(IdentifyRequest): DefaultSuccess = 0; - command IdentifyQuery(): IdentifyQueryResponse = 1; + command access(invoke: manage) Identify(IdentifyRequest): DefaultSuccess = 0; + command access(invoke: manage) IdentifyQuery(): IdentifyQueryResponse = 1; } server cluster LocalizationConfiguration = 43 { @@ -613,14 +613,14 @@ server cluster NetworkCommissioning = 49 { INT8U lqi = 7; } - readonly attribute int8u maxNetworks = 0; - readonly attribute NetworkInfo networks[] = 1; + readonly attribute access(read: administer) int8u maxNetworks = 0; + readonly attribute access(read: administer) NetworkInfo networks[] = 1; readonly attribute int8u scanMaxTimeSeconds = 2; readonly attribute int8u connectMaxTimeSeconds = 3; - attribute boolean interfaceEnabled = 4; - readonly attribute nullable NetworkCommissioningStatus lastNetworkingStatus = 5; - readonly attribute nullable octet_string<32> lastNetworkID = 6; - readonly attribute nullable int32s lastConnectErrorValue = 7; + attribute access(write: administer) boolean interfaceEnabled = 4; + readonly attribute access(read: administer) nullable NetworkCommissioningStatus lastNetworkingStatus = 5; + readonly attribute access(read: administer) nullable octet_string<32> lastNetworkID = 6; + readonly attribute access(read: administer) nullable int32s lastConnectErrorValue = 7; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; @@ -675,12 +675,12 @@ server cluster NetworkCommissioning = 49 { nullable INT32S errorValue = 2; } - command ScanNetworks(ScanNetworksRequest): ScanNetworksResponse = 0; - command AddOrUpdateWiFiNetwork(AddOrUpdateWiFiNetworkRequest): NetworkConfigResponse = 2; - command AddOrUpdateThreadNetwork(AddOrUpdateThreadNetworkRequest): NetworkConfigResponse = 3; - command RemoveNetwork(RemoveNetworkRequest): NetworkConfigResponse = 4; - command ConnectNetwork(ConnectNetworkRequest): ConnectNetworkResponse = 6; - command ReorderNetwork(ReorderNetworkRequest): NetworkConfigResponse = 8; + command access(invoke: administer) ScanNetworks(ScanNetworksRequest): ScanNetworksResponse = 0; + command access(invoke: administer) AddOrUpdateWiFiNetwork(AddOrUpdateWiFiNetworkRequest): NetworkConfigResponse = 2; + command access(invoke: administer) AddOrUpdateThreadNetwork(AddOrUpdateThreadNetworkRequest): NetworkConfigResponse = 3; + command access(invoke: administer) RemoveNetwork(RemoveNetworkRequest): NetworkConfigResponse = 4; + command access(invoke: administer) ConnectNetwork(ConnectNetworkRequest): ConnectNetworkResponse = 6; + command access(invoke: administer) ReorderNetwork(ReorderNetworkRequest): NetworkConfigResponse = 8; } server cluster OtaSoftwareUpdateProvider = 41 { @@ -777,7 +777,7 @@ server cluster OperationalCredentials = 62 { fabric_idx fabricIndex = 254; } - readonly attribute NOCStruct NOCs[] = 0; + readonly attribute access(read: administer) NOCStruct NOCs[] = 0; readonly attribute FabricDescriptor fabrics[] = 1; readonly attribute int8u supportedFabrics = 2; readonly attribute int8u commissionedFabrics = 3; @@ -846,15 +846,15 @@ server cluster OperationalCredentials = 62 { optional CHAR_STRING debugText = 2; } - command AttestationRequest(AttestationRequestRequest): AttestationResponse = 0; - command CertificateChainRequest(CertificateChainRequestRequest): CertificateChainResponse = 2; - command CSRRequest(CSRRequestRequest): CSRResponse = 4; - command AddNOC(AddNOCRequest): NOCResponse = 6; - command UpdateNOC(UpdateNOCRequest): NOCResponse = 7; - command UpdateFabricLabel(UpdateFabricLabelRequest): NOCResponse = 9; - command RemoveFabric(RemoveFabricRequest): NOCResponse = 10; - command AddTrustedRootCertificate(AddTrustedRootCertificateRequest): DefaultSuccess = 11; - command RemoveTrustedRootCertificate(RemoveTrustedRootCertificateRequest): DefaultSuccess = 12; + command access(invoke: administer) AttestationRequest(AttestationRequestRequest): AttestationResponse = 0; + command access(invoke: administer) CertificateChainRequest(CertificateChainRequestRequest): CertificateChainResponse = 2; + command access(invoke: administer) CSRRequest(CSRRequestRequest): CSRResponse = 4; + command access(invoke: administer) AddNOC(AddNOCRequest): NOCResponse = 6; + command access(invoke: administer) UpdateNOC(UpdateNOCRequest): NOCResponse = 7; + command access(invoke: administer) UpdateFabricLabel(UpdateFabricLabelRequest): NOCResponse = 9; + command access(invoke: administer) RemoveFabric(RemoveFabricRequest): NOCResponse = 10; + command access(invoke: administer) AddTrustedRootCertificate(AddTrustedRootCertificateRequest): DefaultSuccess = 11; + command access(invoke: administer) RemoveTrustedRootCertificate(RemoveTrustedRootCertificateRequest): DefaultSuccess = 12; } server cluster Scenes = 5 { @@ -952,11 +952,11 @@ server cluster Scenes = 5 { INT8U sceneList[] = 4; } - command AddScene(AddSceneRequest): AddSceneResponse = 0; + command access(invoke: manage) AddScene(AddSceneRequest): AddSceneResponse = 0; command ViewScene(ViewSceneRequest): ViewSceneResponse = 1; - command RemoveScene(RemoveSceneRequest): RemoveSceneResponse = 2; - command RemoveAllScenes(RemoveAllScenesRequest): RemoveAllScenesResponse = 3; - command StoreScene(StoreSceneRequest): StoreSceneResponse = 4; + command access(invoke: manage) RemoveScene(RemoveSceneRequest): RemoveSceneResponse = 2; + command access(invoke: manage) RemoveAllScenes(RemoveAllScenesRequest): RemoveAllScenesResponse = 3; + command access(invoke: manage) StoreScene(StoreSceneRequest): StoreSceneResponse = 4; command RecallScene(RecallSceneRequest): DefaultSuccess = 5; command GetSceneMembership(GetSceneMembershipRequest): GetSceneMembershipResponse = 6; } @@ -1046,13 +1046,13 @@ server cluster Thermostat = 513 { readonly attribute int16s absMaxCoolSetpointLimit = 6; attribute int16s occupiedCoolingSetpoint = 17; attribute int16s occupiedHeatingSetpoint = 18; - attribute int16s minHeatSetpointLimit = 21; - attribute int16s maxHeatSetpointLimit = 22; - attribute int16s minCoolSetpointLimit = 23; - attribute int16s maxCoolSetpointLimit = 24; - attribute int8s minSetpointDeadBand = 25; - attribute ThermostatControlSequence controlSequenceOfOperation = 27; - attribute enum8 systemMode = 28; + attribute access(write: manage) int16s minHeatSetpointLimit = 21; + attribute access(write: manage) int16s maxHeatSetpointLimit = 22; + attribute access(write: manage) int16s minCoolSetpointLimit = 23; + attribute access(write: manage) int16s maxCoolSetpointLimit = 24; + attribute access(write: manage) int8s minSetpointDeadBand = 25; + attribute access(write: manage) ThermostatControlSequence controlSequenceOfOperation = 27; + attribute access(write: manage) enum8 systemMode = 28; readonly attribute enum8 startOfWeek = 32; readonly attribute int8u numberOfWeeklyTransitions = 33; readonly attribute int8u numberOfDailyTransitions = 34; @@ -1093,9 +1093,9 @@ server cluster Thermostat = 513 { } command SetpointRaiseLower(SetpointRaiseLowerRequest): DefaultSuccess = 0; - command SetWeeklySchedule(SetWeeklyScheduleRequest): DefaultSuccess = 1; + command access(invoke: manage) SetWeeklySchedule(SetWeeklyScheduleRequest): DefaultSuccess = 1; command GetWeeklySchedule(GetWeeklyScheduleRequest): GetWeeklyScheduleResponse = 2; - command ClearWeeklySchedule(): DefaultSuccess = 3; + command access(invoke: manage) ClearWeeklySchedule(): DefaultSuccess = 3; command GetRelayStatusLog(): GetRelayStatusLogResponse = 4; } @@ -1294,7 +1294,7 @@ server cluster UnitLocalization = 45 { } server cluster UserLabel = 65 { - attribute LabelStruct labelList[] = 0; + attribute access(write: manage) LabelStruct labelList[] = 0; readonly attribute int16u clusterRevision = 65533; } diff --git a/examples/tv-app/tv-common/tv-app.matter b/examples/tv-app/tv-common/tv-app.matter index deee6f58755d48..6aca638a28fc84 100644 --- a/examples/tv-app/tv-common/tv-app.matter +++ b/examples/tv-app/tv-common/tv-app.matter @@ -46,7 +46,7 @@ server cluster AccessControl = 31 { fabric_idx fabricIndex = 254; } - info event AccessControlEntryChanged = 0 { + info event access(read: administer) AccessControlEntryChanged = 0 { nullable node_id adminNodeID = 1; nullable INT16U adminPasscodeID = 2; ChangeTypeEnum changeType = 3; @@ -54,7 +54,7 @@ server cluster AccessControl = 31 { fabric_idx adminFabricIndex = 254; } - info event AccessControlExtensionChanged = 1 { + info event access(read: administer) AccessControlExtensionChanged = 1 { nullable node_id adminNodeID = 1; nullable INT16U adminPasscodeID = 2; ChangeTypeEnum changeType = 3; @@ -62,8 +62,8 @@ server cluster AccessControl = 31 { fabric_idx adminFabricIndex = 254; } - attribute AccessControlEntry acl[] = 0; - attribute ExtensionEntry extension[] = 1; + attribute access(read: administer, write: administer) AccessControlEntry acl[] = 0; + attribute access(read: administer, write: administer) ExtensionEntry extension[] = 1; readonly attribute int16u subjectsPerAccessControlEntry = 2; readonly attribute int16u targetsPerAccessControlEntry = 3; readonly attribute int16u accessControlEntriesPerFabric = 4; @@ -122,9 +122,9 @@ server cluster AdministratorCommissioning = 60 { INT16U commissioningTimeout = 0; } - timed command OpenCommissioningWindow(OpenCommissioningWindowRequest): DefaultSuccess = 0; - timed command OpenBasicCommissioningWindow(OpenBasicCommissioningWindowRequest): DefaultSuccess = 1; - timed command RevokeCommissioning(): DefaultSuccess = 2; + timed command access(invoke: administer) OpenCommissioningWindow(OpenCommissioningWindowRequest): DefaultSuccess = 0; + timed command access(invoke: administer) OpenBasicCommissioningWindow(OpenBasicCommissioningWindowRequest): DefaultSuccess = 1; + timed command access(invoke: administer) RevokeCommissioning(): DefaultSuccess = 2; } server cluster ApplicationBasic = 1293 { @@ -261,8 +261,8 @@ server cluster Basic = 40 { readonly attribute vendor_id vendorID = 2; readonly attribute char_string<32> productName = 3; readonly attribute int16u productID = 4; - attribute char_string<32> nodeLabel = 5; - attribute char_string<2> location = 6; + attribute access(write: manage) char_string<32> nodeLabel = 5; + attribute access(write: administer) char_string<2> location = 6; readonly attribute int16u hardwareVersion = 7; readonly attribute char_string<64> hardwareVersionString = 8; readonly attribute int32u softwareVersion = 9; @@ -272,7 +272,7 @@ server cluster Basic = 40 { readonly attribute long_char_string<256> productURL = 13; readonly attribute char_string<64> productLabel = 14; readonly attribute char_string<32> serialNumber = 15; - attribute boolean localConfigDisabled = 16; + attribute access(write: manage) boolean localConfigDisabled = 16; readonly attribute boolean reachable = 17; readonly attribute char_string<32> uniqueID = 18; readonly attribute CapabilityMinimaStruct capabilityMinima = 19; @@ -557,7 +557,7 @@ client cluster GeneralCommissioning = 48 { INT16U failSafeExpiryLengthSeconds = 0; } - attribute int64u breadcrumb = 0; + attribute access(write: administer) int64u breadcrumb = 0; readonly attribute BasicCommissioningInfo basicCommissioningInfo = 1; readonly attribute RegulatoryLocationType regulatoryConfig = 2; readonly attribute RegulatoryLocationType locationCapability = 3; @@ -591,9 +591,9 @@ client cluster GeneralCommissioning = 48 { CHAR_STRING debugText = 1; } - command ArmFailSafe(ArmFailSafeRequest): ArmFailSafeResponse = 0; - command SetRegulatoryConfig(SetRegulatoryConfigRequest): SetRegulatoryConfigResponse = 2; - command CommissioningComplete(): CommissioningCompleteResponse = 4; + command access(invoke: administer) ArmFailSafe(ArmFailSafeRequest): ArmFailSafeResponse = 0; + command access(invoke: administer) SetRegulatoryConfig(SetRegulatoryConfigRequest): SetRegulatoryConfigResponse = 2; + command access(invoke: administer) CommissioningComplete(): CommissioningCompleteResponse = 4; } server cluster GeneralCommissioning = 48 { @@ -615,7 +615,7 @@ server cluster GeneralCommissioning = 48 { INT16U failSafeExpiryLengthSeconds = 0; } - attribute int64u breadcrumb = 0; + attribute access(write: administer) int64u breadcrumb = 0; readonly attribute BasicCommissioningInfo basicCommissioningInfo = 1; readonly attribute RegulatoryLocationType regulatoryConfig = 2; readonly attribute RegulatoryLocationType locationCapability = 3; @@ -649,9 +649,9 @@ server cluster GeneralCommissioning = 48 { CHAR_STRING debugText = 1; } - command ArmFailSafe(ArmFailSafeRequest): ArmFailSafeResponse = 0; - command SetRegulatoryConfig(SetRegulatoryConfigRequest): SetRegulatoryConfigResponse = 2; - command CommissioningComplete(): CommissioningCompleteResponse = 4; + command access(invoke: administer) ArmFailSafe(ArmFailSafeRequest): ArmFailSafeResponse = 0; + command access(invoke: administer) SetRegulatoryConfig(SetRegulatoryConfigRequest): SetRegulatoryConfigResponse = 2; + command access(invoke: administer) CommissioningComplete(): CommissioningCompleteResponse = 4; } server cluster GeneralDiagnostics = 51 { @@ -764,7 +764,7 @@ server cluster GroupKeyManagement = 63 { fabric_idx fabricIndex = 254; } - attribute GroupKeyMapStruct groupKeyMap[] = 0; + attribute access(write: manage) GroupKeyMapStruct groupKeyMap[] = 0; readonly attribute GroupInfoMapStruct groupTable[] = 1; readonly attribute int16u clusterRevision = 65533; } @@ -910,7 +910,7 @@ server cluster LevelControl = 8 { attribute nullable int16u onTransitionTime = 18; attribute nullable int16u offTransitionTime = 19; attribute nullable int8u defaultMoveRate = 20; - attribute nullable int8u startUpCurrentLevel = 16384; + attribute access(write: manage) nullable int8u startUpCurrentLevel = 16384; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; @@ -1150,14 +1150,14 @@ client cluster NetworkCommissioning = 49 { INT8U lqi = 7; } - readonly attribute int8u maxNetworks = 0; - readonly attribute NetworkInfo networks[] = 1; + readonly attribute access(read: administer) int8u maxNetworks = 0; + readonly attribute access(read: administer) NetworkInfo networks[] = 1; readonly attribute int8u scanMaxTimeSeconds = 2; readonly attribute int8u connectMaxTimeSeconds = 3; - attribute boolean interfaceEnabled = 4; - readonly attribute nullable NetworkCommissioningStatus lastNetworkingStatus = 5; - readonly attribute nullable octet_string<32> lastNetworkID = 6; - readonly attribute nullable int32s lastConnectErrorValue = 7; + attribute access(write: administer) boolean interfaceEnabled = 4; + readonly attribute access(read: administer) nullable NetworkCommissioningStatus lastNetworkingStatus = 5; + readonly attribute access(read: administer) nullable octet_string<32> lastNetworkID = 6; + readonly attribute access(read: administer) nullable int32s lastConnectErrorValue = 7; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; @@ -1212,12 +1212,12 @@ client cluster NetworkCommissioning = 49 { nullable INT32S errorValue = 2; } - command ScanNetworks(ScanNetworksRequest): ScanNetworksResponse = 0; - command AddOrUpdateWiFiNetwork(AddOrUpdateWiFiNetworkRequest): NetworkConfigResponse = 2; - command AddOrUpdateThreadNetwork(AddOrUpdateThreadNetworkRequest): NetworkConfigResponse = 3; - command RemoveNetwork(RemoveNetworkRequest): NetworkConfigResponse = 4; - command ConnectNetwork(ConnectNetworkRequest): ConnectNetworkResponse = 6; - command ReorderNetwork(ReorderNetworkRequest): NetworkConfigResponse = 8; + command access(invoke: administer) ScanNetworks(ScanNetworksRequest): ScanNetworksResponse = 0; + command access(invoke: administer) AddOrUpdateWiFiNetwork(AddOrUpdateWiFiNetworkRequest): NetworkConfigResponse = 2; + command access(invoke: administer) AddOrUpdateThreadNetwork(AddOrUpdateThreadNetworkRequest): NetworkConfigResponse = 3; + command access(invoke: administer) RemoveNetwork(RemoveNetworkRequest): NetworkConfigResponse = 4; + command access(invoke: administer) ConnectNetwork(ConnectNetworkRequest): ConnectNetworkResponse = 6; + command access(invoke: administer) ReorderNetwork(ReorderNetworkRequest): NetworkConfigResponse = 8; } server cluster NetworkCommissioning = 49 { @@ -1284,14 +1284,14 @@ server cluster NetworkCommissioning = 49 { INT8U lqi = 7; } - readonly attribute int8u maxNetworks = 0; - readonly attribute NetworkInfo networks[] = 1; + readonly attribute access(read: administer) int8u maxNetworks = 0; + readonly attribute access(read: administer) NetworkInfo networks[] = 1; readonly attribute int8u scanMaxTimeSeconds = 2; readonly attribute int8u connectMaxTimeSeconds = 3; - attribute boolean interfaceEnabled = 4; - readonly attribute nullable NetworkCommissioningStatus lastNetworkingStatus = 5; - readonly attribute nullable octet_string<32> lastNetworkID = 6; - readonly attribute nullable int32s lastConnectErrorValue = 7; + attribute access(write: administer) boolean interfaceEnabled = 4; + readonly attribute access(read: administer) nullable NetworkCommissioningStatus lastNetworkingStatus = 5; + readonly attribute access(read: administer) nullable octet_string<32> lastNetworkID = 6; + readonly attribute access(read: administer) nullable int32s lastConnectErrorValue = 7; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; @@ -1346,12 +1346,12 @@ server cluster NetworkCommissioning = 49 { nullable INT32S errorValue = 2; } - command ScanNetworks(ScanNetworksRequest): ScanNetworksResponse = 0; - command AddOrUpdateWiFiNetwork(AddOrUpdateWiFiNetworkRequest): NetworkConfigResponse = 2; - command AddOrUpdateThreadNetwork(AddOrUpdateThreadNetworkRequest): NetworkConfigResponse = 3; - command RemoveNetwork(RemoveNetworkRequest): NetworkConfigResponse = 4; - command ConnectNetwork(ConnectNetworkRequest): ConnectNetworkResponse = 6; - command ReorderNetwork(ReorderNetworkRequest): NetworkConfigResponse = 8; + command access(invoke: administer) ScanNetworks(ScanNetworksRequest): ScanNetworksResponse = 0; + command access(invoke: administer) AddOrUpdateWiFiNetwork(AddOrUpdateWiFiNetworkRequest): NetworkConfigResponse = 2; + command access(invoke: administer) AddOrUpdateThreadNetwork(AddOrUpdateThreadNetworkRequest): NetworkConfigResponse = 3; + command access(invoke: administer) RemoveNetwork(RemoveNetworkRequest): NetworkConfigResponse = 4; + command access(invoke: administer) ConnectNetwork(ConnectNetworkRequest): ConnectNetworkResponse = 6; + command access(invoke: administer) ReorderNetwork(ReorderNetworkRequest): NetworkConfigResponse = 8; } server cluster OtaSoftwareUpdateProvider = 41 { @@ -1486,7 +1486,7 @@ client cluster OperationalCredentials = 62 { fabric_idx fabricIndex = 254; } - readonly attribute NOCStruct NOCs[] = 0; + readonly attribute access(read: administer) NOCStruct NOCs[] = 0; readonly attribute FabricDescriptor fabrics[] = 1; readonly attribute int8u supportedFabrics = 2; readonly attribute int8u commissionedFabrics = 3; @@ -1546,13 +1546,13 @@ client cluster OperationalCredentials = 62 { optional CHAR_STRING debugText = 2; } - command AttestationRequest(AttestationRequestRequest): AttestationResponse = 0; - command CertificateChainRequest(CertificateChainRequestRequest): CertificateChainResponse = 2; - command CSRRequest(CSRRequestRequest): CSRResponse = 4; - command AddNOC(AddNOCRequest): NOCResponse = 6; - command UpdateFabricLabel(UpdateFabricLabelRequest): NOCResponse = 9; - command RemoveFabric(RemoveFabricRequest): NOCResponse = 10; - command AddTrustedRootCertificate(AddTrustedRootCertificateRequest): DefaultSuccess = 11; + command access(invoke: administer) AttestationRequest(AttestationRequestRequest): AttestationResponse = 0; + command access(invoke: administer) CertificateChainRequest(CertificateChainRequestRequest): CertificateChainResponse = 2; + command access(invoke: administer) CSRRequest(CSRRequestRequest): CSRResponse = 4; + command access(invoke: administer) AddNOC(AddNOCRequest): NOCResponse = 6; + command access(invoke: administer) UpdateFabricLabel(UpdateFabricLabelRequest): NOCResponse = 9; + command access(invoke: administer) RemoveFabric(RemoveFabricRequest): NOCResponse = 10; + command access(invoke: administer) AddTrustedRootCertificate(AddTrustedRootCertificateRequest): DefaultSuccess = 11; } server cluster OperationalCredentials = 62 { @@ -1584,7 +1584,7 @@ server cluster OperationalCredentials = 62 { fabric_idx fabricIndex = 254; } - readonly attribute NOCStruct NOCs[] = 0; + readonly attribute access(read: administer) NOCStruct NOCs[] = 0; readonly attribute FabricDescriptor fabrics[] = 1; readonly attribute int8u supportedFabrics = 2; readonly attribute int8u commissionedFabrics = 3; @@ -1653,15 +1653,15 @@ server cluster OperationalCredentials = 62 { optional CHAR_STRING debugText = 2; } - command AttestationRequest(AttestationRequestRequest): AttestationResponse = 0; - command CertificateChainRequest(CertificateChainRequestRequest): CertificateChainResponse = 2; - command CSRRequest(CSRRequestRequest): CSRResponse = 4; - command AddNOC(AddNOCRequest): NOCResponse = 6; - command UpdateNOC(UpdateNOCRequest): NOCResponse = 7; - command UpdateFabricLabel(UpdateFabricLabelRequest): NOCResponse = 9; - command RemoveFabric(RemoveFabricRequest): NOCResponse = 10; - command AddTrustedRootCertificate(AddTrustedRootCertificateRequest): DefaultSuccess = 11; - command RemoveTrustedRootCertificate(RemoveTrustedRootCertificateRequest): DefaultSuccess = 12; + command access(invoke: administer) AttestationRequest(AttestationRequestRequest): AttestationResponse = 0; + command access(invoke: administer) CertificateChainRequest(CertificateChainRequestRequest): CertificateChainResponse = 2; + command access(invoke: administer) CSRRequest(CSRRequestRequest): CSRResponse = 4; + command access(invoke: administer) AddNOC(AddNOCRequest): NOCResponse = 6; + command access(invoke: administer) UpdateNOC(UpdateNOCRequest): NOCResponse = 7; + command access(invoke: administer) UpdateFabricLabel(UpdateFabricLabelRequest): NOCResponse = 9; + command access(invoke: administer) RemoveFabric(RemoveFabricRequest): NOCResponse = 10; + command access(invoke: administer) AddTrustedRootCertificate(AddTrustedRootCertificateRequest): DefaultSuccess = 11; + command access(invoke: administer) RemoveTrustedRootCertificate(RemoveTrustedRootCertificateRequest): DefaultSuccess = 12; } server cluster RelativeHumidityMeasurement = 1029 { @@ -1916,7 +1916,7 @@ server cluster UnitLocalization = 45 { } server cluster UserLabel = 65 { - attribute LabelStruct labelList[] = 0; + attribute access(write: manage) LabelStruct labelList[] = 0; readonly attribute int16u clusterRevision = 65533; } diff --git a/examples/tv-casting-app/tv-casting-common/tv-casting-app.matter b/examples/tv-casting-app/tv-casting-common/tv-casting-app.matter index 9adc42ef684303..c225a9391190eb 100644 --- a/examples/tv-casting-app/tv-casting-common/tv-casting-app.matter +++ b/examples/tv-casting-app/tv-casting-common/tv-casting-app.matter @@ -46,7 +46,7 @@ server cluster AccessControl = 31 { fabric_idx fabricIndex = 254; } - info event AccessControlEntryChanged = 0 { + info event access(read: administer) AccessControlEntryChanged = 0 { nullable node_id adminNodeID = 1; nullable INT16U adminPasscodeID = 2; ChangeTypeEnum changeType = 3; @@ -54,7 +54,7 @@ server cluster AccessControl = 31 { fabric_idx adminFabricIndex = 254; } - info event AccessControlExtensionChanged = 1 { + info event access(read: administer) AccessControlExtensionChanged = 1 { nullable node_id adminNodeID = 1; nullable INT16U adminPasscodeID = 2; ChangeTypeEnum changeType = 3; @@ -62,8 +62,8 @@ server cluster AccessControl = 31 { fabric_idx adminFabricIndex = 254; } - attribute AccessControlEntry acl[] = 0; - attribute ExtensionEntry extension[] = 1; + attribute access(read: administer, write: administer) AccessControlEntry acl[] = 0; + attribute access(read: administer, write: administer) ExtensionEntry extension[] = 1; readonly attribute int16u subjectsPerAccessControlEntry = 2; readonly attribute int16u targetsPerAccessControlEntry = 3; readonly attribute int16u accessControlEntriesPerFabric = 4; @@ -118,9 +118,9 @@ server cluster AdministratorCommissioning = 60 { INT16U commissioningTimeout = 0; } - timed command OpenCommissioningWindow(OpenCommissioningWindowRequest): DefaultSuccess = 0; - timed command OpenBasicCommissioningWindow(OpenBasicCommissioningWindowRequest): DefaultSuccess = 1; - timed command RevokeCommissioning(): DefaultSuccess = 2; + timed command access(invoke: administer) OpenCommissioningWindow(OpenCommissioningWindowRequest): DefaultSuccess = 0; + timed command access(invoke: administer) OpenBasicCommissioningWindow(OpenBasicCommissioningWindowRequest): DefaultSuccess = 1; + timed command access(invoke: administer) RevokeCommissioning(): DefaultSuccess = 2; } client cluster ApplicationBasic = 1293 { @@ -253,8 +253,8 @@ server cluster Basic = 40 { readonly attribute vendor_id vendorID = 2; readonly attribute char_string<32> productName = 3; readonly attribute int16u productID = 4; - attribute char_string<32> nodeLabel = 5; - attribute char_string<2> location = 6; + attribute access(write: manage) char_string<32> nodeLabel = 5; + attribute access(write: administer) char_string<2> location = 6; readonly attribute int16u hardwareVersion = 7; readonly attribute char_string<64> hardwareVersionString = 8; readonly attribute int32u softwareVersion = 9; @@ -264,7 +264,7 @@ server cluster Basic = 40 { readonly attribute long_char_string<256> productURL = 13; readonly attribute char_string<64> productLabel = 14; readonly attribute char_string<32> serialNumber = 15; - attribute boolean localConfigDisabled = 16; + attribute access(write: manage) boolean localConfigDisabled = 16; readonly attribute boolean reachable = 17; readonly attribute char_string<32> uniqueID = 18; readonly attribute CapabilityMinimaStruct capabilityMinima = 19; @@ -546,7 +546,7 @@ server cluster GeneralCommissioning = 48 { INT16U failSafeExpiryLengthSeconds = 0; } - attribute int64u breadcrumb = 0; + attribute access(write: administer) int64u breadcrumb = 0; readonly attribute BasicCommissioningInfo basicCommissioningInfo = 1; readonly attribute RegulatoryLocationType regulatoryConfig = 2; readonly attribute RegulatoryLocationType locationCapability = 3; @@ -580,9 +580,9 @@ server cluster GeneralCommissioning = 48 { CHAR_STRING debugText = 1; } - command ArmFailSafe(ArmFailSafeRequest): ArmFailSafeResponse = 0; - command SetRegulatoryConfig(SetRegulatoryConfigRequest): SetRegulatoryConfigResponse = 2; - command CommissioningComplete(): CommissioningCompleteResponse = 4; + command access(invoke: administer) ArmFailSafe(ArmFailSafeRequest): ArmFailSafeResponse = 0; + command access(invoke: administer) SetRegulatoryConfig(SetRegulatoryConfigRequest): SetRegulatoryConfigResponse = 2; + command access(invoke: administer) CommissioningComplete(): CommissioningCompleteResponse = 4; } server cluster GeneralDiagnostics = 51 { @@ -695,7 +695,7 @@ server cluster GroupKeyManagement = 63 { fabric_idx fabricIndex = 254; } - attribute GroupKeyMapStruct groupKeyMap[] = 0; + attribute access(write: manage) GroupKeyMapStruct groupKeyMap[] = 0; readonly attribute GroupInfoMapStruct groupTable[] = 1; readonly attribute int16u clusterRevision = 65533; } @@ -747,12 +747,12 @@ server cluster Groups = 4 { group_id groupId = 1; } - command AddGroup(AddGroupRequest): AddGroupResponse = 0; + command access(invoke: manage) AddGroup(AddGroupRequest): AddGroupResponse = 0; command ViewGroup(ViewGroupRequest): ViewGroupResponse = 1; command GetGroupMembership(GetGroupMembershipRequest): GetGroupMembershipResponse = 2; - command RemoveGroup(RemoveGroupRequest): RemoveGroupResponse = 3; - command RemoveAllGroups(): DefaultSuccess = 4; - command AddGroupIfIdentifying(AddGroupIfIdentifyingRequest): DefaultSuccess = 5; + command access(invoke: manage) RemoveGroup(RemoveGroupRequest): RemoveGroupResponse = 3; + command access(invoke: manage) RemoveAllGroups(): DefaultSuccess = 4; + command access(invoke: manage) AddGroupIfIdentifying(AddGroupIfIdentifyingRequest): DefaultSuccess = 5; } server cluster IasZone = 1280 { @@ -856,8 +856,8 @@ server cluster Identify = 3 { INT16U timeout = 0; } - command Identify(IdentifyRequest): DefaultSuccess = 0; - command IdentifyQuery(): IdentifyQueryResponse = 1; + command access(invoke: manage) Identify(IdentifyRequest): DefaultSuccess = 0; + command access(invoke: manage) IdentifyQuery(): IdentifyQueryResponse = 1; } client cluster KeypadInput = 1289 { @@ -1001,7 +1001,7 @@ client cluster LevelControl = 8 { attribute nullable int16u onTransitionTime = 18; attribute nullable int16u offTransitionTime = 19; attribute nullable int8u defaultMoveRate = 20; - attribute nullable int8u startUpCurrentLevel = 16384; + attribute access(write: manage) nullable int8u startUpCurrentLevel = 16384; readonly attribute int16u clusterRevision = 65533; request struct MoveToLevelRequest { @@ -1087,7 +1087,7 @@ server cluster LevelControl = 8 { attribute nullable int16u onTransitionTime = 18; attribute nullable int16u offTransitionTime = 19; attribute nullable int8u defaultMoveRate = 20; - attribute nullable int8u startUpCurrentLevel = 16384; + attribute access(write: manage) nullable int8u startUpCurrentLevel = 16384; readonly attribute int16u clusterRevision = 65533; request struct MoveToLevelRequest { @@ -1302,14 +1302,14 @@ server cluster NetworkCommissioning = 49 { INT8U lqi = 7; } - readonly attribute int8u maxNetworks = 0; - readonly attribute NetworkInfo networks[] = 1; + readonly attribute access(read: administer) int8u maxNetworks = 0; + readonly attribute access(read: administer) NetworkInfo networks[] = 1; readonly attribute int8u scanMaxTimeSeconds = 2; readonly attribute int8u connectMaxTimeSeconds = 3; - attribute boolean interfaceEnabled = 4; - readonly attribute nullable NetworkCommissioningStatus lastNetworkingStatus = 5; - readonly attribute nullable octet_string<32> lastNetworkID = 6; - readonly attribute nullable int32s lastConnectErrorValue = 7; + attribute access(write: administer) boolean interfaceEnabled = 4; + readonly attribute access(read: administer) nullable NetworkCommissioningStatus lastNetworkingStatus = 5; + readonly attribute access(read: administer) nullable octet_string<32> lastNetworkID = 6; + readonly attribute access(read: administer) nullable int32s lastConnectErrorValue = 7; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; @@ -1364,12 +1364,12 @@ server cluster NetworkCommissioning = 49 { nullable INT32S errorValue = 2; } - command ScanNetworks(ScanNetworksRequest): ScanNetworksResponse = 0; - command AddOrUpdateWiFiNetwork(AddOrUpdateWiFiNetworkRequest): NetworkConfigResponse = 2; - command AddOrUpdateThreadNetwork(AddOrUpdateThreadNetworkRequest): NetworkConfigResponse = 3; - command RemoveNetwork(RemoveNetworkRequest): NetworkConfigResponse = 4; - command ConnectNetwork(ConnectNetworkRequest): ConnectNetworkResponse = 6; - command ReorderNetwork(ReorderNetworkRequest): NetworkConfigResponse = 8; + command access(invoke: administer) ScanNetworks(ScanNetworksRequest): ScanNetworksResponse = 0; + command access(invoke: administer) AddOrUpdateWiFiNetwork(AddOrUpdateWiFiNetworkRequest): NetworkConfigResponse = 2; + command access(invoke: administer) AddOrUpdateThreadNetwork(AddOrUpdateThreadNetworkRequest): NetworkConfigResponse = 3; + command access(invoke: administer) RemoveNetwork(RemoveNetworkRequest): NetworkConfigResponse = 4; + command access(invoke: administer) ConnectNetwork(ConnectNetworkRequest): ConnectNetworkResponse = 6; + command access(invoke: administer) ReorderNetwork(ReorderNetworkRequest): NetworkConfigResponse = 8; } server cluster OtaSoftwareUpdateProvider = 41 { @@ -1471,7 +1471,7 @@ client cluster OnOff = 6 { readonly attribute boolean globalSceneControl = 16384; attribute int16u onTime = 16385; attribute int16u offWaitTime = 16386; - attribute nullable OnOffStartUpOnOff startUpOnOff = 16387; + attribute access(write: manage) nullable OnOffStartUpOnOff startUpOnOff = 16387; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; @@ -1514,7 +1514,7 @@ server cluster OnOff = 6 { readonly attribute boolean globalSceneControl = 16384; attribute int16u onTime = 16385; attribute int16u offWaitTime = 16386; - attribute nullable OnOffStartUpOnOff startUpOnOff = 16387; + attribute access(write: manage) nullable OnOffStartUpOnOff startUpOnOff = 16387; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; @@ -1552,7 +1552,7 @@ server cluster OperationalCredentials = 62 { fabric_idx fabricIndex = 254; } - readonly attribute NOCStruct NOCs[] = 0; + readonly attribute access(read: administer) NOCStruct NOCs[] = 0; readonly attribute FabricDescriptor fabrics[] = 1; readonly attribute int8u supportedFabrics = 2; readonly attribute int8u commissionedFabrics = 3; @@ -1621,15 +1621,15 @@ server cluster OperationalCredentials = 62 { optional CHAR_STRING debugText = 2; } - command AttestationRequest(AttestationRequestRequest): AttestationResponse = 0; - command CertificateChainRequest(CertificateChainRequestRequest): CertificateChainResponse = 2; - command CSRRequest(CSRRequestRequest): CSRResponse = 4; - command AddNOC(AddNOCRequest): NOCResponse = 6; - command UpdateNOC(UpdateNOCRequest): NOCResponse = 7; - command UpdateFabricLabel(UpdateFabricLabelRequest): NOCResponse = 9; - command RemoveFabric(RemoveFabricRequest): NOCResponse = 10; - command AddTrustedRootCertificate(AddTrustedRootCertificateRequest): DefaultSuccess = 11; - command RemoveTrustedRootCertificate(RemoveTrustedRootCertificateRequest): DefaultSuccess = 12; + command access(invoke: administer) AttestationRequest(AttestationRequestRequest): AttestationResponse = 0; + command access(invoke: administer) CertificateChainRequest(CertificateChainRequestRequest): CertificateChainResponse = 2; + command access(invoke: administer) CSRRequest(CSRRequestRequest): CSRResponse = 4; + command access(invoke: administer) AddNOC(AddNOCRequest): NOCResponse = 6; + command access(invoke: administer) UpdateNOC(UpdateNOCRequest): NOCResponse = 7; + command access(invoke: administer) UpdateFabricLabel(UpdateFabricLabelRequest): NOCResponse = 9; + command access(invoke: administer) RemoveFabric(RemoveFabricRequest): NOCResponse = 10; + command access(invoke: administer) AddTrustedRootCertificate(AddTrustedRootCertificateRequest): DefaultSuccess = 11; + command access(invoke: administer) RemoveTrustedRootCertificate(RemoveTrustedRootCertificateRequest): DefaultSuccess = 12; } server cluster Scenes = 5 { @@ -1727,11 +1727,11 @@ server cluster Scenes = 5 { INT8U sceneList[] = 4; } - command AddScene(AddSceneRequest): AddSceneResponse = 0; + command access(invoke: manage) AddScene(AddSceneRequest): AddSceneResponse = 0; command ViewScene(ViewSceneRequest): ViewSceneResponse = 1; - command RemoveScene(RemoveSceneRequest): RemoveSceneResponse = 2; - command RemoveAllScenes(RemoveAllScenesRequest): RemoveAllScenesResponse = 3; - command StoreScene(StoreSceneRequest): StoreSceneResponse = 4; + command access(invoke: manage) RemoveScene(RemoveSceneRequest): RemoveSceneResponse = 2; + command access(invoke: manage) RemoveAllScenes(RemoveAllScenesRequest): RemoveAllScenesResponse = 3; + command access(invoke: manage) StoreScene(StoreSceneRequest): StoreSceneResponse = 4; command RecallScene(RecallSceneRequest): DefaultSuccess = 5; command GetSceneMembership(GetSceneMembershipRequest): GetSceneMembershipResponse = 6; } @@ -2101,7 +2101,7 @@ server cluster UnitLocalization = 45 { } server cluster UserLabel = 65 { - attribute LabelStruct labelList[] = 0; + attribute access(write: manage) LabelStruct labelList[] = 0; readonly attribute int16u clusterRevision = 65533; } diff --git a/examples/window-app/common/window-app.matter b/examples/window-app/common/window-app.matter index a8ddb88f90c81e..6b7f2ca07d1bcc 100644 --- a/examples/window-app/common/window-app.matter +++ b/examples/window-app/common/window-app.matter @@ -46,7 +46,7 @@ server cluster AccessControl = 31 { fabric_idx fabricIndex = 254; } - info event AccessControlEntryChanged = 0 { + info event access(read: administer) AccessControlEntryChanged = 0 { nullable node_id adminNodeID = 1; nullable INT16U adminPasscodeID = 2; ChangeTypeEnum changeType = 3; @@ -54,7 +54,7 @@ server cluster AccessControl = 31 { fabric_idx adminFabricIndex = 254; } - info event AccessControlExtensionChanged = 1 { + info event access(read: administer) AccessControlExtensionChanged = 1 { nullable node_id adminNodeID = 1; nullable INT16U adminPasscodeID = 2; ChangeTypeEnum changeType = 3; @@ -62,8 +62,8 @@ server cluster AccessControl = 31 { fabric_idx adminFabricIndex = 254; } - attribute AccessControlEntry acl[] = 0; - attribute ExtensionEntry extension[] = 1; + attribute access(read: administer, write: administer) AccessControlEntry acl[] = 0; + attribute access(read: administer, write: administer) ExtensionEntry extension[] = 1; readonly attribute int16u subjectsPerAccessControlEntry = 2; readonly attribute int16u targetsPerAccessControlEntry = 3; readonly attribute int16u accessControlEntriesPerFabric = 4; @@ -106,9 +106,9 @@ server cluster AdministratorCommissioning = 60 { INT16U commissioningTimeout = 0; } - timed command OpenCommissioningWindow(OpenCommissioningWindowRequest): DefaultSuccess = 0; - timed command OpenBasicCommissioningWindow(OpenBasicCommissioningWindowRequest): DefaultSuccess = 1; - timed command RevokeCommissioning(): DefaultSuccess = 2; + timed command access(invoke: administer) OpenCommissioningWindow(OpenCommissioningWindowRequest): DefaultSuccess = 0; + timed command access(invoke: administer) OpenBasicCommissioningWindow(OpenBasicCommissioningWindowRequest): DefaultSuccess = 1; + timed command access(invoke: administer) RevokeCommissioning(): DefaultSuccess = 2; } server cluster Basic = 40 { @@ -136,8 +136,8 @@ server cluster Basic = 40 { readonly attribute vendor_id vendorID = 2; readonly attribute char_string<32> productName = 3; readonly attribute int16u productID = 4; - attribute char_string<32> nodeLabel = 5; - attribute char_string<2> location = 6; + attribute access(write: manage) char_string<32> nodeLabel = 5; + attribute access(write: administer) char_string<2> location = 6; readonly attribute int16u hardwareVersion = 7; readonly attribute char_string<64> hardwareVersionString = 8; readonly attribute int32u softwareVersion = 9; @@ -147,7 +147,7 @@ server cluster Basic = 40 { readonly attribute long_char_string<256> productURL = 13; readonly attribute char_string<64> productLabel = 14; readonly attribute char_string<32> serialNumber = 15; - attribute boolean localConfigDisabled = 16; + attribute access(write: manage) boolean localConfigDisabled = 16; readonly attribute boolean reachable = 17; readonly attribute char_string<32> uniqueID = 18; readonly attribute CapabilityMinimaStruct capabilityMinima = 19; @@ -224,7 +224,7 @@ server cluster GeneralCommissioning = 48 { INT16U failSafeExpiryLengthSeconds = 0; } - attribute int64u breadcrumb = 0; + attribute access(write: administer) int64u breadcrumb = 0; readonly attribute BasicCommissioningInfo basicCommissioningInfo = 1; readonly attribute RegulatoryLocationType regulatoryConfig = 2; readonly attribute RegulatoryLocationType locationCapability = 3; @@ -260,9 +260,9 @@ server cluster GeneralCommissioning = 48 { CHAR_STRING debugText = 1; } - command ArmFailSafe(ArmFailSafeRequest): ArmFailSafeResponse = 0; - command SetRegulatoryConfig(SetRegulatoryConfigRequest): SetRegulatoryConfigResponse = 2; - command CommissioningComplete(): CommissioningCompleteResponse = 4; + command access(invoke: administer) ArmFailSafe(ArmFailSafeRequest): ArmFailSafeResponse = 0; + command access(invoke: administer) SetRegulatoryConfig(SetRegulatoryConfigRequest): SetRegulatoryConfigResponse = 2; + command access(invoke: administer) CommissioningComplete(): CommissioningCompleteResponse = 4; } server cluster GeneralDiagnostics = 51 { @@ -389,7 +389,7 @@ server cluster GroupKeyManagement = 63 { nullable epoch_us epochStartTime2 = 7; } - attribute GroupKeyMapStruct groupKeyMap[] = 0; + attribute access(write: manage) GroupKeyMapStruct groupKeyMap[] = 0; readonly attribute GroupInfoMapStruct groupTable[] = 1; readonly attribute int16u maxGroupsPerFabric = 2; readonly attribute int16u maxGroupKeysPerFabric = 3; @@ -422,10 +422,10 @@ server cluster GroupKeyManagement = 63 { INT16U groupKeySetIDs[] = 0; } - command KeySetWrite(KeySetWriteRequest): DefaultSuccess = 0; - command KeySetRead(KeySetReadRequest): KeySetReadResponse = 1; - command KeySetRemove(KeySetRemoveRequest): DefaultSuccess = 3; - command KeySetReadAllIndices(KeySetReadAllIndicesRequest): KeySetReadAllIndicesResponse = 4; + command access(invoke: administer) KeySetWrite(KeySetWriteRequest): DefaultSuccess = 0; + command access(invoke: administer) KeySetRead(KeySetReadRequest): KeySetReadResponse = 1; + command access(invoke: administer) KeySetRemove(KeySetRemoveRequest): DefaultSuccess = 3; + command access(invoke: administer) KeySetReadAllIndices(KeySetReadAllIndicesRequest): KeySetReadAllIndicesResponse = 4; } server cluster Identify = 3 { @@ -468,9 +468,9 @@ server cluster Identify = 3 { INT16U timeout = 0; } - command Identify(IdentifyRequest): DefaultSuccess = 0; - command IdentifyQuery(): IdentifyQueryResponse = 1; - command TriggerEffect(TriggerEffectRequest): DefaultSuccess = 64; + command access(invoke: manage) Identify(IdentifyRequest): DefaultSuccess = 0; + command access(invoke: manage) IdentifyQuery(): IdentifyQueryResponse = 1; + command access(invoke: manage) TriggerEffect(TriggerEffectRequest): DefaultSuccess = 64; } server cluster LocalizationConfiguration = 43 { @@ -546,14 +546,14 @@ server cluster NetworkCommissioning = 49 { INT8U lqi = 7; } - readonly attribute int8u maxNetworks = 0; - readonly attribute NetworkInfo networks[] = 1; + readonly attribute access(read: administer) int8u maxNetworks = 0; + readonly attribute access(read: administer) NetworkInfo networks[] = 1; readonly attribute int8u scanMaxTimeSeconds = 2; readonly attribute int8u connectMaxTimeSeconds = 3; - attribute boolean interfaceEnabled = 4; - readonly attribute nullable NetworkCommissioningStatus lastNetworkingStatus = 5; - readonly attribute nullable octet_string<32> lastNetworkID = 6; - readonly attribute nullable int32s lastConnectErrorValue = 7; + attribute access(write: administer) boolean interfaceEnabled = 4; + readonly attribute access(read: administer) nullable NetworkCommissioningStatus lastNetworkingStatus = 5; + readonly attribute access(read: administer) nullable octet_string<32> lastNetworkID = 6; + readonly attribute access(read: administer) nullable int32s lastConnectErrorValue = 7; readonly attribute command_id generatedCommandList[] = 65528; readonly attribute command_id acceptedCommandList[] = 65529; readonly attribute attrib_id attributeList[] = 65531; @@ -611,12 +611,12 @@ server cluster NetworkCommissioning = 49 { nullable INT32S errorValue = 2; } - command ScanNetworks(ScanNetworksRequest): ScanNetworksResponse = 0; - command AddOrUpdateWiFiNetwork(AddOrUpdateWiFiNetworkRequest): NetworkConfigResponse = 2; - command AddOrUpdateThreadNetwork(AddOrUpdateThreadNetworkRequest): NetworkConfigResponse = 3; - command RemoveNetwork(RemoveNetworkRequest): NetworkConfigResponse = 4; - command ConnectNetwork(ConnectNetworkRequest): ConnectNetworkResponse = 6; - command ReorderNetwork(ReorderNetworkRequest): NetworkConfigResponse = 8; + command access(invoke: administer) ScanNetworks(ScanNetworksRequest): ScanNetworksResponse = 0; + command access(invoke: administer) AddOrUpdateWiFiNetwork(AddOrUpdateWiFiNetworkRequest): NetworkConfigResponse = 2; + command access(invoke: administer) AddOrUpdateThreadNetwork(AddOrUpdateThreadNetworkRequest): NetworkConfigResponse = 3; + command access(invoke: administer) RemoveNetwork(RemoveNetworkRequest): NetworkConfigResponse = 4; + command access(invoke: administer) ConnectNetwork(ConnectNetworkRequest): ConnectNetworkResponse = 6; + command access(invoke: administer) ReorderNetwork(ReorderNetworkRequest): NetworkConfigResponse = 8; } client cluster OtaSoftwareUpdateProvider = 41 { @@ -782,7 +782,7 @@ server cluster OperationalCredentials = 62 { fabric_idx fabricIndex = 254; } - readonly attribute NOCStruct NOCs[] = 0; + readonly attribute access(read: administer) NOCStruct NOCs[] = 0; readonly attribute FabricDescriptor fabrics[] = 1; readonly attribute int8u supportedFabrics = 2; readonly attribute int8u commissionedFabrics = 3; @@ -854,15 +854,15 @@ server cluster OperationalCredentials = 62 { optional CHAR_STRING debugText = 2; } - command AttestationRequest(AttestationRequestRequest): AttestationResponse = 0; - command CertificateChainRequest(CertificateChainRequestRequest): CertificateChainResponse = 2; - command CSRRequest(CSRRequestRequest): CSRResponse = 4; - command AddNOC(AddNOCRequest): NOCResponse = 6; - command UpdateNOC(UpdateNOCRequest): NOCResponse = 7; - command UpdateFabricLabel(UpdateFabricLabelRequest): NOCResponse = 9; - command RemoveFabric(RemoveFabricRequest): NOCResponse = 10; - command AddTrustedRootCertificate(AddTrustedRootCertificateRequest): DefaultSuccess = 11; - command RemoveTrustedRootCertificate(RemoveTrustedRootCertificateRequest): DefaultSuccess = 12; + command access(invoke: administer) AttestationRequest(AttestationRequestRequest): AttestationResponse = 0; + command access(invoke: administer) CertificateChainRequest(CertificateChainRequestRequest): CertificateChainResponse = 2; + command access(invoke: administer) CSRRequest(CSRRequestRequest): CSRResponse = 4; + command access(invoke: administer) AddNOC(AddNOCRequest): NOCResponse = 6; + command access(invoke: administer) UpdateNOC(UpdateNOCRequest): NOCResponse = 7; + command access(invoke: administer) UpdateFabricLabel(UpdateFabricLabelRequest): NOCResponse = 9; + command access(invoke: administer) RemoveFabric(RemoveFabricRequest): NOCResponse = 10; + command access(invoke: administer) AddTrustedRootCertificate(AddTrustedRootCertificateRequest): DefaultSuccess = 11; + command access(invoke: administer) RemoveTrustedRootCertificate(RemoveTrustedRootCertificateRequest): DefaultSuccess = 12; } server cluster PowerSource = 47 { @@ -1169,7 +1169,7 @@ server cluster UnitLocalization = 45 { } server cluster UserLabel = 65 { - attribute LabelStruct labelList[] = 0; + attribute access(write: manage) LabelStruct labelList[] = 0; readonly attribute int16u clusterRevision = 65533; } @@ -1339,7 +1339,7 @@ server cluster WindowCovering = 258 { readonly attribute int16u installedClosedLimitLift = 17; readonly attribute int16u installedOpenLimitTilt = 18; readonly attribute int16u installedClosedLimitTilt = 19; - attribute bitmap8 mode = 23; + attribute access(write: manage) bitmap8 mode = 23; readonly attribute bitmap16 safetyStatus = 26; readonly attribute bitmap32 featureMap = 65532; readonly attribute int16u clusterRevision = 65533; diff --git a/src/app/zap-templates/partials/idl/command_request_response.zapt b/src/app/zap-templates/partials/idl/command_request_response.zapt index 507e3e621dc6d7..d2b3b425f08032 100644 --- a/src/app/zap-templates/partials/idl/command_request_response.zapt +++ b/src/app/zap-templates/partials/idl/command_request_response.zapt @@ -1,17 +1,22 @@ {{#first}} {{/first}} -{{#if mustUseTimedInvoke}} - {{~indent 1~}}timed command -{{~else}} - {{~indent 1~}}command -{{~/if}} {{asUpperCamelCase commandName}}( -{{~#zcl_command_arguments~}} - {{~#first~}} - {{asUpperCamelCase parent.commandName}}Request - {{~/first~}} -{{~/zcl_command_arguments~}} -): {{#if responseName~}} + {{~indent 1~}} + {{#if mustUseTimedInvoke~}} timed {{/if~}} + command {{!ensure space}} + {{~#chip_access_elements entity="command"~}} + {{~#first~}} access( {{~/first~}} + {{~#not_first~}}, {{/not_first~}} + {{operation}}: {{role}} + {{~#last}}) {{/last~}} + {{~/chip_access_elements~}} + {{asUpperCamelCase commandName}}( + {{~#zcl_command_arguments~}} + {{~#first~}} + {{asUpperCamelCase parent.commandName}}Request + {{~/first~}} + {{~/zcl_command_arguments~}} + ): {{#if responseName~}} {{responseName}} {{~else~}} DefaultSuccess diff --git a/src/app/zap-templates/templates/app/MatterIDL.zapt b/src/app/zap-templates/templates/app/MatterIDL.zapt index 02e842efe67e97..b9876f34fc480f 100644 --- a/src/app/zap-templates/templates/app/MatterIDL.zapt +++ b/src/app/zap-templates/templates/app/MatterIDL.zapt @@ -30,7 +30,14 @@ {{/chip_cluster_specific_structs}} {{#zcl_events}} - {{priority}} event {{asUpperCamelCase name}} = {{code}} { + {{priority}} event {{!ensure space}} + {{~#chip_access_elements entity="event"~}} + {{~#first~}}access({{~/first~}} + {{~#not_first~}}, {{/not_first~}} + {{operation}}: {{role}} + {{~#last}}) {{/last~}} + {{~/chip_access_elements~}} + {{asUpperCamelCase name}} = {{code}} { {{#zcl_event_fields}} {{>idl_structure_member label=name}} @@ -47,6 +54,12 @@ nosubscribe {{!marker to place a space even with whitespace removal~}} {{~/unless~}} {{~!Removes spaces~}} attribute {{!ensure space}} + {{~#chip_access_elements entity="attribute"~}} + {{~#first~}}access({{~/first~}} + {{~#not_first~}}, {{/not_first~}} + {{operation}}: {{role}} + {{~#last}}) {{/last~}} + {{~/chip_access_elements~}} {{~#if isNullable~}} nullable {{!marker to place a space even with whitespace removal~}} {{~/if~}} {{type}} diff --git a/src/app/zap-templates/templates/chip/helper.js b/src/app/zap-templates/templates/chip/helper.js index e20f38951ecf3a..86753aacf861e4 100644 --- a/src/app/zap-templates/templates/chip/helper.js +++ b/src/app/zap-templates/templates/chip/helper.js @@ -20,6 +20,7 @@ const zapPath = '../../../../../third_party/zap/repo/dist/src-electron/'; const templateUtil = require(zapPath + 'generator/template-util.js'); const zclHelper = require(zapPath + 'generator/helper-zcl.js'); const iteratorUtil = require(zapPath + 'util/iterator-util.js'); +const queryAccess = require(zapPath + 'db/query-access') const { asBlocks, ensureClusters } = require('../../common/ClustersHelper.js'); const StringHelper = require('../../common/StringHelper.js'); @@ -492,6 +493,73 @@ async function if_chip_complex(options) return templateUtil.templatePromise(this.global, result); } +async function chip_access_elements(options) +{ + + // console.log(options); + let entityType = options.hash.entity + + if (entityType == null) + { + throw new Error('Access helper requires entityType, either from context, or from the entity="" option.') + } + + let accessList = null + + // Exaples of operations: + // { operation: null, role: null, accessModifier: 'fabric-scoped' }, + // { operation: 'read', role: 'administer', accessModifier: null }, + // { operation: 'write', role: 'administer', accessModifier: null } + // + // Note the existence of a null operation with a modifier of fabric-scoped + + // accessDefaults contains acceptable operations + // together with their default value + let accessDefaults = new Map(); + + switch (entityType) { + case 'attribute': + accessList = await queryAccess.selectAttributeAccess(this.global.db, this.id); + accessDefaults.set('read', 'view'); + accessDefaults.set('write', 'operate'); + break; + case 'command': + accessList = await queryAccess.selectCommandAccess(this.global.db, this.id); + accessDefaults.set('invoke', 'operate'); + break; + case 'event': + accessList = await queryAccess.selectEventAccess(this.global.db, this.id); + accessDefaults.set('read', 'view'); + break; + default: + throw new Error(`Entity type ${entityType} not supported. Requires: attribute/command/event.`) + } + + let accessEntries = []; + + for (element of accessList) { + if (!element.operation) { + continue; // not a valid operation (likely null) + } + + const operation = element.operation.toLowerCase(); + if (!accessDefaults.has(operation)) { + continue; // not a valid operation (may be a bug or non-matter operation) + } + + const role = element.role.toLowerCase(); + + if (role === accessDefaults.get(operation)) { + continue; // already set as a default + } + + accessEntries.push({ operation, role }) + } + + let p = templateUtil.collectBlocks(accessEntries, options, this) + return templateUtil.templatePromise(this.global, p) +} + // // Module exports // @@ -520,3 +588,4 @@ exports.if_chip_complex = if_chip_complex; exports.if_basic_global_response = if_basic_global_response; exports.chip_cluster_specific_structs = chip_cluster_specific_structs; exports.chip_shared_structs = chip_shared_structs; +exports.chip_access_elements = chip_access_elements diff --git a/src/controller/data_model/controller-clusters.matter b/src/controller/data_model/controller-clusters.matter index bf26ddf6c547bb..cce906dde2ff29 100644 --- a/src/controller/data_model/controller-clusters.matter +++ b/src/controller/data_model/controller-clusters.matter @@ -46,7 +46,7 @@ client cluster AccessControl = 31 { fabric_idx fabricIndex = 254; } - info event AccessControlEntryChanged = 0 { + info event access(read: administer) AccessControlEntryChanged = 0 { nullable node_id adminNodeID = 1; nullable INT16U adminPasscodeID = 2; ChangeTypeEnum changeType = 3; @@ -54,7 +54,7 @@ client cluster AccessControl = 31 { fabric_idx adminFabricIndex = 254; } - info event AccessControlExtensionChanged = 1 { + info event access(read: administer) AccessControlExtensionChanged = 1 { nullable node_id adminNodeID = 1; nullable INT16U adminPasscodeID = 2; ChangeTypeEnum changeType = 3; @@ -62,8 +62,8 @@ client cluster AccessControl = 31 { fabric_idx adminFabricIndex = 254; } - attribute AccessControlEntry acl[] = 0; - attribute ExtensionEntry extension[] = 1; + attribute access(read: administer, write: administer) AccessControlEntry acl[] = 0; + attribute access(read: administer, write: administer) ExtensionEntry extension[] = 1; readonly attribute int16u subjectsPerAccessControlEntry = 2; readonly attribute int16u targetsPerAccessControlEntry = 3; readonly attribute int16u accessControlEntriesPerFabric = 4; @@ -130,9 +130,9 @@ client cluster AdministratorCommissioning = 60 { INT16U commissioningTimeout = 0; } - timed command OpenCommissioningWindow(OpenCommissioningWindowRequest): DefaultSuccess = 0; - timed command OpenBasicCommissioningWindow(OpenBasicCommissioningWindowRequest): DefaultSuccess = 1; - timed command RevokeCommissioning(): DefaultSuccess = 2; + timed command access(invoke: administer) OpenCommissioningWindow(OpenCommissioningWindowRequest): DefaultSuccess = 0; + timed command access(invoke: administer) OpenBasicCommissioningWindow(OpenBasicCommissioningWindowRequest): DefaultSuccess = 1; + timed command access(invoke: administer) RevokeCommissioning(): DefaultSuccess = 2; } client cluster ApplicationBasic = 1293 { @@ -296,8 +296,8 @@ client cluster Basic = 40 { readonly attribute vendor_id vendorID = 2; readonly attribute char_string<32> productName = 3; readonly attribute int16u productID = 4; - attribute char_string<32> nodeLabel = 5; - attribute char_string<2> location = 6; + attribute access(write: manage) char_string<32> nodeLabel = 5; + attribute access(write: administer) char_string<2> location = 6; readonly attribute int16u hardwareVersion = 7; readonly attribute char_string<64> hardwareVersionString = 8; readonly attribute int32u softwareVersion = 9; @@ -307,7 +307,7 @@ client cluster Basic = 40 { readonly attribute long_char_string<256> productURL = 13; readonly attribute char_string<64> productLabel = 14; readonly attribute char_string<32> serialNumber = 15; - attribute boolean localConfigDisabled = 16; + attribute access(write: manage) boolean localConfigDisabled = 16; readonly attribute boolean reachable = 17; readonly attribute char_string<32> uniqueID = 18; readonly attribute CapabilityMinimaStruct capabilityMinima = 19; @@ -712,17 +712,17 @@ client cluster ColorControl = 768 { readonly attribute int16u primary6X = 40; readonly attribute int16u primary6Y = 41; readonly attribute int8u primary6Intensity = 42; - attribute int16u whitePointX = 48; - attribute int16u whitePointY = 49; - attribute int16u colorPointRX = 50; - attribute int16u colorPointRY = 51; - attribute int8u colorPointRIntensity = 52; - attribute int16u colorPointGX = 54; - attribute int16u colorPointGY = 55; - attribute int8u colorPointGIntensity = 56; - attribute int16u colorPointBX = 58; - attribute int16u colorPointBY = 59; - attribute int8u colorPointBIntensity = 60; + attribute access(write: manage) int16u whitePointX = 48; + attribute access(write: manage) int16u whitePointY = 49; + attribute access(write: manage) int16u colorPointRX = 50; + attribute access(write: manage) int16u colorPointRY = 51; + attribute access(write: manage) int8u colorPointRIntensity = 52; + attribute access(write: manage) int16u colorPointGX = 54; + attribute access(write: manage) int16u colorPointGY = 55; + attribute access(write: manage) int8u colorPointGIntensity = 56; + attribute access(write: manage) int16u colorPointBX = 58; + attribute access(write: manage) int16u colorPointBY = 59; + attribute access(write: manage) int8u colorPointBIntensity = 60; readonly attribute int16u enhancedCurrentHue = 16384; readonly attribute enum8 enhancedColorMode = 16385; readonly attribute int8u colorLoopActive = 16386; @@ -734,7 +734,7 @@ client cluster ColorControl = 768 { readonly attribute int16u colorTempPhysicalMin = 16395; readonly attribute int16u colorTempPhysicalMax = 16396; readonly attribute int16u coupleColorTempToLevelMinMireds = 16397; - attribute int16u startUpColorTemperatureMireds = 16400; + attribute access(write: manage) int16u startUpColorTemperatureMireds = 16400; readonly attribute command_id generatedCommandList[] = 65528; readonly attribute command_id acceptedCommandList[] = 65529; readonly attribute attrib_id attributeList[] = 65531; @@ -1459,14 +1459,14 @@ client cluster DoorLock = 257 { readonly attribute int8u minPINCodeLength = 24; readonly attribute int8u maxRFIDCodeLength = 25; readonly attribute int8u minRFIDCodeLength = 26; - attribute char_string<3> language = 33; - attribute int32u autoRelockTime = 35; - attribute int8u soundVolume = 36; - attribute DlOperatingMode operatingMode = 37; + attribute access(write: manage) char_string<3> language = 33; + attribute access(write: manage) int32u autoRelockTime = 35; + attribute access(write: manage) int8u soundVolume = 36; + attribute access(write: manage) DlOperatingMode operatingMode = 37; readonly attribute DlSupportedOperatingModes supportedOperatingModes = 38; - attribute boolean enableOneTouchLocking = 41; - attribute boolean enablePrivacyModeButton = 43; - attribute int8u wrongCodeEntryLimit = 48; + attribute access(write: manage) boolean enableOneTouchLocking = 41; + attribute access(write: manage) boolean enablePrivacyModeButton = 43; + attribute access(write: administer) int8u wrongCodeEntryLimit = 48; readonly attribute command_id generatedCommandList[] = 65528; readonly attribute command_id acceptedCommandList[] = 65529; readonly attribute attrib_id attributeList[] = 65531; @@ -1632,21 +1632,21 @@ client cluster DoorLock = 257 { timed command LockDoor(LockDoorRequest): DefaultSuccess = 0; timed command UnlockDoor(UnlockDoorRequest): DefaultSuccess = 1; timed command UnlockWithTimeout(UnlockWithTimeoutRequest): DefaultSuccess = 3; - command SetWeekDaySchedule(SetWeekDayScheduleRequest): DefaultSuccess = 11; - command GetWeekDaySchedule(GetWeekDayScheduleRequest): GetWeekDayScheduleResponse = 12; - command ClearWeekDaySchedule(ClearWeekDayScheduleRequest): DefaultSuccess = 13; - command SetYearDaySchedule(SetYearDayScheduleRequest): DefaultSuccess = 14; - command GetYearDaySchedule(GetYearDayScheduleRequest): GetYearDayScheduleResponse = 15; - command ClearYearDaySchedule(ClearYearDayScheduleRequest): DefaultSuccess = 16; - command SetHolidaySchedule(SetHolidayScheduleRequest): DefaultSuccess = 17; - command GetHolidaySchedule(GetHolidayScheduleRequest): GetHolidayScheduleResponse = 18; - command ClearHolidaySchedule(ClearHolidayScheduleRequest): DefaultSuccess = 19; - timed command SetUser(SetUserRequest): DefaultSuccess = 26; - command GetUser(GetUserRequest): GetUserResponse = 27; - timed command ClearUser(ClearUserRequest): DefaultSuccess = 29; - timed command SetCredential(SetCredentialRequest): SetCredentialResponse = 34; - command GetCredentialStatus(GetCredentialStatusRequest): GetCredentialStatusResponse = 36; - timed command ClearCredential(ClearCredentialRequest): DefaultSuccess = 38; + command access(invoke: administer) SetWeekDaySchedule(SetWeekDayScheduleRequest): DefaultSuccess = 11; + command access(invoke: administer) GetWeekDaySchedule(GetWeekDayScheduleRequest): GetWeekDayScheduleResponse = 12; + command access(invoke: administer) ClearWeekDaySchedule(ClearWeekDayScheduleRequest): DefaultSuccess = 13; + command access(invoke: administer) SetYearDaySchedule(SetYearDayScheduleRequest): DefaultSuccess = 14; + command access(invoke: administer) GetYearDaySchedule(GetYearDayScheduleRequest): GetYearDayScheduleResponse = 15; + command access(invoke: administer) ClearYearDaySchedule(ClearYearDayScheduleRequest): DefaultSuccess = 16; + command access(invoke: administer) SetHolidaySchedule(SetHolidayScheduleRequest): DefaultSuccess = 17; + command access(invoke: administer) GetHolidaySchedule(GetHolidayScheduleRequest): GetHolidayScheduleResponse = 18; + command access(invoke: administer) ClearHolidaySchedule(ClearHolidayScheduleRequest): DefaultSuccess = 19; + timed command access(invoke: administer) SetUser(SetUserRequest): DefaultSuccess = 26; + command access(invoke: administer) GetUser(GetUserRequest): GetUserResponse = 27; + timed command access(invoke: administer) ClearUser(ClearUserRequest): DefaultSuccess = 29; + timed command access(invoke: administer) SetCredential(SetCredentialRequest): SetCredentialResponse = 34; + command access(invoke: administer) GetCredentialStatus(GetCredentialStatusRequest): GetCredentialStatusResponse = 36; + timed command access(invoke: administer) ClearCredential(ClearCredentialRequest): DefaultSuccess = 38; } client cluster ElectricalMeasurement = 2820 { @@ -1747,7 +1747,7 @@ client cluster GeneralCommissioning = 48 { INT16U failSafeExpiryLengthSeconds = 0; } - attribute int64u breadcrumb = 0; + attribute access(write: administer) int64u breadcrumb = 0; readonly attribute BasicCommissioningInfo basicCommissioningInfo = 1; readonly attribute RegulatoryLocationType regulatoryConfig = 2; readonly attribute RegulatoryLocationType locationCapability = 3; @@ -1783,9 +1783,9 @@ client cluster GeneralCommissioning = 48 { CHAR_STRING debugText = 1; } - command ArmFailSafe(ArmFailSafeRequest): ArmFailSafeResponse = 0; - command SetRegulatoryConfig(SetRegulatoryConfigRequest): SetRegulatoryConfigResponse = 2; - command CommissioningComplete(): CommissioningCompleteResponse = 4; + command access(invoke: administer) ArmFailSafe(ArmFailSafeRequest): ArmFailSafeResponse = 0; + command access(invoke: administer) SetRegulatoryConfig(SetRegulatoryConfigRequest): SetRegulatoryConfigResponse = 2; + command access(invoke: administer) CommissioningComplete(): CommissioningCompleteResponse = 4; } client cluster GeneralDiagnostics = 51 { @@ -1912,7 +1912,7 @@ client cluster GroupKeyManagement = 63 { nullable epoch_us epochStartTime2 = 7; } - attribute GroupKeyMapStruct groupKeyMap[] = 0; + attribute access(write: manage) GroupKeyMapStruct groupKeyMap[] = 0; readonly attribute GroupInfoMapStruct groupTable[] = 1; readonly attribute int16u maxGroupsPerFabric = 2; readonly attribute int16u maxGroupKeysPerFabric = 3; @@ -1945,10 +1945,10 @@ client cluster GroupKeyManagement = 63 { INT16U groupKeySetIDs[] = 0; } - command KeySetWrite(KeySetWriteRequest): DefaultSuccess = 0; - command KeySetRead(KeySetReadRequest): KeySetReadResponse = 1; - command KeySetRemove(KeySetRemoveRequest): DefaultSuccess = 3; - command KeySetReadAllIndices(KeySetReadAllIndicesRequest): KeySetReadAllIndicesResponse = 4; + command access(invoke: administer) KeySetWrite(KeySetWriteRequest): DefaultSuccess = 0; + command access(invoke: administer) KeySetRead(KeySetReadRequest): KeySetReadResponse = 1; + command access(invoke: administer) KeySetRemove(KeySetRemoveRequest): DefaultSuccess = 3; + command access(invoke: administer) KeySetReadAllIndices(KeySetReadAllIndicesRequest): KeySetReadAllIndicesResponse = 4; } client cluster Groups = 4 { @@ -2001,12 +2001,12 @@ client cluster Groups = 4 { group_id groupId = 1; } - command AddGroup(AddGroupRequest): AddGroupResponse = 0; + command access(invoke: manage) AddGroup(AddGroupRequest): AddGroupResponse = 0; command ViewGroup(ViewGroupRequest): ViewGroupResponse = 1; command GetGroupMembership(GetGroupMembershipRequest): GetGroupMembershipResponse = 2; - command RemoveGroup(RemoveGroupRequest): RemoveGroupResponse = 3; - command RemoveAllGroups(): DefaultSuccess = 4; - command AddGroupIfIdentifying(AddGroupIfIdentifyingRequest): DefaultSuccess = 5; + command access(invoke: manage) RemoveGroup(RemoveGroupRequest): RemoveGroupResponse = 3; + command access(invoke: manage) RemoveAllGroups(): DefaultSuccess = 4; + command access(invoke: manage) AddGroupIfIdentifying(AddGroupIfIdentifyingRequest): DefaultSuccess = 5; } client cluster Identify = 3 { @@ -2052,9 +2052,9 @@ client cluster Identify = 3 { INT16U timeout = 0; } - command Identify(IdentifyRequest): DefaultSuccess = 0; - command IdentifyQuery(): IdentifyQueryResponse = 1; - command TriggerEffect(TriggerEffectRequest): DefaultSuccess = 64; + command access(invoke: manage) Identify(IdentifyRequest): DefaultSuccess = 0; + command access(invoke: manage) IdentifyQuery(): IdentifyQueryResponse = 1; + command access(invoke: manage) TriggerEffect(TriggerEffectRequest): DefaultSuccess = 64; } client cluster IlluminanceMeasurement = 1024 { @@ -2222,7 +2222,7 @@ client cluster LevelControl = 8 { attribute nullable int16u onTransitionTime = 18; attribute nullable int16u offTransitionTime = 19; attribute nullable int8u defaultMoveRate = 20; - attribute nullable int8u startUpCurrentLevel = 16384; + attribute access(write: manage) nullable int8u startUpCurrentLevel = 16384; readonly attribute command_id generatedCommandList[] = 65528; readonly attribute command_id acceptedCommandList[] = 65529; readonly attribute attrib_id attributeList[] = 65531; @@ -2506,14 +2506,14 @@ client cluster NetworkCommissioning = 49 { INT8U lqi = 7; } - readonly attribute int8u maxNetworks = 0; - readonly attribute NetworkInfo networks[] = 1; + readonly attribute access(read: administer) int8u maxNetworks = 0; + readonly attribute access(read: administer) NetworkInfo networks[] = 1; readonly attribute int8u scanMaxTimeSeconds = 2; readonly attribute int8u connectMaxTimeSeconds = 3; - attribute boolean interfaceEnabled = 4; - readonly attribute nullable NetworkCommissioningStatus lastNetworkingStatus = 5; - readonly attribute nullable octet_string<32> lastNetworkID = 6; - readonly attribute nullable int32s lastConnectErrorValue = 7; + attribute access(write: administer) boolean interfaceEnabled = 4; + readonly attribute access(read: administer) nullable NetworkCommissioningStatus lastNetworkingStatus = 5; + readonly attribute access(read: administer) nullable octet_string<32> lastNetworkID = 6; + readonly attribute access(read: administer) nullable int32s lastConnectErrorValue = 7; readonly attribute command_id generatedCommandList[] = 65528; readonly attribute command_id acceptedCommandList[] = 65529; readonly attribute bitmap32 featureMap = 65532; @@ -2570,12 +2570,12 @@ client cluster NetworkCommissioning = 49 { nullable INT32S errorValue = 2; } - command ScanNetworks(ScanNetworksRequest): ScanNetworksResponse = 0; - command AddOrUpdateWiFiNetwork(AddOrUpdateWiFiNetworkRequest): NetworkConfigResponse = 2; - command AddOrUpdateThreadNetwork(AddOrUpdateThreadNetworkRequest): NetworkConfigResponse = 3; - command RemoveNetwork(RemoveNetworkRequest): NetworkConfigResponse = 4; - command ConnectNetwork(ConnectNetworkRequest): ConnectNetworkResponse = 6; - command ReorderNetwork(ReorderNetworkRequest): NetworkConfigResponse = 8; + command access(invoke: administer) ScanNetworks(ScanNetworksRequest): ScanNetworksResponse = 0; + command access(invoke: administer) AddOrUpdateWiFiNetwork(AddOrUpdateWiFiNetworkRequest): NetworkConfigResponse = 2; + command access(invoke: administer) AddOrUpdateThreadNetwork(AddOrUpdateThreadNetworkRequest): NetworkConfigResponse = 3; + command access(invoke: administer) RemoveNetwork(RemoveNetworkRequest): NetworkConfigResponse = 4; + command access(invoke: administer) ConnectNetwork(ConnectNetworkRequest): ConnectNetworkResponse = 6; + command access(invoke: administer) ReorderNetwork(ReorderNetworkRequest): NetworkConfigResponse = 8; } client cluster OtaSoftwareUpdateProvider = 41 { @@ -2758,7 +2758,7 @@ client cluster OnOff = 6 { readonly attribute boolean globalSceneControl = 16384; attribute int16u onTime = 16385; attribute int16u offWaitTime = 16386; - attribute nullable OnOffStartUpOnOff startUpOnOff = 16387; + attribute access(write: manage) nullable OnOffStartUpOnOff startUpOnOff = 16387; readonly attribute command_id generatedCommandList[] = 65528; readonly attribute command_id acceptedCommandList[] = 65529; readonly attribute attrib_id attributeList[] = 65531; @@ -2822,7 +2822,7 @@ client cluster OperationalCredentials = 62 { fabric_idx fabricIndex = 254; } - readonly attribute NOCStruct NOCs[] = 0; + readonly attribute access(read: administer) NOCStruct NOCs[] = 0; readonly attribute FabricDescriptor fabrics[] = 1; readonly attribute int8u supportedFabrics = 2; readonly attribute int8u commissionedFabrics = 3; @@ -2894,15 +2894,15 @@ client cluster OperationalCredentials = 62 { optional CHAR_STRING debugText = 2; } - command AttestationRequest(AttestationRequestRequest): AttestationResponse = 0; - command CertificateChainRequest(CertificateChainRequestRequest): CertificateChainResponse = 2; - command CSRRequest(CSRRequestRequest): CSRResponse = 4; - command AddNOC(AddNOCRequest): NOCResponse = 6; - command UpdateNOC(UpdateNOCRequest): NOCResponse = 7; - command UpdateFabricLabel(UpdateFabricLabelRequest): NOCResponse = 9; - command RemoveFabric(RemoveFabricRequest): NOCResponse = 10; - command AddTrustedRootCertificate(AddTrustedRootCertificateRequest): DefaultSuccess = 11; - command RemoveTrustedRootCertificate(RemoveTrustedRootCertificateRequest): DefaultSuccess = 12; + command access(invoke: administer) AttestationRequest(AttestationRequestRequest): AttestationResponse = 0; + command access(invoke: administer) CertificateChainRequest(CertificateChainRequestRequest): CertificateChainResponse = 2; + command access(invoke: administer) CSRRequest(CSRRequestRequest): CSRResponse = 4; + command access(invoke: administer) AddNOC(AddNOCRequest): NOCResponse = 6; + command access(invoke: administer) UpdateNOC(UpdateNOCRequest): NOCResponse = 7; + command access(invoke: administer) UpdateFabricLabel(UpdateFabricLabelRequest): NOCResponse = 9; + command access(invoke: administer) RemoveFabric(RemoveFabricRequest): NOCResponse = 10; + command access(invoke: administer) AddTrustedRootCertificate(AddTrustedRootCertificateRequest): DefaultSuccess = 11; + command access(invoke: administer) RemoveTrustedRootCertificate(RemoveTrustedRootCertificateRequest): DefaultSuccess = 12; } client cluster PowerSource = 47 { @@ -3227,11 +3227,11 @@ client cluster Scenes = 5 { INT8U sceneList[] = 4; } - command AddScene(AddSceneRequest): AddSceneResponse = 0; + command access(invoke: manage) AddScene(AddSceneRequest): AddSceneResponse = 0; command ViewScene(ViewSceneRequest): ViewSceneResponse = 1; - command RemoveScene(RemoveSceneRequest): RemoveSceneResponse = 2; - command RemoveAllScenes(RemoveAllScenesRequest): RemoveAllScenesResponse = 3; - command StoreScene(StoreSceneRequest): StoreSceneResponse = 4; + command access(invoke: manage) RemoveScene(RemoveSceneRequest): RemoveSceneResponse = 2; + command access(invoke: manage) RemoveAllScenes(RemoveAllScenesRequest): RemoveAllScenesResponse = 3; + command access(invoke: manage) StoreScene(StoreSceneRequest): StoreSceneResponse = 4; command RecallScene(RecallSceneRequest): DefaultSuccess = 5; command GetSceneMembership(GetSceneMembershipRequest): GetSceneMembershipResponse = 6; } @@ -3719,13 +3719,13 @@ client cluster Thermostat = 513 { readonly attribute int16s absMaxCoolSetpointLimit = 6; attribute int16s occupiedCoolingSetpoint = 17; attribute int16s occupiedHeatingSetpoint = 18; - attribute int16s minHeatSetpointLimit = 21; - attribute int16s maxHeatSetpointLimit = 22; - attribute int16s minCoolSetpointLimit = 23; - attribute int16s maxCoolSetpointLimit = 24; - attribute int8s minSetpointDeadBand = 25; - attribute ThermostatControlSequence controlSequenceOfOperation = 27; - attribute enum8 systemMode = 28; + attribute access(write: manage) int16s minHeatSetpointLimit = 21; + attribute access(write: manage) int16s maxHeatSetpointLimit = 22; + attribute access(write: manage) int16s minCoolSetpointLimit = 23; + attribute access(write: manage) int16s maxCoolSetpointLimit = 24; + attribute access(write: manage) int8s minSetpointDeadBand = 25; + attribute access(write: manage) ThermostatControlSequence controlSequenceOfOperation = 27; + attribute access(write: manage) enum8 systemMode = 28; readonly attribute enum8 startOfWeek = 32; readonly attribute int8u numberOfWeeklyTransitions = 33; readonly attribute int8u numberOfDailyTransitions = 34; @@ -3767,16 +3767,16 @@ client cluster Thermostat = 513 { } command SetpointRaiseLower(SetpointRaiseLowerRequest): DefaultSuccess = 0; - command SetWeeklySchedule(SetWeeklyScheduleRequest): DefaultSuccess = 1; + command access(invoke: manage) SetWeeklySchedule(SetWeeklyScheduleRequest): DefaultSuccess = 1; command GetWeeklySchedule(GetWeeklyScheduleRequest): GetWeeklyScheduleResponse = 2; - command ClearWeeklySchedule(): DefaultSuccess = 3; + command access(invoke: manage) ClearWeeklySchedule(): DefaultSuccess = 3; command GetRelayStatusLog(): GetRelayStatusLogResponse = 4; } client cluster ThermostatUserInterfaceConfiguration = 516 { attribute enum8 temperatureDisplayMode = 0; - attribute enum8 keypadLockout = 1; - attribute enum8 scheduleProgrammingVisibility = 2; + attribute access(write: manage) enum8 keypadLockout = 1; + attribute access(write: manage) enum8 scheduleProgrammingVisibility = 2; readonly attribute command_id generatedCommandList[] = 65528; readonly attribute command_id acceptedCommandList[] = 65529; readonly attribute attrib_id attributeList[] = 65531; @@ -3986,7 +3986,7 @@ client cluster UnitLocalization = 45 { } client cluster UserLabel = 65 { - attribute LabelStruct labelList[] = 0; + attribute access(write: manage) LabelStruct labelList[] = 0; readonly attribute command_id generatedCommandList[] = 65528; readonly attribute command_id acceptedCommandList[] = 65529; readonly attribute int16u clusterRevision = 65533; @@ -4171,7 +4171,7 @@ client cluster WindowCovering = 258 { readonly attribute int16u installedClosedLimitLift = 17; readonly attribute int16u installedOpenLimitTilt = 18; readonly attribute int16u installedClosedLimitTilt = 19; - attribute bitmap8 mode = 23; + attribute access(write: manage) bitmap8 mode = 23; readonly attribute bitmap16 safetyStatus = 26; readonly attribute command_id generatedCommandList[] = 65528; readonly attribute command_id acceptedCommandList[] = 65529;