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

    <bitmap name="Feature" type="BITMAP32">
        <cluster code="0x0046"/>
        <field name="CheckInProtocolSupport" mask="0x1"/>
    </bitmap>

    <struct name = "MonitoringRegistrationStruct" isFabricScoped="true">
        <cluster code="0x0046"/>
        <item fieldId="1" name="CheckInNodeID" type="node_id" isFabricSensitive="true"/>
        <item fieldId="2" name="MonitoredSubject" type="INT64U" isFabricSensitive="true"/>
        <item fieldId="3" name="Key" type="OCTET_STRING" length="16" isFabricSensitive="true"/>
    </struct>

    <cluster>
        <domain>General</domain>
        <name>ICD Management</name>
        <code>0x0046</code>
        <define>ICD_MANAGEMENT_CLUSTER</define>
        <description>Allows servers to ensure that listed clients are notified when a server is available for communication.</description>

        <!-- Cluster feature map -->
        <globalAttribute side="server" code="0xFFFC" value="0x0000"/>
        <!-- Current cluster version -->
        <globalAttribute side="either" code="0xFFFD" value="1"/>

        <attribute side="server" code="0x00" define="IDLE_MODE_INTERVAL" type="INT32U" min="500" max="86400000" default="500" writable="false" optional="false" isNullable="false">IdleModeInterval</attribute>
        <attribute side="server" code="0x01" define="ACTIVE_MODE_INTERVAL" type="INT32U" min="300" default="300" writable="false" optional="false" isNullable="false">ActiveModeInterval</attribute>
        <attribute side="server" code="0x02" define="ACTIVE_MODE_THRESHOLD" type="INT16U" min="300" default="300" writable="false" optional="false" isNullable="false">ActiveModeThreshold</attribute>
        <attribute side="server" code="0x03" define="REGISTERED_CLIENTS" type="ARRAY" entryType="MonitoringRegistrationStruct" writable="false" optional="true" isNullable="false">
            <description>RegisteredClients</description>
            <access op="read" privilege="administer"/>
        </attribute>
        <attribute side="server" code="0x04" define="ICD_COUNTER" type="INT32U" writable="false" default="0" optional="true" isNullable="false">
            <description>ICDCounter</description>
            <access op="read" privilege="administer"/>
        </attribute>
        <attribute side="server" code="0x05" define="CLIENTS_SUPPORTED_PER_FABRIC" type="INT16U" min="1" default="1" writable="false" optional="true" isNullable="false">ClientsSupportedPerFabric</attribute>

        <command source="client" code="0x00" name="RegisterClient" response="RegisterClientResponse" isFabricScoped="true" optional="true">
            <description> Register a client to the end device </description>
            <arg name="CheckInNodeID" type="node_id" optional="false"/>
            <arg name="MonitoredSubject" type="INT64U" optional="false"/>
            <arg name="Key" type="OCTET_STRING" length="16" optional="false"/>
            <arg name="VerificationKey" type="OCTET_STRING" length="16" optional="true"/>
            <access op="invoke" privilege="manage"/>
        </command>

        <command source="server" code="0x01" name="RegisterClientResponse" optional="false" disableDefaultResponse="true">
            <description> RegisterClient response command </description>
            <arg name="ICDCounter" type="INT32U" isNullable="false"/>
        </command>

        <command source="client" code="0x02" name="UnregisterClient" isFabricScoped="true" optional="true">
            <description> Unregister a client from an end device </description>
            <arg name="CheckInNodeID" type="node_id"/>
            <arg name="Key" type="OCTET_STRING" length="16" optional="true"/>
            <access op="invoke" privilege="manage"/>
        </command>

        <command source="client" code="0x03" name="StayActiveRequest" optional="true">
            <description>Request the end device to stay in Active Mode for an additional ActiveModeThreshold</description>
            <access op="invoke" privilege="manage"/>
        </command>
    </cluster>
</configurator>
