<?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="GroupKeySecurityPolicyEnum"/>
    <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="GroupKeySecurityPolicyEnum" 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>Write a new set of keys for the given key set id.</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>Read the keys for a given key set id.</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>
