<?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="UserActiveModeTriggerBitmap" type="bitmap32">
        <cluster code="0x0046"/>
        <field name="PowerCycle" mask="0x1"/>
        <field name="SettingsMenu" mask="0x2"/>
        <field name="CustomInstruction" mask="0x4"/>
        <field name="DeviceManual" mask="0x8"/>
        <field name="ActuateSensor" mask="0x10"/>
        <field name="ActuateSensorSeconds" mask="0x20"/>
        <field name="ActuateSensorTimes" mask="0x40"/>
        <field name="ActuateSensorLightsBlink" mask="0x80"/>
        <field name="ResetButton" mask="0x100"/>
        <field name="ResetButtonLightsBlink" mask="0x200"/>
        <field name="ResetButtonSeconds" mask="0x400"/>
        <field name="ResetButtonTimes" mask="0x800"/>
        <field name="SetupButton" mask="0x1000"/>
        <field name="SetupButtonSeconds" mask="0x2000"/>
        <field name="SetupButtonLightsBlink" mask="0x4000"/>
        <field name="SetupButtonTimes" mask="0x8000"/>
        <field name="AppDefinedButton" mask="0x10000"/>   
    </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"/>
        <!-- RESERVED = 0x03 -->
    </struct>

    <enum name="OperatingModeEnum" type="enum8">
    <cluster code="0x0046" />
    <item value="0" name="SIT" />
    <item value="1" name="LIT" />
    </enum>

    <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="2"/>

        <features>
            <feature bit="0" code="CIP" name="CheckInProtocolSupport" summary="Device supports attributes and commands for the Check-In Protocol support.">
            <otherwiseConform>
                <provisionalConform/>
                <mandatoryConform>
                <feature name="LITS"/>
                </mandatoryConform>
                <optionalConform/>
            </otherwiseConform>
            </feature>
            <feature bit="1" code="UAT" name="UserActiveModeTrigger" summary="Device supports the user active mode trigger feature.">
            <otherwiseConform>
                <provisionalConform/>
                <mandatoryConform>
                <feature name="LITS"/>
                </mandatoryConform>
                <optionalConform/>
            </otherwiseConform>
            </feature>
            <feature bit="2" code="LITS" name="LongIdleTimeSupport" summary="Device supports operating as a Long Idle Time ICD.">
            <otherwiseConform>
                <provisionalConform/>
                <optionalConform/>
            </otherwiseConform>
            </feature>
        </features>

        <attribute side="server" code="0x00" define="IDLE_MODE_DURATION" type="int32u" min="1" max="64800" default="1" writable="false" optional="false" isNullable="false">IdleModeDuration</attribute>
        <attribute side="server" code="0x01" define="ACTIVE_MODE_DURATION" type="int32u" default="300" writable="false" optional="false" isNullable="false">ActiveModeDuration</attribute>
        <attribute side="server" code="0x02" define="ACTIVE_MODE_THRESHOLD" type="int16u" 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>
        <attribute side="server" code="0x06" define="USER_ACTIVE_MODE_TRIGGER_HINT" type="UserActiveModeTriggerBitmap" writable="false" optional="true" isNullable="false">UserActiveModeTriggerHint</attribute>
        <attribute side="server" code="0x07" define="USER_ACTIVE_MODE_TRIGGER_INSTRUCTION" type="char_string" length="128" writable="false" optional="true" isNullable="false">UserActiveModeTriggerInstruction</attribute>
        <attribute side="server" code="0x08" define="OPERATING_MODE" type="OperatingModeEnum" default="0" writable="false" optional="true" isNullable="false">OperatingMode</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="true" 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="VerificationKey" type="octet_string" length="16" optional="true"/>
            <access op="invoke" privilege="manage"/>
        </command>

        <command source="client" code="0x03" name="StayActiveRequest" response="StayActiveResponse" optional="true">
            <description>Request the end device to stay in Active Mode for an additional ActiveModeThreshold</description>
            <access op="invoke" privilege="manage"/>
            <arg name="StayActiveDuration" type="int32u" isNullable="false"/>
        </command>

        <command source="server" code="0x04" name="StayActiveResponse" optional="true" disableDefaultResponse="true">
            <description>StayActiveRequest response command</description>
            <arg name="PromisedActiveDuration" type="int32u" isNullable="false"/>
        </command>
    </cluster>
</configurator>
