class

Matter::Cluster::AccessControlCluster

Inherits Matter::Cluster::Base < Reference < Object

Access Control Cluster (0x001F)

Provides fine-grained access control for Matter devices using Access Control Lists (ACLs).

Matter Spec: Core 9.10

Constants

ATTR_ACCESS_CONTROL_ENTRIES_PER_FABRIC = 4_u32
ATTR_ACL = 0_u32

Attributes

ATTR_EXTENSION = 1_u32
ATTR_SUBJECTS_PER_ACCESS_CONTROL_ENTRY = 2_u32
ATTR_TARGETS_PER_ACCESS_CONTROL_ENTRY = 3_u32
CLUSTER_ID = 31_u32
Log = ::Log.for("matter.cluster.access_control")

Constructors

new(endpoint_id : DataType::EndpointNumber)
Source

Class methods

cluster_id

Access Control Cluster (0x001F)

Provides fine-grained access control for Matter devices using Access Control Lists (ACLs).

Matter Spec: Core 9.10

Source

Instance methods

access_control_entries_per_fabric
Source
access_control_entries_per_fabric=(access_control_entries_per_fabric : UInt16)
Source
acl

Attribute storage

Source
acl=(acl : Array(AccessControlEntry))

Attribute storage

Source
attributes

Get all attribute metadata

Source
check_access(subject : UInt64, fabric_index : UInt8, privilege : AccessControlEntryPrivilege, cluster : UInt32 | Nil = nil, endpoint : UInt16 | Nil = nil, device_type : UInt32 | Nil = nil, auth_mode : AccessControlEntryAuthMode = AccessControlEntryAuthMode::CASE) : Bool

Check if a subject has the required privilege Supports CaseAuthenticatedTag (CAT) subject matching per Matter spec

Source
check_access(subject : UInt64, fabric_index : UInt8, privilege : Definitions::AccessControl::EntryPrivilege, cluster : UInt32 | Nil = nil, endpoint : UInt16 | Nil = nil, device_type : UInt32 | Nil = nil, auth_mode : Definitions::AccessControl::EntryAuthMode = Definitions::AccessControl::EntryAuthMode::Case) : Bool

Convenience wrapper for the generated cluster metadata privilege enum.

Source
commands

Get all command metadata

Source
extension
Source
extension=(extension : Array(ExtensionEntry))
Source
get_acl_for_fabric(fabric_index : UInt8) : Array(AccessControlEntry)

Helper: Get ACL entries for a specific fabric

Source
name

Get cluster name

Source
read_attribute(attribute_id : UInt32, fabric_index : UInt8 | Nil = nil) : InteractionModel::Status | Bytes

Read an attribute value The fabric_index parameter is optional and used for fabric-scoped attributes like CurrentFabricIndex in OperationalCredentialsCluster

Source
remove_fabric_acl(fabric_index : UInt8) : Nil

Helper: Remove all ACL entries for a fabric

Source
restore_state(json : String) : Nil

Restore cluster state from JSON. Override in subclasses that need to restore state. The json parameter is the string returned by save_state.

Source
save_state

Save cluster state to JSON for persistence. Override in subclasses that need to persist state (e.g., scenes, groups). Returns nil if no state needs to be persisted.

Source
subjects_per_access_control_entry
Source
subjects_per_access_control_entry=(subjects_per_access_control_entry : UInt16)
Source
targets_per_access_control_entry
Source
targets_per_access_control_entry=(targets_per_access_control_entry : UInt16)
Source
write_attribute(attribute_id : UInt32, value : Bytes) : InteractionModel::Status

Write an attribute value

Source

Nested types