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 fe24dc6be7d331..05d3107832ed46 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
@@ -48,18 +48,18 @@ server cluster AccessControl = 31 {
info event AccessControlEntryChanged = 0 {
fabric_idx adminFabricIndex = 0;
- node_id adminNodeID = 1;
- INT16U adminPasscodeID = 2;
+ nullable node_id adminNodeID = 1;
+ nullable INT16U adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
- AccessControlEntry latestValue = 4;
+ nullable AccessControlEntry latestValue = 4;
}
info event AccessControlExtensionChanged = 1 {
fabric_idx adminFabricIndex = 0;
- node_id adminNodeID = 1;
- INT16U adminPasscodeID = 2;
+ nullable node_id adminNodeID = 1;
+ nullable INT16U adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
- ExtensionEntry latestValue = 4;
+ nullable ExtensionEntry latestValue = 4;
}
attribute AccessControlEntry acl[] = 0;
diff --git a/src/app/zap-templates/zcl/data-model/chip/access-control-cluster.xml b/src/app/zap-templates/zcl/data-model/chip/access-control-cluster.xml
index 6b912b1de27157..00405d84eec76a 100644
--- a/src/app/zap-templates/zcl/data-model/chip/access-control-cluster.xml
+++ b/src/app/zap-templates/zcl/data-model/chip/access-control-cluster.xml
@@ -89,18 +89,18 @@ limitations under the License.
The cluster SHALL send AccessControlEntryChanged events whenever its ACL attribute data is changed by an Administrator.
-
-
+
+
-
+
The cluster SHALL send AccessControlExtensionChanged events whenever its extension attribute data is changed by an Administrator.
-
-
+
+
-
+
diff --git a/src/controller/data_model/controller-clusters.matter b/src/controller/data_model/controller-clusters.matter
index 2175f416ff7daa..0c8f01ef95d935 100644
--- a/src/controller/data_model/controller-clusters.matter
+++ b/src/controller/data_model/controller-clusters.matter
@@ -48,18 +48,18 @@ client cluster AccessControl = 31 {
info event AccessControlEntryChanged = 0 {
fabric_idx adminFabricIndex = 0;
- node_id adminNodeID = 1;
- INT16U adminPasscodeID = 2;
+ nullable node_id adminNodeID = 1;
+ nullable INT16U adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
- AccessControlEntry latestValue = 4;
+ nullable AccessControlEntry latestValue = 4;
}
info event AccessControlExtensionChanged = 1 {
fabric_idx adminFabricIndex = 0;
- node_id adminNodeID = 1;
- INT16U adminPasscodeID = 2;
+ nullable node_id adminNodeID = 1;
+ nullable INT16U adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
- ExtensionEntry latestValue = 4;
+ nullable ExtensionEntry latestValue = 4;
}
attribute AccessControlEntry acl[] = 0;
diff --git a/src/controller/python/chip/clusters/Objects.py b/src/controller/python/chip/clusters/Objects.py
index bf0b7d22cfce3a..a80b7682c9433e 100644
--- a/src/controller/python/chip/clusters/Objects.py
+++ b/src/controller/python/chip/clusters/Objects.py
@@ -5297,17 +5297,17 @@ def descriptor(cls) -> ClusterObjectDescriptor:
return ClusterObjectDescriptor(
Fields = [
ClusterObjectFieldDescriptor(Label="adminFabricIndex", Tag=0, Type=uint),
- ClusterObjectFieldDescriptor(Label="adminNodeID", Tag=1, Type=uint),
- ClusterObjectFieldDescriptor(Label="adminPasscodeID", Tag=2, Type=uint),
+ ClusterObjectFieldDescriptor(Label="adminNodeID", Tag=1, Type=typing.Union[Nullable, uint]),
+ ClusterObjectFieldDescriptor(Label="adminPasscodeID", Tag=2, Type=typing.Union[Nullable, uint]),
ClusterObjectFieldDescriptor(Label="changeType", Tag=3, Type=AccessControl.Enums.ChangeTypeEnum),
- ClusterObjectFieldDescriptor(Label="latestValue", Tag=4, Type=AccessControl.Structs.AccessControlEntry),
+ ClusterObjectFieldDescriptor(Label="latestValue", Tag=4, Type=typing.Union[Nullable, AccessControl.Structs.AccessControlEntry]),
])
adminFabricIndex: 'uint' = 0
- adminNodeID: 'uint' = 0
- adminPasscodeID: 'uint' = 0
+ adminNodeID: 'typing.Union[Nullable, uint]' = NullValue
+ adminPasscodeID: 'typing.Union[Nullable, uint]' = NullValue
changeType: 'AccessControl.Enums.ChangeTypeEnum' = 0
- latestValue: 'AccessControl.Structs.AccessControlEntry' = field(default_factory=lambda: AccessControl.Structs.AccessControlEntry())
+ latestValue: 'typing.Union[Nullable, AccessControl.Structs.AccessControlEntry]' = NullValue
@dataclass
class AccessControlExtensionChanged(ClusterEvent):
@@ -5324,17 +5324,17 @@ def descriptor(cls) -> ClusterObjectDescriptor:
return ClusterObjectDescriptor(
Fields = [
ClusterObjectFieldDescriptor(Label="adminFabricIndex", Tag=0, Type=uint),
- ClusterObjectFieldDescriptor(Label="adminNodeID", Tag=1, Type=uint),
- ClusterObjectFieldDescriptor(Label="adminPasscodeID", Tag=2, Type=uint),
+ ClusterObjectFieldDescriptor(Label="adminNodeID", Tag=1, Type=typing.Union[Nullable, uint]),
+ ClusterObjectFieldDescriptor(Label="adminPasscodeID", Tag=2, Type=typing.Union[Nullable, uint]),
ClusterObjectFieldDescriptor(Label="changeType", Tag=3, Type=AccessControl.Enums.ChangeTypeEnum),
- ClusterObjectFieldDescriptor(Label="latestValue", Tag=4, Type=AccessControl.Structs.ExtensionEntry),
+ ClusterObjectFieldDescriptor(Label="latestValue", Tag=4, Type=typing.Union[Nullable, AccessControl.Structs.ExtensionEntry]),
])
adminFabricIndex: 'uint' = 0
- adminNodeID: 'uint' = 0
- adminPasscodeID: 'uint' = 0
+ adminNodeID: 'typing.Union[Nullable, uint]' = NullValue
+ adminPasscodeID: 'typing.Union[Nullable, uint]' = NullValue
changeType: 'AccessControl.Enums.ChangeTypeEnum' = 0
- latestValue: 'AccessControl.Structs.ExtensionEntry' = field(default_factory=lambda: AccessControl.Structs.ExtensionEntry())
+ latestValue: 'typing.Union[Nullable, AccessControl.Structs.ExtensionEntry]' = NullValue
@dataclass
diff --git a/zzz_generated/app-common/app-common/zap-generated/cluster-objects.h b/zzz_generated/app-common/app-common/zap-generated/cluster-objects.h
index 43e92032bf5ce9..cf7b776e220103 100644
--- a/zzz_generated/app-common/app-common/zap-generated/cluster-objects.h
+++ b/zzz_generated/app-common/app-common/zap-generated/cluster-objects.h
@@ -6605,10 +6605,10 @@ struct Type
static constexpr ClusterId GetClusterId() { return Clusters::AccessControl::Id; }
chip::FabricIndex adminFabricIndex = static_cast(0);
- chip::NodeId adminNodeID = static_cast(0);
- uint16_t adminPasscodeID = static_cast(0);
- ChangeTypeEnum changeType = static_cast(0);
- Structs::AccessControlEntry::Type latestValue;
+ DataModel::Nullable adminNodeID;
+ DataModel::Nullable adminPasscodeID;
+ ChangeTypeEnum changeType = static_cast(0);
+ DataModel::Nullable latestValue;
CHIP_ERROR Encode(TLV::TLVWriter & writer, TLV::Tag tag) const;
};
@@ -6621,10 +6621,10 @@ struct DecodableType
static constexpr ClusterId GetClusterId() { return Clusters::AccessControl::Id; }
chip::FabricIndex adminFabricIndex = static_cast(0);
- chip::NodeId adminNodeID = static_cast(0);
- uint16_t adminPasscodeID = static_cast(0);
- ChangeTypeEnum changeType = static_cast(0);
- Structs::AccessControlEntry::DecodableType latestValue;
+ DataModel::Nullable adminNodeID;
+ DataModel::Nullable adminPasscodeID;
+ ChangeTypeEnum changeType = static_cast(0);
+ DataModel::Nullable latestValue;
CHIP_ERROR Decode(TLV::TLVReader & reader);
};
@@ -6650,10 +6650,10 @@ struct Type
static constexpr ClusterId GetClusterId() { return Clusters::AccessControl::Id; }
chip::FabricIndex adminFabricIndex = static_cast(0);
- chip::NodeId adminNodeID = static_cast(0);
- uint16_t adminPasscodeID = static_cast(0);
- ChangeTypeEnum changeType = static_cast(0);
- Structs::ExtensionEntry::Type latestValue;
+ DataModel::Nullable adminNodeID;
+ DataModel::Nullable adminPasscodeID;
+ ChangeTypeEnum changeType = static_cast(0);
+ DataModel::Nullable latestValue;
CHIP_ERROR Encode(TLV::TLVWriter & writer, TLV::Tag tag) const;
};
@@ -6666,10 +6666,10 @@ struct DecodableType
static constexpr ClusterId GetClusterId() { return Clusters::AccessControl::Id; }
chip::FabricIndex adminFabricIndex = static_cast(0);
- chip::NodeId adminNodeID = static_cast(0);
- uint16_t adminPasscodeID = static_cast(0);
- ChangeTypeEnum changeType = static_cast(0);
- Structs::ExtensionEntry::DecodableType latestValue;
+ DataModel::Nullable adminNodeID;
+ DataModel::Nullable adminPasscodeID;
+ ChangeTypeEnum changeType = static_cast(0);
+ DataModel::Nullable latestValue;
CHIP_ERROR Decode(TLV::TLVReader & reader);
};