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

  <enum name="StatusCode" type="ENUM8">
    <cluster code="0x003c"/>
     <item name="Busy" value="0x02"/>
     <item name="PAKEParameterError" value="0x03"/>
     <item name="WindowNotOpen" value="0x04"/>
  </enum>

  <enum name="CommissioningWindowStatusEnum" type="ENUM8">
    <cluster code="0x003c"/>
     <item name="WindowNotOpen" value="0x00"/>
     <item name="EnhancedWindowOpen" value="0x01"/>
     <item name="BasicWindowOpen" value="0x02"/>
  </enum>

  <cluster>
    <name>Administrator Commissioning</name>
    <domain>General</domain>
    <code>0x003c</code>
    <define>ADMINISTRATOR_COMMISSIONING_CLUSTER</define>
    <description>Commands to trigger a Node to allow a new Administrator to commission it.</description>

    <attribute side="server" code="0x0000" define="WINDOW_STATUS" type="CommissioningWindowStatusEnum" writable="false" optional="false">WindowStatus</attribute>
    <attribute side="server" code="0x0001" define="ADMIN_FABRIC_INDEX" type="fabric_idx" writable="false" isNullable="true" optional="false">AdminFabricIndex</attribute>
    <attribute side="server" code="0x0002" define="ADMIN_VENDOR_ID" type="INT16U" writable="false" isNullable="true" optional="false">AdminVendorId</attribute>

    <command source="client" code="0x00" name="OpenCommissioningWindow" mustUseTimedInvoke="true" optional="false">
      <description>This command is used by a current Administrator to instruct a Node to go into commissioning mode using enhanced commissioning method.</description>
      <arg name="CommissioningTimeout" type="INT16U"/>
      <arg name="PAKEPasscodeVerifier" type="OCTET_STRING"/>
      <arg name="Discriminator" type="INT16U"/>
      <arg name="Iterations" type="INT32U"/>
      <arg name="Salt" type="OCTET_STRING"/>
      <access op="invoke" privilege="administer"/>
    </command>

    <command source="client" code="0x01" name="OpenBasicCommissioningWindow" mustUseTimedInvoke="true" optional="true">
      <description>This command is used by a current Administrator to instruct a Node to go into commissioning mode using basic commissioning method, if the node supports it.</description>
      <arg name="CommissioningTimeout" type="INT16U"/>
      <access op="invoke" privilege="administer"/>
    </command>

    <command source="client" code="0x02" name="RevokeCommissioning" mustUseTimedInvoke="true" optional="false">
      <description>This command is used by a current Administrator to instruct a Node to revoke any active Open Commissioning Window or Open Basic Commissioning Window command.</description>
      <access op="invoke" privilege="administer"/>
    </command>

  </cluster>
</configurator>
