<?xml version="1.0"?>
<!--
Copyright (c) 2021 Project CHIP Authors

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<configurator>
  <domain name="CHIP"/>

  <enum name="AccessControlEntryPrivilegeEnum" type="ENUM8">
    <cluster code="0x001F"/>
    <item name="View" value="0x01"/>
    <item name="Proxy View" value="0x02"/>
    <item name="Operate" value="0x03"/>
    <item name="Manage" value="0x04"/>
    <item name="Administer" value="0x05"/>
  </enum>

  <enum name="AccessControlEntryAuthModeEnum" type="ENUM8">
    <cluster code="0x001F"/>
    <item name="PASE" value="0x01"/>
    <item name="CASE" value="0x02"/>
    <item name="Group" value="0x03"/>
  </enum>

  <enum name="ChangeTypeEnum" type="ENUM8">
    <cluster code="0x001F"/>
    <item name="Changed" value="0x00"/>
    <item name="Added" value="0x01"/>
    <item name="Removed" value="0x02"/>
  </enum>

  <struct name="Target">
    <cluster code="0x001F"/>
    <item fieldId="0" name="Cluster" type="cluster_id" isNullable="true"/>
    <item fieldId="1" name="Endpoint" type="endpoint_no" isNullable="true"/>
    <item fieldId="2" name="DeviceType" type="devtype_id" isNullable="true"/>
  </struct>

  <struct name="AccessControlEntryStruct" isFabricScoped="true">
    <cluster code="0x001F"/>
    <item fieldId="1" name="Privilege" type="AccessControlEntryPrivilegeEnum" isFabricSensitive="true"/>
    <item fieldId="2" name="AuthMode" type="AccessControlEntryAuthModeEnum" isFabricSensitive="true"/>
    <item fieldId="3" name="Subjects" type="INT64U" isNullable="true" array="true" isFabricSensitive="true"/>
    <item fieldId="4" name="Targets" type="Target" isNullable="true" array="true" isFabricSensitive="true"/>
  </struct>

  <struct name="AccessControlExtensionStruct" isFabricScoped="true">
    <cluster code="0x001F"/>
    <item fieldId="1" name="Data" type="OCTET_STRING" length="128" isFabricSensitive="true"/>
  </struct>

  <cluster>
    <domain>General</domain>
    <name>Access Control</name>
    <code>0x001F</code>
    <define>ACCESS_CONTROL_CLUSTER</define>
    <client init="false" tick="false">true</client>
    <server init="false" tick="false">true</server>
    <description>The Access Control Cluster exposes a data model view of a
      Node's Access Control List (ACL), which codifies the rules used to manage
      and enforce Access Control for the Node's endpoints and their associated
      cluster instances.</description>

    <attribute side="server" code="0x0000" define="ACL" type="ARRAY" entryType="AccessControlEntryStruct" writable="true">
      <description>ACL</description>
      <access op="read" privilege="administer"/>
      <access op="write" privilege="administer"/>
    </attribute>

    <attribute side="server" code="0x0001" define="EXTENSION" type="ARRAY" entryType="AccessControlExtensionStruct" writable="true" optional="true">
      <description>Extension</description>
      <access op="read" privilege="administer"/>
      <access op="write" privilege="administer"/>
    </attribute>

    <attribute side="server" code="0x0002" define="SUBJECTS_PER_ACCESS_CONTROL_ENTRY" type="int16u" writable="false">
      <description>SubjectsPerAccessControlEntry</description>
      <access op="read" privilege="view"/>
    </attribute>

    <attribute side="server" code="0x0003" define="TARGETS_PER_ACCESS_CONTROL_ENTRY" type="int16u" writable="false">
      <description>TargetsPerAccessControlEntry</description>
      <access op="read" privilege="view"/>
    </attribute>

    <attribute side="server" code="0x0004" define="ACCESS_CONTROL_ENTRIES_PER_FABRIC" type="int16u" writable="false">
      <description>AccessControlEntriesPerFabric</description>
      <access op="read" privilege="view"/>
    </attribute>

    <event side="server" code="0x0000" name="AccessControlEntryChanged" priority="info" isFabricSensitive="true" optional="false">
      <description>The cluster SHALL send AccessControlEntryChanged events whenever its ACL attribute data is changed by an Administrator.</description>
      <field id="1" name="AdminNodeID" type="node_id" isNullable="true"/>
      <field id="2" name="AdminPasscodeID" type="INT16U" isNullable="true"/>
      <field id="3" name="ChangeType" type="ChangeTypeEnum"/>
      <field id="4" name="LatestValue" type="AccessControlEntryStruct" isNullable="true"/>
      <access op="read" privilege="administer"/>
    </event>
    <event side="server" code="0x0001" name="AccessControlExtensionChanged" priority="info" isFabricSensitive="true" optional="false">
      <description>The cluster SHALL send AccessControlExtensionChanged events whenever its extension attribute data is changed by an Administrator.</description>
      <field id="1" name="AdminNodeID" type="node_id" isNullable="true"/>
      <field id="2" name="AdminPasscodeID" type="INT16U" isNullable="true"/>
      <field id="3" name="ChangeType" type="ChangeTypeEnum"/>
      <field id="4" name="LatestValue" type="AccessControlExtensionStruct" isNullable="true"/>
      <access op="read" privilege="administer"/>
    </event>
  </cluster>
</configurator>
