Skip to content

Commit

Permalink
Generate Conformance Data with Alchemy (#36186)
Browse files Browse the repository at this point in the history
* generate conformance with Alchemy

* add conform to color-control cluster extension
  • Loading branch information
ethanzhouyc authored Oct 23, 2024
1 parent 0a1867f commit 334c669
Show file tree
Hide file tree
Showing 99 changed files with 6,759 additions and 2,033 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -113,29 +113,58 @@ limitations under the License.
<description>ACL</description>
<access op="read" privilege="administer"/>
<access op="write" privilege="administer"/>
<mandatoryConform/>
</attribute>

<attribute side="server" code="0x0001" define="EXTENSION" type="array" entryType="AccessControlExtensionStruct" writable="true" optional="true">
<description>Extension</description>
<access op="read" privilege="administer"/>
<access op="write" privilege="administer"/>
<mandatoryConform>
<feature name="EXTS"/>
</mandatoryConform>
</attribute>

<attribute side="server" code="0x0002" define="SUBJECTS_PER_ACCESS_CONTROL_ENTRY" type="int16u" min="4" default="4">SubjectsPerAccessControlEntry</attribute>
<attribute side="server" code="0x0003" define="TARGETS_PER_ACCESS_CONTROL_ENTRY" type="int16u" min="3" default="3">TargetsPerAccessControlEntry</attribute>
<attribute side="server" code="0x0004" define="ACCESS_CONTROL_ENTRIES_PER_FABRIC" type="int16u" min="4" default="4">AccessControlEntriesPerFabric</attribute>
<attribute code="0x0005" side="server" define="COMMISSIONING_ARL" type="array" entryType="CommissioningAccessRestrictionEntryStruct" optional="true">CommissioningARL</attribute>
<attribute code="0x0006" side="server" define="ARL" type="array" entryType="AccessRestrictionEntryStruct" optional="true">ARL</attribute>

<attribute side="server" code="0x0002" define="SUBJECTS_PER_ACCESS_CONTROL_ENTRY" type="int16u" min="4" default="4">
<description>SubjectsPerAccessControlEntry</description>
<mandatoryConform/>
</attribute>
<attribute side="server" code="0x0003" define="TARGETS_PER_ACCESS_CONTROL_ENTRY" type="int16u" min="3" default="3">
<description>TargetsPerAccessControlEntry</description>
<mandatoryConform/>
</attribute>
<attribute side="server" code="0x0004" define="ACCESS_CONTROL_ENTRIES_PER_FABRIC" type="int16u" min="4" default="4">
<description>AccessControlEntriesPerFabric</description>
<mandatoryConform/>
</attribute>
<attribute code="0x0005" side="server" define="COMMISSIONING_ARL" type="array" entryType="CommissioningAccessRestrictionEntryStruct" optional="true">
<description>CommissioningARL</description>
<mandatoryConform>
<feature name="MNGD"/>
</mandatoryConform>
</attribute>
<attribute code="0x0006" side="server" define="ARL" type="array" entryType="AccessRestrictionEntryStruct" optional="true">
<description>ARL</description>
<mandatoryConform>
<feature name="MNGD"/>
</mandatoryConform>
</attribute>

<command code="0x00" source="client" name="ReviewFabricRestrictions" isFabricScoped="true" optional="true" response="ReviewFabricRestrictionsResponse">
<description>This command signals to the service associated with the device vendor that the fabric administrator would like a review of the current restrictions on the accessing fabric.</description>
<access op="invoke" privilege="administer"/>
<arg id="0" name="ARL" array="true" type="CommissioningAccessRestrictionEntryStruct"/>
</command>
<mandatoryConform>
<feature name="MNGD"/>
</mandatoryConform>
</command>

<command code="0x01" source="server" name="ReviewFabricRestrictionsResponse" optional="true" disableDefaultResponse="true">
<description>Returns the review token for the request, which can be used to correlate with a FabricRestrictionReviewUpdate event.</description>
<arg id="0" name="Token" type="int64u"/>
<mandatoryConform>
<feature name="MNGD"/>
</mandatoryConform>
</command>

<event side="server" code="0x0000" name="AccessControlEntryChanged" priority="info" isFabricSensitive="true">
Expand All @@ -145,6 +174,7 @@ limitations under the License.
<field id="3" name="ChangeType" type="ChangeTypeEnum" min="0x00" max="0x02"/>
<field id="4" name="LatestValue" type="AccessControlEntryStruct" isNullable="true"/>
<access op="read" privilege="administer"/>
<mandatoryConform/>
</event>

<event side="server" code="0x0001" name="AccessControlExtensionChanged" priority="info" isFabricSensitive="true" optional="true">
Expand All @@ -154,6 +184,9 @@ limitations under the License.
<field id="3" name="ChangeType" type="ChangeTypeEnum" min="0x00" max="0x02"/>
<field id="4" name="LatestValue" type="AccessControlExtensionStruct" isNullable="true"/>
<access op="read" privilege="administer"/>
<mandatoryConform>
<feature name="EXTS"/>
</mandatoryConform>
</event>

<event side="server" code="0x0002" name="FabricRestrictionReviewUpdate" priority="info" isFabricSensitive="true" optional="true">
Expand All @@ -162,6 +195,9 @@ limitations under the License.
<field id="1" name="Instruction" type="long_char_string" optional="true" length="512"/>
<field id="2" name="ARLRequestFlowUrl" type="long_char_string" optional="true" length="256"/>
<access op="read" privilege="administer"/>
<mandatoryConform>
<feature name="MNGD"/>
</mandatoryConform>
</event>
</cluster>
</configurator>
Original file line number Diff line number Diff line change
Expand Up @@ -28,31 +28,36 @@ limitations under the License.

<command source="client" code="0x00" name="GetSetupPIN" isFabricScoped="true" response="GetSetupPINResponse" mustUseTimedInvoke="true" optional="false">
<description>Upon receipt, the Content App checks if the account associated with the client Temp Account Identifier Rotating ID is the same acount that is active on the given Content App. If the accounts are the same, then the Content App includes the Setup PIN in the GetSetupPIN Response.</description>
<access op="invoke" role="administer" />
<access op="invoke" role="administer"/>
<arg name="TempAccountIdentifier" minLength="16" length="100" type="char_string"/>
<mandatoryConform/>
</command>

<command source="client" code="0x02" name="Login" isFabricScoped="true" mustUseTimedInvoke="true" optional="false">
<description>Upon receipt, the Content App checks if the account associated with the client’s Temp Account Identifier (Rotating ID) has a current active Setup PIN with the given value. If the Setup PIN is valid for the user account associated with the Temp Account Identifier, then the Content App MAY make that user account active.</description>
<access op="invoke" role="administer" />
<access op="invoke" role="administer"/>
<arg name="TempAccountIdentifier" minLength="16" length="100" type="char_string"/>
<arg name="SetupPIN" minLength="8" type="char_string"/>
<arg name="Node" type="node_id" optional="true" />
<arg name="Node" type="node_id" optional="true"/>
<mandatoryConform/>
</command>

<command source="client" code="0x03" name="Logout" isFabricScoped="true" mustUseTimedInvoke="true" optional="false">
<description>The purpose of this command is to instruct the Content App to clear the current user account. This command SHOULD be used by clients of a Content App to indicate the end of a user session.</description>
<arg name="Node" type="node_id" optional="true"/>
<mandatoryConform/>
</command>

<command source="server" code="0x01" name="GetSetupPINResponse" optional="false" disableDefaultResponse="true">
<description>This message is sent in response to the GetSetupPIN Request, and contains the Setup PIN code, or null when the accounts identified in the request does not match the active account of the running Content App.</description>
<arg name="SetupPIN" type="char_string"/>
<mandatoryConform/>
</command>

<event side="server" code="0x00" priority="critical" name="LoggedOut" optional="false">
<description>This event can be used by the Content App to indicate that the current user has logged out. In response to this event, the Fabric Admin SHALL remove access to this Content App by the specified Node. If no Node is provided, then the Fabric Admin SHALL remove access to all non-Admin Nodes.</description>
<field id="0" name="Node" type="node_id" optional="true"/>
<optionalConform/>
</event>

</cluster>
Expand Down
33 changes: 22 additions & 11 deletions src/app/zap-templates/zcl/data-model/chip/actions-cluster.xml
Original file line number Diff line number Diff line change
Expand Up @@ -89,11 +89,20 @@ limitations under the License.
<code>0x0025</code>
<define>ACTIONS_CLUSTER</define>
<description>This cluster provides a standardized way for a Node (typically a Bridge, but could be any Node) to expose action information.</description>

<attribute side="server" code="0x0000" define="ACTION_LIST" type="array" entryType="ActionStruct" length="256" writable="false" optional="false">ActionList</attribute>
<attribute side="server" code="0x0001" define="ENDPOINT_LIST" type="array" entryType="EndpointListStruct" length="256" writable="false" optional="false">EndpointLists</attribute>
<attribute side="server" code="0x0002" define="SETUP_URL" type="LONG_CHAR_STRING" length="512" writable="false" optional="true">SetupURL</attribute>


<attribute side="server" code="0x0000" define="ACTION_LIST" type="array" entryType="ActionStruct" length="256">
<description>ActionList</description>
<mandatoryConform/>
</attribute>
<attribute side="server" code="0x0001" define="ENDPOINT_LIST" type="array" entryType="EndpointListStruct" length="256">
<description>EndpointLists</description>
<mandatoryConform/>
</attribute>
<attribute side="server" code="0x0002" define="SETUP_URL" type="LONG_CHAR_STRING" length="512" optional="true">
<description>SetupURL</description>
<optionalConform/>
</attribute>

<command source="client" code="0x00" name="InstantAction" optional="true">
<description>This command triggers an action (state change) on the involved endpoints.</description>
<arg name="ActionID" type="int16u"/>
Expand Down Expand Up @@ -173,17 +182,19 @@ limitations under the License.

<event side="server" code="0x00" priority="info" name="StateChanged" optional="false">
<description>This event SHALL be generated when there is a change in the Status of an ActionID.</description>
<field id="0" name="ActionID" type="int16u" />
<field id="1" name="InvokeID" type="int32u" />
<field id="0" name="ActionID" type="int16u"/>
<field id="1" name="InvokeID" type="int32u"/>
<field id="2" name="NewState" type="ActionStateEnum" />
<mandatoryConform/>
</event>

<event side="server" code="0x01" priority="info" name="ActionFailed" optional="false">
<description>This event SHALL be generated when there is some error which prevents the action from its normal planned execution.</description>
<field id="0" name="ActionID" type="int16u" />
<field id="1" name="InvokeID" type="int32u" />
<field id="2" name="NewState" type="ActionStateEnum" />
<field id="3" name="Error" type="ActionErrorEnum" />
<field id="0" name="ActionID" type="int16u"/>
<field id="1" name="InvokeID" type="int32u"/>
<field id="2" name="NewState" type="ActionStateEnum"/>
<field id="3" name="Error" type="ActionErrorEnum"/>
<mandatoryConform/>
</event>

</cluster>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,10 +43,19 @@ limitations under the License.
<optionalConform/>
</feature>
</features>
<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="vendor_id" writable="false" isNullable="true" optional="false">AdminVendorId</attribute>

<attribute side="server" code="0x0000" define="WINDOW_STATUS" type="CommissioningWindowStatusEnum">
<description>WindowStatus</description>
<mandatoryConform/>
</attribute>
<attribute side="server" code="0x0001" define="ADMIN_FABRIC_INDEX" type="fabric_idx" isNullable="true">
<description>AdminFabricIndex</description>
<mandatoryConform/>
</attribute>
<attribute side="server" code="0x0002" define="ADMIN_VENDOR_ID" type="vendor_id" isNullable="true">
<description>AdminVendorId</description>
<mandatoryConform/>
</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"/>
Expand All @@ -55,17 +64,22 @@ limitations under the License.
<arg name="Iterations" type="int32u"/>
<arg name="Salt" type="octet_string" length="32"/>
<access op="invoke" privilege="administer"/>
<mandatoryConform/>
</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"/>
<mandatoryConform>
<feature name="BC"/>
</mandatoryConform>
</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"/>
<mandatoryConform/>
</command>

</cluster>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,10 @@ limitations under the License.
</features>

<!-- Attributes -->
<attribute side="server" code="0x0000" define="AIR_QUALITY" type="AirQualityEnum" min="0" max="6" writable="false" isNullable="false" default="0" optional="false">AirQuality</attribute>
<attribute side="server" code="0x0000" define="AIR_QUALITY" type="AirQualityEnum" min="0" max="6" default="0">
<description>AirQuality</description>
<mandatoryConform/>
</attribute>
</cluster>

<!-- Cluster Data Types -->
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,16 +24,38 @@ limitations under the License.
<client init="false" tick="false">true</client>
<server init="false" tick="false">true</server>
<description>This cluster provides information about an application running on a TV or media player device which is represented as an endpoint.</description>
<attribute side="server" code="0x0000" define="APPLICATION_VENDOR_NAME" type="char_string" default="" length="32" writable="false" optional="true">VendorName</attribute>
<attribute side="server" code="0x0001" define="APPLICATION_VENDOR_ID" type="vendor_id" default="0x0" min="0x0000" max="0xFFFF" writable="false" optional="true">VendorID</attribute>
<attribute side="server" code="0x0002" define="APPLICATION_NAME" type="long_char_string" length="256" writable="false" optional="false">ApplicationName</attribute>
<attribute side="server" code="0x0003" define="APPLICATION_PRODUCT_ID" type="int16u" default="0x0" min="0x0000" max="0xFFFF" writable="false" optional="true">ProductID</attribute>
<attribute side="server" code="0x0004" define="APPLICATION_APP" type="ApplicationStruct" writable="false" optional="false">Application</attribute>
<attribute side="server" code="0x0005" define="APPLICATION_STATUS" type="ApplicationStatusEnum" default="0x01" min="0x00" max="0xFF" writable="false" optional="false">Status</attribute>
<attribute side="server" code="0x0006" define="APPLICATION_VERSION" type="char_string" length="32" writable="false" optional="false">ApplicationVersion</attribute>
<attribute side="server" code="0x0007" define="APPLICATION_ALLOWED_VENDOR_LIST" type="array" entryType="vendor_id" length="32" writable="false" optional="false">
<description>AllowedVendorList</description>
<access op="read" role="administer"/>
<attribute side="server" code="0x0000" define="APPLICATION_VENDOR_NAME" type="char_string" length="32" optional="true">
<description>VendorName</description>
<optionalConform/>
</attribute>
<attribute side="server" code="0x0001" define="APPLICATION_VENDOR_ID" type="vendor_id" optional="true">
<description>VendorID</description>
<optionalConform/>
</attribute>
<attribute side="server" code="0x0002" define="APPLICATION_NAME" type="long_char_string" length="256">
<description>ApplicationName</description>
<mandatoryConform/>
</attribute>
<attribute side="server" code="0x0003" define="APPLICATION_PRODUCT_ID" type="int16u" optional="true">
<description>ProductID</description>
<optionalConform/>
</attribute>
<attribute side="server" code="0x0004" define="APPLICATION_APP" type="ApplicationStruct">
<description>Application</description>
<mandatoryConform/>
</attribute>
<attribute side="server" code="0x0005" define="APPLICATION_STATUS" type="ApplicationStatusEnum" default="0x01" min="0x00" max="0xFF">
<description>Status</description>
<mandatoryConform/>
</attribute>
<attribute side="server" code="0x0006" define="APPLICATION_VERSION" type="char_string" length="32">
<description>ApplicationVersion</description>
<mandatoryConform/>
</attribute>
<attribute side="server" code="0x0007" define="APPLICATION_ALLOWED_VENDOR_LIST" type="array" entryType="vendor_id" length="32">
<description>AllowedVendorList</description>
<access op="read" role="administer"/>
<mandatoryConform/>
</attribute>

</cluster>
Expand Down
Loading

0 comments on commit 334c669

Please sign in to comment.