blob: 39bbe4f5dc2a6a55660b4aa8de2ccc15a28ffc17 [file]
<?xml version="1.0"?>
<!--
Copyright (c) 2023 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="Test" spec="test-0.0"/>
<struct name="ProvisionalStruct" apiMaturity="provisional">
<cluster code="0x1122"/>
<item fieldId="0" name="Foo" type="INT32U" isNullable="true"/>
<item fieldId="1" name="Bar" type="INT16U" isNullable="true"/>
</struct>
<struct name="StableStruct">
<cluster code="0x1122"/>
<item fieldId="0" name="Foo" type="INT24U" isNullable="true"/>
<item fieldId="1" name="Baz" type="INT8U" isNullable="true" apiMaturity="provisional"/>
</struct>
<enum name="StableEnum" type="ENUM8">
<cluster code="0x1122"/>
<item name="Alpha" value="0x0"/>
<item name="Beta" value="0x1" apiMaturity="provisional"/>
</enum>
<enum name="StableEnum2" type="ENUM8" apiMaturity="provisional">
<cluster code="0x1122"/>
<item name="item1" value="0x0"/>
<item name="item2" value="0x1"/>
</enum>
<bitmap name="StableBitmap" type="BITMAP8">
<cluster code="0x1122"/>
<field name="First" mask="0x1"/>
<field name="Second" mask="0x2" apiMaturity="provisional"/>
</bitmap>
<bitmap name="StableBitmap2" type="BITMAP8" apiMaturity="provisional">
<cluster code="0x1122"/>
<field name="field1" mask="0x1"/>
<field name="field2" mask="0x2"/>
</bitmap>
<cluster apiMaturity="internal">
<name>Api Maturity Test</name>
<domain>Test</domain>
<description>A Test for API maturity tags</description>
<code>0x1122</code>
<define>API_MATURITY_TEST</define>
<client tick="false" init="false">false</client>
<server tick="false" init="false">true</server>
<attribute side="server" code="0x0000" define="STABLE_ATTRIBUTE" type="INT8U" writable="true" optional="true">StableAttribute</attribute>
<attribute apiMaturity="provisional" side="server" code="0x0001" define="PROVISIONAL_ATTRIBUTE" type="INT8U" writable="true" optional="true">ProvisionalAttribute</attribute>
<attribute side="server" code="0x0002" define="STABLE_ATTRIBUTE" type="INT8U" writable="true" optional="true">StableAttribute</attribute>
<attribute side="server" code="0x0003" define="STRUCT_ATTR_1" type="StableStruct" writable="true" optional="true">StructAttr1</attribute>
<attribute side="server" code="0x0004" define="STRUCT_ATTR_2" type="ProvisionalStruct" writable="true" optional="true">StructAttr2</attribute>
<!-- No 'apiMaturity' attribute; <provisionalConform/> fills it in as 'provisional'. -->
<attribute side="server" code="0x0005" define="CONFORM_PROVISIONAL_ATTR" type="INT8U" writable="true" optional="true">ConformProvisionalAttr<provisionalConform/></attribute>
<!-- No 'apiMaturity' attribute; provisional under <otherwiseConform> (spec-style). -->
<attribute side="server" code="0x0006" define="OTHERWISE_PROVISIONAL_ATTR" type="INT8U" writable="true" optional="true">OtherwiseProvisionalAttr<otherwiseConform>
<provisionalConform/>
<mandatoryConform>
<greaterOrEqualTerm>
<revision value="current"/>
<revision value="2"/>
</greaterOrEqualTerm>
</mandatoryConform>
</otherwiseConform></attribute>
<!-- Explicit 'apiMaturity' always wins; conformance never overrides it even when they disagree. -->
<attribute apiMaturity="deprecated" side="server" code="0x0007" define="CONTRADICTORY_ATTR" type="INT8U" writable="true" optional="true">ContradictoryApiMaturityAttr<provisionalConform/></attribute>
<!-- Explicit 'internal' is Silabs-specific and preserved regardless of conformance. -->
<attribute apiMaturity="internal" side="server" code="0x0008" define="INTERNAL_WITH_M_ATTR" type="INT8U" writable="true" optional="true">InternalWithMandatoryConformAttr<mandatoryConform/></attribute>
<command source="client" code="0x00" name="StableCommand" response="StableCommandResponse" optional="false" apiMaturity="provisional">
<description>A Test command</description>
<access op="invoke" privilege="administer"/>
<arg name="First" type="INT16U"/>
<arg name="Second" type="INT64U"/>
</command>
<command source="server" code="0x01" name="StableCommandResponse" optional="false">
<description>A Test command reply</description>
<arg name="FirstReply" type="INT16U"/>
<arg name="SecondReply" type="CHAR_STRING" apiMaturity="provisional"/>
</command>
<event code="0x0001" name="StableEvent" priority="info" side="server">
<description>A Test event</description>
<field id="1" name="arg1" type="INT8U" isNullable="true"/>
<field id="2" name="arg2" type="INT32U" array="true"/>
</event>
<event code="0x0002" name="ProvisionalEvent" priority="info" side="server" apiMaturity="provisional">
<description>A Provisional Test event</description>
<field id="1" name="arg1" type="INT8U" isNullable="true"/>
<field id="2" name="arg2" type="INT32U" array="true"/>
<field id="3" name="arg3" type="INT32U" array="true" apiMaturity="provisional"/>
</event>
</cluster>
</configurator>