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 071a3fcf7c5b76..fc877675127909 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
@@ -4010,7 +4010,7 @@ provisional cluster ScenesManagement = 98 {
/** Get an unused scene identifier when no commissioning tool is in the network, or for a commissioning tool to get the used scene identifiers within a certain group */
fabric command GetSceneMembership(GetSceneMembershipRequest): GetSceneMembershipResponse = 6;
/** Allows a client to efficiently copy scenes from one group/scene identifier pair to another group/scene identifier pair. */
- fabric command CopyScene(CopySceneRequest): CopySceneResponse = 64;
+ fabric command access(invoke: manage) CopyScene(CopySceneRequest): CopySceneResponse = 64;
}
/** Attributes and commands for monitoring HEPA filters in a device */
diff --git a/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.matter b/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.matter
index ae50904721e813..c3fac02bab41a7 100644
--- a/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.matter
+++ b/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.matter
@@ -2879,7 +2879,7 @@ provisional cluster ScenesManagement = 98 {
/** Get an unused scene identifier when no commissioning tool is in the network, or for a commissioning tool to get the used scene identifiers within a certain group */
fabric command GetSceneMembership(GetSceneMembershipRequest): GetSceneMembershipResponse = 6;
/** Allows a client to efficiently copy scenes from one group/scene identifier pair to another group/scene identifier pair. */
- fabric command CopyScene(CopySceneRequest): CopySceneResponse = 64;
+ fabric command access(invoke: manage) CopyScene(CopySceneRequest): CopySceneResponse = 64;
}
/** An interface to a generic way to secure a door */
diff --git a/examples/chef/devices/rootnode_dimmablepluginunit_f8a9a0b9d4.matter b/examples/chef/devices/rootnode_dimmablepluginunit_f8a9a0b9d4.matter
index cc875bbd196bf7..aabfbccc2d0a90 100644
--- a/examples/chef/devices/rootnode_dimmablepluginunit_f8a9a0b9d4.matter
+++ b/examples/chef/devices/rootnode_dimmablepluginunit_f8a9a0b9d4.matter
@@ -1908,7 +1908,7 @@ provisional cluster ScenesManagement = 98 {
/** Get an unused scene identifier when no commissioning tool is in the network, or for a commissioning tool to get the used scene identifiers within a certain group */
fabric command GetSceneMembership(GetSceneMembershipRequest): GetSceneMembershipResponse = 6;
/** Allows a client to efficiently copy scenes from one group/scene identifier pair to another group/scene identifier pair. */
- fabric command CopyScene(CopySceneRequest): CopySceneResponse = 64;
+ fabric command access(invoke: manage) CopyScene(CopySceneRequest): CopySceneResponse = 64;
}
/** The server cluster provides an interface to occupancy sensing functionality based on one or more sensing modalities, including configuration and provision of notifications of occupancy status. */
diff --git a/examples/light-switch-app/light-switch-common/icd-lit-light-switch-app.matter b/examples/light-switch-app/light-switch-common/icd-lit-light-switch-app.matter
index 67ed0ab5715709..a3e73a8cd0b348 100644
--- a/examples/light-switch-app/light-switch-common/icd-lit-light-switch-app.matter
+++ b/examples/light-switch-app/light-switch-common/icd-lit-light-switch-app.matter
@@ -2438,7 +2438,7 @@ provisional cluster ScenesManagement = 98 {
/** Get an unused scene identifier when no commissioning tool is in the network, or for a commissioning tool to get the used scene identifiers within a certain group */
fabric command GetSceneMembership(GetSceneMembershipRequest): GetSceneMembershipResponse = 6;
/** Allows a client to efficiently copy scenes from one group/scene identifier pair to another group/scene identifier pair. */
- fabric command CopyScene(CopySceneRequest): CopySceneResponse = 64;
+ fabric command access(invoke: manage) CopyScene(CopySceneRequest): CopySceneResponse = 64;
}
/** Attributes and commands for controlling the color properties of a color-capable light. */
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 07910e283f3a0a..f3410b59dfa0a8 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
@@ -2438,7 +2438,7 @@ provisional cluster ScenesManagement = 98 {
/** Get an unused scene identifier when no commissioning tool is in the network, or for a commissioning tool to get the used scene identifiers within a certain group */
fabric command GetSceneMembership(GetSceneMembershipRequest): GetSceneMembershipResponse = 6;
/** Allows a client to efficiently copy scenes from one group/scene identifier pair to another group/scene identifier pair. */
- fabric command CopyScene(CopySceneRequest): CopySceneResponse = 64;
+ fabric command access(invoke: manage) CopyScene(CopySceneRequest): CopySceneResponse = 64;
}
/** Attributes and commands for controlling the color properties of a color-capable light. */
diff --git a/examples/light-switch-app/qpg/zap/switch.matter b/examples/light-switch-app/qpg/zap/switch.matter
index 03e0f51ad0830d..dcf118163d8ec4 100644
--- a/examples/light-switch-app/qpg/zap/switch.matter
+++ b/examples/light-switch-app/qpg/zap/switch.matter
@@ -2555,7 +2555,7 @@ provisional cluster ScenesManagement = 98 {
/** Get an unused scene identifier when no commissioning tool is in the network, or for a commissioning tool to get the used scene identifiers within a certain group */
fabric command GetSceneMembership(GetSceneMembershipRequest): GetSceneMembershipResponse = 6;
/** Allows a client to efficiently copy scenes from one group/scene identifier pair to another group/scene identifier pair. */
- fabric command CopyScene(CopySceneRequest): CopySceneResponse = 64;
+ fabric command access(invoke: manage) CopyScene(CopySceneRequest): CopySceneResponse = 64;
}
/** Attributes and commands for controlling the color properties of a color-capable light. */
diff --git a/examples/lighting-app-data-mode-no-unique-id/lighting-common/lighting-app.matter b/examples/lighting-app-data-mode-no-unique-id/lighting-common/lighting-app.matter
index e8e99173b85a17..431011ab0c9859 100644
--- a/examples/lighting-app-data-mode-no-unique-id/lighting-common/lighting-app.matter
+++ b/examples/lighting-app-data-mode-no-unique-id/lighting-common/lighting-app.matter
@@ -2246,7 +2246,7 @@ provisional cluster ScenesManagement = 98 {
/** Get an unused scene identifier when no commissioning tool is in the network, or for a commissioning tool to get the used scene identifiers within a certain group */
fabric command GetSceneMembership(GetSceneMembershipRequest): GetSceneMembershipResponse = 6;
/** Allows a client to efficiently copy scenes from one group/scene identifier pair to another group/scene identifier pair. */
- fabric command CopyScene(CopySceneRequest): CopySceneResponse = 64;
+ fabric command access(invoke: manage) CopyScene(CopySceneRequest): CopySceneResponse = 64;
}
/** Attributes and commands for controlling the color properties of a color-capable light. */
diff --git a/examples/lighting-app/lighting-common/lighting-app.matter b/examples/lighting-app/lighting-common/lighting-app.matter
index 769d929e580836..80db43eedb8548 100644
--- a/examples/lighting-app/lighting-common/lighting-app.matter
+++ b/examples/lighting-app/lighting-common/lighting-app.matter
@@ -2246,7 +2246,7 @@ provisional cluster ScenesManagement = 98 {
/** Get an unused scene identifier when no commissioning tool is in the network, or for a commissioning tool to get the used scene identifiers within a certain group */
fabric command GetSceneMembership(GetSceneMembershipRequest): GetSceneMembershipResponse = 6;
/** Allows a client to efficiently copy scenes from one group/scene identifier pair to another group/scene identifier pair. */
- fabric command CopyScene(CopySceneRequest): CopySceneResponse = 64;
+ fabric command access(invoke: manage) CopyScene(CopySceneRequest): CopySceneResponse = 64;
}
/** Attributes and commands for controlling the color properties of a color-capable light. */
diff --git a/examples/lighting-app/silabs/data_model/lighting-thread-app.matter b/examples/lighting-app/silabs/data_model/lighting-thread-app.matter
index 9fb02976f031d5..3c8202d4392460 100644
--- a/examples/lighting-app/silabs/data_model/lighting-thread-app.matter
+++ b/examples/lighting-app/silabs/data_model/lighting-thread-app.matter
@@ -1950,7 +1950,7 @@ provisional cluster ScenesManagement = 98 {
/** Get an unused scene identifier when no commissioning tool is in the network, or for a commissioning tool to get the used scene identifiers within a certain group */
fabric command GetSceneMembership(GetSceneMembershipRequest): GetSceneMembershipResponse = 6;
/** Allows a client to efficiently copy scenes from one group/scene identifier pair to another group/scene identifier pair. */
- fabric command CopyScene(CopySceneRequest): CopySceneResponse = 64;
+ fabric command access(invoke: manage) CopyScene(CopySceneRequest): CopySceneResponse = 64;
}
/** Attributes and commands for controlling the color properties of a color-capable light. */
diff --git a/examples/lighting-app/silabs/data_model/lighting-wifi-app.matter b/examples/lighting-app/silabs/data_model/lighting-wifi-app.matter
index 1619fc9622caf4..16f4d7247f44ac 100644
--- a/examples/lighting-app/silabs/data_model/lighting-wifi-app.matter
+++ b/examples/lighting-app/silabs/data_model/lighting-wifi-app.matter
@@ -2241,7 +2241,7 @@ provisional cluster ScenesManagement = 98 {
/** Get an unused scene identifier when no commissioning tool is in the network, or for a commissioning tool to get the used scene identifiers within a certain group */
fabric command GetSceneMembership(GetSceneMembershipRequest): GetSceneMembershipResponse = 6;
/** Allows a client to efficiently copy scenes from one group/scene identifier pair to another group/scene identifier pair. */
- fabric command CopyScene(CopySceneRequest): CopySceneResponse = 64;
+ fabric command access(invoke: manage) CopyScene(CopySceneRequest): CopySceneResponse = 64;
}
/** Attributes and commands for controlling the color properties of a color-capable light. */
diff --git a/examples/placeholder/linux/apps/app1/config.matter b/examples/placeholder/linux/apps/app1/config.matter
index fe5fe0bfe6d84b..9daced64e142bd 100644
--- a/examples/placeholder/linux/apps/app1/config.matter
+++ b/examples/placeholder/linux/apps/app1/config.matter
@@ -3514,7 +3514,7 @@ provisional cluster ScenesManagement = 98 {
/** Get an unused scene identifier when no commissioning tool is in the network, or for a commissioning tool to get the used scene identifiers within a certain group */
fabric command GetSceneMembership(GetSceneMembershipRequest): GetSceneMembershipResponse = 6;
/** Allows a client to efficiently copy scenes from one group/scene identifier pair to another group/scene identifier pair. */
- fabric command CopyScene(CopySceneRequest): CopySceneResponse = 64;
+ fabric command access(invoke: manage) CopyScene(CopySceneRequest): CopySceneResponse = 64;
}
/** An interface to a generic way to secure a door */
diff --git a/examples/placeholder/linux/apps/app2/config.matter b/examples/placeholder/linux/apps/app2/config.matter
index 68de2f9ffba90e..e81c96d55c248c 100644
--- a/examples/placeholder/linux/apps/app2/config.matter
+++ b/examples/placeholder/linux/apps/app2/config.matter
@@ -3471,7 +3471,7 @@ provisional cluster ScenesManagement = 98 {
/** Get an unused scene identifier when no commissioning tool is in the network, or for a commissioning tool to get the used scene identifiers within a certain group */
fabric command GetSceneMembership(GetSceneMembershipRequest): GetSceneMembershipResponse = 6;
/** Allows a client to efficiently copy scenes from one group/scene identifier pair to another group/scene identifier pair. */
- fabric command CopyScene(CopySceneRequest): CopySceneResponse = 64;
+ fabric command access(invoke: manage) CopyScene(CopySceneRequest): CopySceneResponse = 64;
}
/** An interface to a generic way to secure a door */
diff --git a/examples/virtual-device-app/virtual-device-common/virtual-device-app.matter b/examples/virtual-device-app/virtual-device-common/virtual-device-app.matter
index b9a3224db7f109..1ae60c5b6c6c25 100644
--- a/examples/virtual-device-app/virtual-device-common/virtual-device-app.matter
+++ b/examples/virtual-device-app/virtual-device-common/virtual-device-app.matter
@@ -2354,7 +2354,7 @@ provisional cluster ScenesManagement = 98 {
/** Get an unused scene identifier when no commissioning tool is in the network, or for a commissioning tool to get the used scene identifiers within a certain group */
fabric command GetSceneMembership(GetSceneMembershipRequest): GetSceneMembershipResponse = 6;
/** Allows a client to efficiently copy scenes from one group/scene identifier pair to another group/scene identifier pair. */
- fabric command CopyScene(CopySceneRequest): CopySceneResponse = 64;
+ fabric command access(invoke: manage) CopyScene(CopySceneRequest): CopySceneResponse = 64;
}
/** An interface to a generic way to secure a door */
diff --git a/scripts/tools/zap/tests/outputs/all-clusters-app/app-templates/access.h b/scripts/tools/zap/tests/outputs/all-clusters-app/app-templates/access.h
index 9b35ecb22d178c..cea3c62600180c 100644
--- a/scripts/tools/zap/tests/outputs/all-clusters-app/app-templates/access.h
+++ b/scripts/tools/zap/tests/outputs/all-clusters-app/app-templates/access.h
@@ -400,6 +400,7 @@
0x00000062, /* Cluster: Scenes Management, Command: RemoveScene, Privilege: manage */ \
0x00000062, /* Cluster: Scenes Management, Command: RemoveAllScenes, Privilege: manage */ \
0x00000062, /* Cluster: Scenes Management, Command: StoreScene, Privilege: manage */ \
+ 0x00000062, /* Cluster: Scenes Management, Command: CopyScene, Privilege: manage */ \
0x00000201, /* Cluster: Thermostat, Command: AtomicRequest, Privilege: manage */ \
0xFFF1FC06, /* Cluster: Fault Injection, Command: FailAtFault, Privilege: manage */ \
0xFFF1FC06, /* Cluster: Fault Injection, Command: FailRandomlyAtFault, Privilege: manage */ \
@@ -450,6 +451,7 @@
0x00000002, /* Cluster: Scenes Management, Command: RemoveScene, Privilege: manage */ \
0x00000003, /* Cluster: Scenes Management, Command: RemoveAllScenes, Privilege: manage */ \
0x00000004, /* Cluster: Scenes Management, Command: StoreScene, Privilege: manage */ \
+ 0x00000040, /* Cluster: Scenes Management, Command: CopyScene, Privilege: manage */ \
0x000000FE, /* Cluster: Thermostat, Command: AtomicRequest, Privilege: manage */ \
0x00000000, /* Cluster: Fault Injection, Command: FailAtFault, Privilege: manage */ \
0x00000001, /* Cluster: Fault Injection, Command: FailRandomlyAtFault, Privilege: manage */ \
@@ -500,6 +502,7 @@
chip::Access::Privilege::kManage, /* Cluster: Scenes Management, Command: RemoveScene, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Scenes Management, Command: RemoveAllScenes, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Scenes Management, Command: StoreScene, Privilege: manage */ \
+ chip::Access::Privilege::kManage, /* Cluster: Scenes Management, Command: CopyScene, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Thermostat, Command: AtomicRequest, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Fault Injection, Command: FailAtFault, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Fault Injection, Command: FailRandomlyAtFault, Privilege: manage */ \
diff --git a/scripts/tools/zap/tests/outputs/lighting-app/app-templates/access.h b/scripts/tools/zap/tests/outputs/lighting-app/app-templates/access.h
index acef1673384c14..c062b9376f4666 100644
--- a/scripts/tools/zap/tests/outputs/lighting-app/app-templates/access.h
+++ b/scripts/tools/zap/tests/outputs/lighting-app/app-templates/access.h
@@ -200,6 +200,7 @@
0x00000062, /* Cluster: Scenes Management, Command: RemoveScene, Privilege: manage */ \
0x00000062, /* Cluster: Scenes Management, Command: RemoveAllScenes, Privilege: manage */ \
0x00000062, /* Cluster: Scenes Management, Command: StoreScene, Privilege: manage */ \
+ 0x00000062, /* Cluster: Scenes Management, Command: CopyScene, Privilege: manage */ \
}
// Parallel array data (cluster, *command*, privilege) for invoke command
@@ -242,6 +243,7 @@
0x00000002, /* Cluster: Scenes Management, Command: RemoveScene, Privilege: manage */ \
0x00000003, /* Cluster: Scenes Management, Command: RemoveAllScenes, Privilege: manage */ \
0x00000004, /* Cluster: Scenes Management, Command: StoreScene, Privilege: manage */ \
+ 0x00000040, /* Cluster: Scenes Management, Command: CopyScene, Privilege: manage */ \
}
// Parallel array data (cluster, command, *privilege*) for invoke command
@@ -284,6 +286,7 @@
chip::Access::Privilege::kManage, /* Cluster: Scenes Management, Command: RemoveScene, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Scenes Management, Command: RemoveAllScenes, Privilege: manage */ \
chip::Access::Privilege::kManage, /* Cluster: Scenes Management, Command: StoreScene, Privilege: manage */ \
+ chip::Access::Privilege::kManage, /* Cluster: Scenes Management, Command: CopyScene, Privilege: manage */ \
}
////////////////////////////////////////////////////////////////////////////////
diff --git a/src/app/zap-templates/zcl/data-model/chip/scene.xml b/src/app/zap-templates/zcl/data-model/chip/scene.xml
index ceea35e3759e69..fdd4a65c9cb29c 100644
--- a/src/app/zap-templates/zcl/data-model/chip/scene.xml
+++ b/src/app/zap-templates/zcl/data-model/chip/scene.xml
@@ -169,6 +169,7 @@ limitations under the License.
+
diff --git a/src/controller/data_model/controller-clusters.matter b/src/controller/data_model/controller-clusters.matter
index 31da395b05cd31..35b85ec5ffbd77 100644
--- a/src/controller/data_model/controller-clusters.matter
+++ b/src/controller/data_model/controller-clusters.matter
@@ -4272,7 +4272,7 @@ provisional cluster ScenesManagement = 98 {
/** Get an unused scene identifier when no commissioning tool is in the network, or for a commissioning tool to get the used scene identifiers within a certain group */
fabric command GetSceneMembership(GetSceneMembershipRequest): GetSceneMembershipResponse = 6;
/** Allows a client to efficiently copy scenes from one group/scene identifier pair to another group/scene identifier pair. */
- fabric command CopyScene(CopySceneRequest): CopySceneResponse = 64;
+ fabric command access(invoke: manage) CopyScene(CopySceneRequest): CopySceneResponse = 64;
}
/** Attributes and commands for monitoring HEPA filters in a device */