<?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" />

  <struct name="GroupKeyMapStruct" isFabricScoped="true">
    <cluster code="0x003F"/>
    <item fieldId="1" name="GroupId" type="group_id"/>
    <item fieldId="2" name="GroupKeySetID" type="INT16U"/>
  </struct>

  <struct name="GroupInfoMapStruct" isFabricScoped="true">
    <cluster code="0x003F"/>
    <item fieldId="1" name="GroupId" type="group_id"/>
    <item fieldId="2" name="Endpoints" type="endpoint_no" array="true"/>
    <item fieldId="3" name="GroupName" type="CHAR_STRING" length="16" optional="true"/>
  </struct>

  <struct name="GroupKeySetStruct">
    <cluster code="0x003F"/>
    <item fieldId="0" name="GroupKeySetID" type="INT16U"/>
    <item fieldId="1" name="GroupKeySecurityPolicy" type="GroupKeySecurityPolicy"/>
    <item fieldId="2" name="EpochKey0" type="OCTET_STRING" length="16" isNullable="true"/>
    <item fieldId="3" name="EpochStartTime0" type="epoch_us" isNullable="true"/>
    <item fieldId="4" name="EpochKey1" type="OCTET_STRING" length="16" isNullable="true"/>
    <item fieldId="5" name="EpochStartTime1" type="epoch_us" isNullable="true"/>
    <item fieldId="6" name="EpochKey2" type="OCTET_STRING" length="16" isNullable="true"/>
    <item fieldId="7" name="EpochStartTime2" type="epoch_us" isNullable="true"/>
  </struct>

  <enum name="GroupKeySecurityPolicy" type="ENUM8">
    <cluster code="0x003F"/>
    <item name="TrustFirst" value="0x00"/>
    <item name="CacheAndSync" value="0x01"/>
  </enum>

  <cluster>
    <domain>General</domain>
    <name>Group Key Management</name>
    <code>0x003F</code>
    <define>GROUP_KEY_MANAGEMENT_CLUSTER</define>
    <description>The Group Key Management Cluster is the mechanism by which group keys are managed.</description>
    <attribute side="server" code="0x0000" define="GROUP_KEY_MAP" type="ARRAY" length="254" entryType="GroupKeyMapStruct" writable="true" optional="false">
      <description>GroupKeyMap</description>
      <access op="read" privilege="view"/>
      <access op="write" privilege="manage"/>
    </attribute>
    <attribute side="server" code="0x0001" define="GROUP_TABLE" type="ARRAY" length="254" entryType="GroupInfoMapStruct" writable="false" optional="false">GroupTable</attribute>
    <attribute side="server" code="0x0002" define="MAX_GROUPS_PER_FABRIC" type="INT16U" writable="false" optional="false">MaxGroupsPerFabric</attribute>
    <attribute side="server" code="0x0003" define="MAX_GROUP_KEYS_PER_FABRIC" type="INT16U" writable="false" optional="false">MaxGroupKeysPerFabric</attribute>

    <command source="client" code="0x00" name="KeySetWrite" isFabricScoped="true" optional="false" cli="zcl GroupKeyManagement KeySetWrite">
      <description>Revoke a Root Key from a Group</description>
      <arg name="GroupKeySet" type="GroupKeySetStruct"/>
      <access op="invoke" privilege="administer"/>
    </command>

    <command source="client" code="0x01" name="KeySetRead" isFabricScoped="true" response="KeySetReadResponse" optional="false" cli="zcl GroupKeyManagement KeySetRead">
      <description>Revoke a Root Key from a Group</description>
      <arg name="GroupKeySetID" type="INT16U"/>
      <access op="invoke" privilege="administer"/>
    </command>

    <command source="server" code="0x02" name="KeySetReadResponse" optional="false" disableDefaultResponse="true">
      <description>
       Response to KeySetRead
      </description>
      <arg name="GroupKeySet" type="GroupKeySetStruct"/>
    </command>

    <command source="client" code="0x03" name="KeySetRemove" isFabricScoped="true" optional="false" cli="zcl GroupKeyManagement KeySetRemove">
      <description>Revoke a Root Key from a Group</description>
      <arg name="GroupKeySetID" type="INT16U"/>
      <access op="invoke" privilege="administer"/>
    </command>

    <command source="client" code="0x04" name="KeySetReadAllIndices" response="KeySetReadAllIndicesResponse" isFabricScoped="true" optional="false" cli="zcl GroupKeyManagement KeySetReadAllIndices">
      <description>Return the list of Group Key Sets associated with the accessing fabric</description>
      <arg name="GroupKeySetIDs" type="INT16U" array="true"/>
      <access op="invoke" privilege="administer"/>
    </command>

    <command source="server" code="0x05" name="KeySetReadAllIndicesResponse" optional="false" disableDefaultResponse="true">
      <description>
        Reseponse to KeySetReadAllIndices
      </description>
        <arg name="GroupKeySetIDs" type="INT16U" array="true"/>
    </command>

  </cluster>
</configurator>
