|  | /* | 
|  | * | 
|  | *    Copyright (c) 2022 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. | 
|  | */ | 
|  |  | 
|  | // THIS FILE IS GENERATED BY ZAP | 
|  |  | 
|  | #pragma once | 
|  |  | 
|  | #include <cstdint> | 
|  | #include <string> | 
|  | #include <type_traits> | 
|  |  | 
|  | #include <app-common/zap-generated/cluster-objects.h> | 
|  | #include <commands/clusters/ClusterCommand.h> | 
|  | #include <commands/clusters/ComplexArgument.h> | 
|  | #include <commands/clusters/ReportCommand.h> | 
|  | #include <commands/clusters/WriteAttributeCommand.h> | 
|  |  | 
|  | /*----------------------------------------------------------------------------*\ | 
|  | | Cluster Name                                                        |   ID   | | 
|  | |---------------------------------------------------------------------+--------| | 
|  | | Identify                                                            | 0x0003 | | 
|  | | Groups                                                              | 0x0004 | | 
|  | | Scenes                                                              | 0x0005 | | 
|  | | OnOff                                                               | 0x0006 | | 
|  | | OnOffSwitchConfiguration                                            | 0x0007 | | 
|  | | LevelControl                                                        | 0x0008 | | 
|  | | BinaryInputBasic                                                    | 0x000F | | 
|  | | PulseWidthModulation                                                | 0x001C | | 
|  | | Descriptor                                                          | 0x001D | | 
|  | | Binding                                                             | 0x001E | | 
|  | | AccessControl                                                       | 0x001F | | 
|  | | Actions                                                             | 0x0025 | | 
|  | | BasicInformation                                                    | 0x0028 | | 
|  | | OtaSoftwareUpdateProvider                                           | 0x0029 | | 
|  | | OtaSoftwareUpdateRequestor                                          | 0x002A | | 
|  | | LocalizationConfiguration                                           | 0x002B | | 
|  | | TimeFormatLocalization                                              | 0x002C | | 
|  | | UnitLocalization                                                    | 0x002D | | 
|  | | PowerSourceConfiguration                                            | 0x002E | | 
|  | | PowerSource                                                         | 0x002F | | 
|  | | GeneralCommissioning                                                | 0x0030 | | 
|  | | NetworkCommissioning                                                | 0x0031 | | 
|  | | DiagnosticLogs                                                      | 0x0032 | | 
|  | | GeneralDiagnostics                                                  | 0x0033 | | 
|  | | SoftwareDiagnostics                                                 | 0x0034 | | 
|  | | ThreadNetworkDiagnostics                                            | 0x0035 | | 
|  | | WiFiNetworkDiagnostics                                              | 0x0036 | | 
|  | | EthernetNetworkDiagnostics                                          | 0x0037 | | 
|  | | TimeSynchronization                                                 | 0x0038 | | 
|  | | BridgedDeviceBasicInformation                                       | 0x0039 | | 
|  | | Switch                                                              | 0x003B | | 
|  | | AdministratorCommissioning                                          | 0x003C | | 
|  | | OperationalCredentials                                              | 0x003E | | 
|  | | GroupKeyManagement                                                  | 0x003F | | 
|  | | FixedLabel                                                          | 0x0040 | | 
|  | | UserLabel                                                           | 0x0041 | | 
|  | | ProxyConfiguration                                                  | 0x0042 | | 
|  | | ProxyDiscovery                                                      | 0x0043 | | 
|  | | ProxyValid                                                          | 0x0044 | | 
|  | | BooleanState                                                        | 0x0045 | | 
|  | | ModeSelect                                                          | 0x0050 | | 
|  | | HepaFilterMonitoring                                                | 0x0071 | | 
|  | | ActivatedCarbonFilterMonitoring                                     | 0x0072 | | 
|  | | CeramicFilterMonitoring                                             | 0x0073 | | 
|  | | ElectrostaticFilterMonitoring                                       | 0x0074 | | 
|  | | UvFilterMonitoring                                                  | 0x0075 | | 
|  | | IonizingFilterMonitoring                                            | 0x0076 | | 
|  | | ZeoliteFilterMonitoring                                             | 0x0077 | | 
|  | | OzoneFilterMonitoring                                               | 0x0078 | | 
|  | | WaterTankMonitoring                                                 | 0x0079 | | 
|  | | FuelTankMonitoring                                                  | 0x007A | | 
|  | | InkCartridgeMonitoring                                              | 0x007B | | 
|  | | TonerCartridgeMonitoring                                            | 0x007C | | 
|  | | DoorLock                                                            | 0x0101 | | 
|  | | WindowCovering                                                      | 0x0102 | | 
|  | | BarrierControl                                                      | 0x0103 | | 
|  | | PumpConfigurationAndControl                                         | 0x0200 | | 
|  | | Thermostat                                                          | 0x0201 | | 
|  | | FanControl                                                          | 0x0202 | | 
|  | | ThermostatUserInterfaceConfiguration                                | 0x0204 | | 
|  | | ColorControl                                                        | 0x0300 | | 
|  | | BallastConfiguration                                                | 0x0301 | | 
|  | | IlluminanceMeasurement                                              | 0x0400 | | 
|  | | TemperatureMeasurement                                              | 0x0402 | | 
|  | | PressureMeasurement                                                 | 0x0403 | | 
|  | | FlowMeasurement                                                     | 0x0404 | | 
|  | | RelativeHumidityMeasurement                                         | 0x0405 | | 
|  | | OccupancySensing                                                    | 0x0406 | | 
|  | | WakeOnLan                                                           | 0x0503 | | 
|  | | Channel                                                             | 0x0504 | | 
|  | | TargetNavigator                                                     | 0x0505 | | 
|  | | MediaPlayback                                                       | 0x0506 | | 
|  | | MediaInput                                                          | 0x0507 | | 
|  | | LowPower                                                            | 0x0508 | | 
|  | | KeypadInput                                                         | 0x0509 | | 
|  | | ContentLauncher                                                     | 0x050A | | 
|  | | AudioOutput                                                         | 0x050B | | 
|  | | ApplicationLauncher                                                 | 0x050C | | 
|  | | ApplicationBasic                                                    | 0x050D | | 
|  | | AccountLogin                                                        | 0x050E | | 
|  | | ElectricalMeasurement                                               | 0x0B04 | | 
|  | | ClientMonitoring                                                    | 0x1046 | | 
|  | | UnitTesting                                                         | 0xFFF1FC05| | 
|  | | FaultInjection                                                      | 0xFFF1FC06| | 
|  | \*----------------------------------------------------------------------------*/ | 
|  |  | 
|  | /*----------------------------------------------------------------------------*\ | 
|  | | Cluster Identify                                                    | 0x0003 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Commands:                                                           |        | | 
|  | | * Identify                                                          |   0x00 | | 
|  | | * TriggerEffect                                                     |   0x40 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Attributes:                                                         |        | | 
|  | | * IdentifyTime                                                      | 0x0000 | | 
|  | | * IdentifyType                                                      | 0x0001 | | 
|  | | * GeneratedCommandList                                              | 0xFFF8 | | 
|  | | * AcceptedCommandList                                               | 0xFFF9 | | 
|  | | * EventList                                                         | 0xFFFA | | 
|  | | * AttributeList                                                     | 0xFFFB | | 
|  | | * FeatureMap                                                        | 0xFFFC | | 
|  | | * ClusterRevision                                                   | 0xFFFD | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Events:                                                             |        | | 
|  | \*----------------------------------------------------------------------------*/ | 
|  |  | 
|  | /* | 
|  | * Command Identify | 
|  | */ | 
|  | class IdentifyIdentify : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | IdentifyIdentify(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("identify", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("IdentifyTime", 0, UINT16_MAX, &mRequest.identifyTime); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000003) command (0x00000000) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000003, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000003) command (0x00000000) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000003, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::Identify::Commands::Identify::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command TriggerEffect | 
|  | */ | 
|  | class IdentifyTriggerEffect : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | IdentifyTriggerEffect(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("trigger-effect", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("EffectIdentifier", 0, UINT8_MAX, &mRequest.effectIdentifier); | 
|  | AddArgument("EffectVariant", 0, UINT8_MAX, &mRequest.effectVariant); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000003) command (0x00000040) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000003, 0x00000040, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000003) command (0x00000040) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000003, 0x00000040, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::Identify::Commands::TriggerEffect::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /*----------------------------------------------------------------------------*\ | 
|  | | Cluster Groups                                                      | 0x0004 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Commands:                                                           |        | | 
|  | | * AddGroup                                                          |   0x00 | | 
|  | | * ViewGroup                                                         |   0x01 | | 
|  | | * GetGroupMembership                                                |   0x02 | | 
|  | | * RemoveGroup                                                       |   0x03 | | 
|  | | * RemoveAllGroups                                                   |   0x04 | | 
|  | | * AddGroupIfIdentifying                                             |   0x05 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Attributes:                                                         |        | | 
|  | | * NameSupport                                                       | 0x0000 | | 
|  | | * GeneratedCommandList                                              | 0xFFF8 | | 
|  | | * AcceptedCommandList                                               | 0xFFF9 | | 
|  | | * EventList                                                         | 0xFFFA | | 
|  | | * AttributeList                                                     | 0xFFFB | | 
|  | | * FeatureMap                                                        | 0xFFFC | | 
|  | | * ClusterRevision                                                   | 0xFFFD | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Events:                                                             |        | | 
|  | \*----------------------------------------------------------------------------*/ | 
|  |  | 
|  | /* | 
|  | * Command AddGroup | 
|  | */ | 
|  | class GroupsAddGroup : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | GroupsAddGroup(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("add-group", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("GroupID", 0, UINT16_MAX, &mRequest.groupID); | 
|  | AddArgument("GroupName", &mRequest.groupName); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000004) command (0x00000000) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000004, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000004) command (0x00000000) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000004, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::Groups::Commands::AddGroup::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command ViewGroup | 
|  | */ | 
|  | class GroupsViewGroup : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | GroupsViewGroup(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("view-group", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("GroupID", 0, UINT16_MAX, &mRequest.groupID); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000004) command (0x00000001) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000004, 0x00000001, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000004) command (0x00000001) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000004, 0x00000001, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::Groups::Commands::ViewGroup::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command GetGroupMembership | 
|  | */ | 
|  | class GroupsGetGroupMembership : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | GroupsGetGroupMembership(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("get-group-membership", credsIssuerConfig), mComplex_GroupList(&mRequest.groupList) | 
|  | { | 
|  | AddArgument("GroupList", &mComplex_GroupList); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000004) command (0x00000002) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000004, 0x00000002, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000004) command (0x00000002) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000004, 0x00000002, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::Groups::Commands::GetGroupMembership::Type mRequest; | 
|  | TypedComplexArgument<chip::app::DataModel::List<const chip::GroupId>> mComplex_GroupList; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command RemoveGroup | 
|  | */ | 
|  | class GroupsRemoveGroup : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | GroupsRemoveGroup(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("remove-group", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("GroupID", 0, UINT16_MAX, &mRequest.groupID); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000004) command (0x00000003) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000004, 0x00000003, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000004) command (0x00000003) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000004, 0x00000003, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::Groups::Commands::RemoveGroup::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command RemoveAllGroups | 
|  | */ | 
|  | class GroupsRemoveAllGroups : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | GroupsRemoveAllGroups(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("remove-all-groups", credsIssuerConfig) | 
|  | { | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000004) command (0x00000004) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000004, 0x00000004, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000004) command (0x00000004) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000004, 0x00000004, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::Groups::Commands::RemoveAllGroups::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command AddGroupIfIdentifying | 
|  | */ | 
|  | class GroupsAddGroupIfIdentifying : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | GroupsAddGroupIfIdentifying(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("add-group-if-identifying", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("GroupID", 0, UINT16_MAX, &mRequest.groupID); | 
|  | AddArgument("GroupName", &mRequest.groupName); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000004) command (0x00000005) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000004, 0x00000005, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000004) command (0x00000005) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000004, 0x00000005, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::Groups::Commands::AddGroupIfIdentifying::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /*----------------------------------------------------------------------------*\ | 
|  | | Cluster Scenes                                                      | 0x0005 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Commands:                                                           |        | | 
|  | | * AddScene                                                          |   0x00 | | 
|  | | * ViewScene                                                         |   0x01 | | 
|  | | * RemoveScene                                                       |   0x02 | | 
|  | | * RemoveAllScenes                                                   |   0x03 | | 
|  | | * StoreScene                                                        |   0x04 | | 
|  | | * RecallScene                                                       |   0x05 | | 
|  | | * GetSceneMembership                                                |   0x06 | | 
|  | | * EnhancedAddScene                                                  |   0x40 | | 
|  | | * EnhancedViewScene                                                 |   0x41 | | 
|  | | * CopyScene                                                         |   0x42 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Attributes:                                                         |        | | 
|  | | * SceneCount                                                        | 0x0000 | | 
|  | | * CurrentScene                                                      | 0x0001 | | 
|  | | * CurrentGroup                                                      | 0x0002 | | 
|  | | * SceneValid                                                        | 0x0003 | | 
|  | | * NameSupport                                                       | 0x0004 | | 
|  | | * LastConfiguredBy                                                  | 0x0005 | | 
|  | | * GeneratedCommandList                                              | 0xFFF8 | | 
|  | | * AcceptedCommandList                                               | 0xFFF9 | | 
|  | | * EventList                                                         | 0xFFFA | | 
|  | | * AttributeList                                                     | 0xFFFB | | 
|  | | * FeatureMap                                                        | 0xFFFC | | 
|  | | * ClusterRevision                                                   | 0xFFFD | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Events:                                                             |        | | 
|  | \*----------------------------------------------------------------------------*/ | 
|  |  | 
|  | /* | 
|  | * Command AddScene | 
|  | */ | 
|  | class ScenesAddScene : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | ScenesAddScene(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("add-scene", credsIssuerConfig), mComplex_ExtensionFieldSets(&mRequest.extensionFieldSets) | 
|  | { | 
|  | AddArgument("GroupID", 0, UINT16_MAX, &mRequest.groupID); | 
|  | AddArgument("SceneID", 0, UINT8_MAX, &mRequest.sceneID); | 
|  | AddArgument("TransitionTime", 0, UINT16_MAX, &mRequest.transitionTime); | 
|  | AddArgument("SceneName", &mRequest.sceneName); | 
|  | AddArgument("ExtensionFieldSets", &mComplex_ExtensionFieldSets); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000005) command (0x00000000) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000005, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000005) command (0x00000000) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000005, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::Scenes::Commands::AddScene::Type mRequest; | 
|  | TypedComplexArgument<chip::app::DataModel::List<const chip::app::Clusters::Scenes::Structs::ExtensionFieldSet::Type>> | 
|  | mComplex_ExtensionFieldSets; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command ViewScene | 
|  | */ | 
|  | class ScenesViewScene : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | ScenesViewScene(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("view-scene", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("GroupID", 0, UINT16_MAX, &mRequest.groupID); | 
|  | AddArgument("SceneID", 0, UINT8_MAX, &mRequest.sceneID); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000005) command (0x00000001) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000005, 0x00000001, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000005) command (0x00000001) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000005, 0x00000001, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::Scenes::Commands::ViewScene::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command RemoveScene | 
|  | */ | 
|  | class ScenesRemoveScene : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | ScenesRemoveScene(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("remove-scene", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("GroupID", 0, UINT16_MAX, &mRequest.groupID); | 
|  | AddArgument("SceneID", 0, UINT8_MAX, &mRequest.sceneID); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000005) command (0x00000002) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000005, 0x00000002, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000005) command (0x00000002) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000005, 0x00000002, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::Scenes::Commands::RemoveScene::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command RemoveAllScenes | 
|  | */ | 
|  | class ScenesRemoveAllScenes : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | ScenesRemoveAllScenes(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("remove-all-scenes", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("GroupID", 0, UINT16_MAX, &mRequest.groupID); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000005) command (0x00000003) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000005, 0x00000003, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000005) command (0x00000003) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000005, 0x00000003, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::Scenes::Commands::RemoveAllScenes::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command StoreScene | 
|  | */ | 
|  | class ScenesStoreScene : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | ScenesStoreScene(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("store-scene", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("GroupID", 0, UINT16_MAX, &mRequest.groupID); | 
|  | AddArgument("SceneID", 0, UINT8_MAX, &mRequest.sceneID); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000005) command (0x00000004) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000005, 0x00000004, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000005) command (0x00000004) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000005, 0x00000004, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::Scenes::Commands::StoreScene::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command RecallScene | 
|  | */ | 
|  | class ScenesRecallScene : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | ScenesRecallScene(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("recall-scene", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("GroupID", 0, UINT16_MAX, &mRequest.groupID); | 
|  | AddArgument("SceneID", 0, UINT8_MAX, &mRequest.sceneID); | 
|  | AddArgument("TransitionTime", 0, UINT16_MAX, &mRequest.transitionTime); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000005) command (0x00000005) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000005, 0x00000005, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000005) command (0x00000005) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000005, 0x00000005, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::Scenes::Commands::RecallScene::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command GetSceneMembership | 
|  | */ | 
|  | class ScenesGetSceneMembership : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | ScenesGetSceneMembership(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("get-scene-membership", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("GroupID", 0, UINT16_MAX, &mRequest.groupID); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000005) command (0x00000006) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000005, 0x00000006, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000005) command (0x00000006) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000005, 0x00000006, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::Scenes::Commands::GetSceneMembership::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command EnhancedAddScene | 
|  | */ | 
|  | class ScenesEnhancedAddScene : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | ScenesEnhancedAddScene(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("enhanced-add-scene", credsIssuerConfig), mComplex_ExtensionFieldSets(&mRequest.extensionFieldSets) | 
|  | { | 
|  | AddArgument("GroupID", 0, UINT16_MAX, &mRequest.groupID); | 
|  | AddArgument("SceneID", 0, UINT8_MAX, &mRequest.sceneID); | 
|  | AddArgument("TransitionTime", 0, UINT16_MAX, &mRequest.transitionTime); | 
|  | AddArgument("SceneName", &mRequest.sceneName); | 
|  | AddArgument("ExtensionFieldSets", &mComplex_ExtensionFieldSets); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000005) command (0x00000040) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000005, 0x00000040, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000005) command (0x00000040) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000005, 0x00000040, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::Scenes::Commands::EnhancedAddScene::Type mRequest; | 
|  | TypedComplexArgument<chip::app::DataModel::List<const chip::app::Clusters::Scenes::Structs::ExtensionFieldSet::Type>> | 
|  | mComplex_ExtensionFieldSets; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command EnhancedViewScene | 
|  | */ | 
|  | class ScenesEnhancedViewScene : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | ScenesEnhancedViewScene(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("enhanced-view-scene", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("GroupID", 0, UINT16_MAX, &mRequest.groupID); | 
|  | AddArgument("SceneID", 0, UINT8_MAX, &mRequest.sceneID); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000005) command (0x00000041) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000005, 0x00000041, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000005) command (0x00000041) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000005, 0x00000041, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::Scenes::Commands::EnhancedViewScene::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command CopyScene | 
|  | */ | 
|  | class ScenesCopyScene : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | ScenesCopyScene(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("copy-scene", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("Mode", 0, UINT8_MAX, &mRequest.mode); | 
|  | AddArgument("GroupIdentifierFrom", 0, UINT16_MAX, &mRequest.groupIdentifierFrom); | 
|  | AddArgument("SceneIdentifierFrom", 0, UINT8_MAX, &mRequest.sceneIdentifierFrom); | 
|  | AddArgument("GroupIdentifierTo", 0, UINT16_MAX, &mRequest.groupIdentifierTo); | 
|  | AddArgument("SceneIdentifierTo", 0, UINT8_MAX, &mRequest.sceneIdentifierTo); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000005) command (0x00000042) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000005, 0x00000042, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000005) command (0x00000042) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000005, 0x00000042, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::Scenes::Commands::CopyScene::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /*----------------------------------------------------------------------------*\ | 
|  | | Cluster OnOff                                                       | 0x0006 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Commands:                                                           |        | | 
|  | | * Off                                                               |   0x00 | | 
|  | | * On                                                                |   0x01 | | 
|  | | * Toggle                                                            |   0x02 | | 
|  | | * OffWithEffect                                                     |   0x40 | | 
|  | | * OnWithRecallGlobalScene                                           |   0x41 | | 
|  | | * OnWithTimedOff                                                    |   0x42 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Attributes:                                                         |        | | 
|  | | * OnOff                                                             | 0x0000 | | 
|  | | * GlobalSceneControl                                                | 0x4000 | | 
|  | | * OnTime                                                            | 0x4001 | | 
|  | | * OffWaitTime                                                       | 0x4002 | | 
|  | | * StartUpOnOff                                                      | 0x4003 | | 
|  | | * GeneratedCommandList                                              | 0xFFF8 | | 
|  | | * AcceptedCommandList                                               | 0xFFF9 | | 
|  | | * EventList                                                         | 0xFFFA | | 
|  | | * AttributeList                                                     | 0xFFFB | | 
|  | | * FeatureMap                                                        | 0xFFFC | | 
|  | | * ClusterRevision                                                   | 0xFFFD | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Events:                                                             |        | | 
|  | \*----------------------------------------------------------------------------*/ | 
|  |  | 
|  | /* | 
|  | * Command Off | 
|  | */ | 
|  | class OnOffOff : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | OnOffOff(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("off", credsIssuerConfig) | 
|  | { | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000006) command (0x00000000) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000006, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000006) command (0x00000000) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000006, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::OnOff::Commands::Off::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command On | 
|  | */ | 
|  | class OnOffOn : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | OnOffOn(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("on", credsIssuerConfig) | 
|  | { | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000006) command (0x00000001) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000006, 0x00000001, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000006) command (0x00000001) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000006, 0x00000001, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::OnOff::Commands::On::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command Toggle | 
|  | */ | 
|  | class OnOffToggle : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | OnOffToggle(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("toggle", credsIssuerConfig) | 
|  | { | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000006) command (0x00000002) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000006, 0x00000002, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000006) command (0x00000002) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000006, 0x00000002, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::OnOff::Commands::Toggle::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command OffWithEffect | 
|  | */ | 
|  | class OnOffOffWithEffect : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | OnOffOffWithEffect(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("off-with-effect", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("EffectIdentifier", 0, UINT8_MAX, &mRequest.effectIdentifier); | 
|  | AddArgument("EffectVariant", 0, UINT8_MAX, &mRequest.effectVariant); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000006) command (0x00000040) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000006, 0x00000040, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000006) command (0x00000040) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000006, 0x00000040, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::OnOff::Commands::OffWithEffect::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command OnWithRecallGlobalScene | 
|  | */ | 
|  | class OnOffOnWithRecallGlobalScene : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | OnOffOnWithRecallGlobalScene(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("on-with-recall-global-scene", credsIssuerConfig) | 
|  | { | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000006) command (0x00000041) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000006, 0x00000041, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000006) command (0x00000041) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000006, 0x00000041, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::OnOff::Commands::OnWithRecallGlobalScene::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command OnWithTimedOff | 
|  | */ | 
|  | class OnOffOnWithTimedOff : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | OnOffOnWithTimedOff(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("on-with-timed-off", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("OnOffControl", 0, UINT8_MAX, &mRequest.onOffControl); | 
|  | AddArgument("OnTime", 0, UINT16_MAX, &mRequest.onTime); | 
|  | AddArgument("OffWaitTime", 0, UINT16_MAX, &mRequest.offWaitTime); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000006) command (0x00000042) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000006, 0x00000042, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000006) command (0x00000042) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000006, 0x00000042, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::OnOff::Commands::OnWithTimedOff::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /*----------------------------------------------------------------------------*\ | 
|  | | Cluster OnOffSwitchConfiguration                                    | 0x0007 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Commands:                                                           |        | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Attributes:                                                         |        | | 
|  | | * SwitchType                                                        | 0x0000 | | 
|  | | * SwitchActions                                                     | 0x0010 | | 
|  | | * GeneratedCommandList                                              | 0xFFF8 | | 
|  | | * AcceptedCommandList                                               | 0xFFF9 | | 
|  | | * EventList                                                         | 0xFFFA | | 
|  | | * AttributeList                                                     | 0xFFFB | | 
|  | | * FeatureMap                                                        | 0xFFFC | | 
|  | | * ClusterRevision                                                   | 0xFFFD | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Events:                                                             |        | | 
|  | \*----------------------------------------------------------------------------*/ | 
|  |  | 
|  | /*----------------------------------------------------------------------------*\ | 
|  | | Cluster LevelControl                                                | 0x0008 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Commands:                                                           |        | | 
|  | | * MoveToLevel                                                       |   0x00 | | 
|  | | * Move                                                              |   0x01 | | 
|  | | * Step                                                              |   0x02 | | 
|  | | * Stop                                                              |   0x03 | | 
|  | | * MoveToLevelWithOnOff                                              |   0x04 | | 
|  | | * MoveWithOnOff                                                     |   0x05 | | 
|  | | * StepWithOnOff                                                     |   0x06 | | 
|  | | * StopWithOnOff                                                     |   0x07 | | 
|  | | * MoveToClosestFrequency                                            |   0x08 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Attributes:                                                         |        | | 
|  | | * CurrentLevel                                                      | 0x0000 | | 
|  | | * RemainingTime                                                     | 0x0001 | | 
|  | | * MinLevel                                                          | 0x0002 | | 
|  | | * MaxLevel                                                          | 0x0003 | | 
|  | | * CurrentFrequency                                                  | 0x0004 | | 
|  | | * MinFrequency                                                      | 0x0005 | | 
|  | | * MaxFrequency                                                      | 0x0006 | | 
|  | | * Options                                                           | 0x000F | | 
|  | | * OnOffTransitionTime                                               | 0x0010 | | 
|  | | * OnLevel                                                           | 0x0011 | | 
|  | | * OnTransitionTime                                                  | 0x0012 | | 
|  | | * OffTransitionTime                                                 | 0x0013 | | 
|  | | * DefaultMoveRate                                                   | 0x0014 | | 
|  | | * StartUpCurrentLevel                                               | 0x4000 | | 
|  | | * GeneratedCommandList                                              | 0xFFF8 | | 
|  | | * AcceptedCommandList                                               | 0xFFF9 | | 
|  | | * EventList                                                         | 0xFFFA | | 
|  | | * AttributeList                                                     | 0xFFFB | | 
|  | | * FeatureMap                                                        | 0xFFFC | | 
|  | | * ClusterRevision                                                   | 0xFFFD | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Events:                                                             |        | | 
|  | \*----------------------------------------------------------------------------*/ | 
|  |  | 
|  | /* | 
|  | * Command MoveToLevel | 
|  | */ | 
|  | class LevelControlMoveToLevel : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | LevelControlMoveToLevel(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("move-to-level", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("Level", 0, UINT8_MAX, &mRequest.level); | 
|  | AddArgument("TransitionTime", 0, UINT16_MAX, &mRequest.transitionTime); | 
|  | AddArgument("OptionsMask", 0, UINT8_MAX, &mRequest.optionsMask); | 
|  | AddArgument("OptionsOverride", 0, UINT8_MAX, &mRequest.optionsOverride); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000008) command (0x00000000) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000008, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000008) command (0x00000000) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000008, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::LevelControl::Commands::MoveToLevel::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command Move | 
|  | */ | 
|  | class LevelControlMove : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | LevelControlMove(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("move", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("MoveMode", 0, UINT8_MAX, &mRequest.moveMode); | 
|  | AddArgument("Rate", 0, UINT8_MAX, &mRequest.rate); | 
|  | AddArgument("OptionsMask", 0, UINT8_MAX, &mRequest.optionsMask); | 
|  | AddArgument("OptionsOverride", 0, UINT8_MAX, &mRequest.optionsOverride); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000008) command (0x00000001) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000008, 0x00000001, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000008) command (0x00000001) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000008, 0x00000001, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::LevelControl::Commands::Move::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command Step | 
|  | */ | 
|  | class LevelControlStep : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | LevelControlStep(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("step", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("StepMode", 0, UINT8_MAX, &mRequest.stepMode); | 
|  | AddArgument("StepSize", 0, UINT8_MAX, &mRequest.stepSize); | 
|  | AddArgument("TransitionTime", 0, UINT16_MAX, &mRequest.transitionTime); | 
|  | AddArgument("OptionsMask", 0, UINT8_MAX, &mRequest.optionsMask); | 
|  | AddArgument("OptionsOverride", 0, UINT8_MAX, &mRequest.optionsOverride); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000008) command (0x00000002) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000008, 0x00000002, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000008) command (0x00000002) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000008, 0x00000002, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::LevelControl::Commands::Step::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command Stop | 
|  | */ | 
|  | class LevelControlStop : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | LevelControlStop(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("stop", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("OptionsMask", 0, UINT8_MAX, &mRequest.optionsMask); | 
|  | AddArgument("OptionsOverride", 0, UINT8_MAX, &mRequest.optionsOverride); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000008) command (0x00000003) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000008, 0x00000003, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000008) command (0x00000003) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000008, 0x00000003, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::LevelControl::Commands::Stop::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command MoveToLevelWithOnOff | 
|  | */ | 
|  | class LevelControlMoveToLevelWithOnOff : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | LevelControlMoveToLevelWithOnOff(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("move-to-level-with-on-off", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("Level", 0, UINT8_MAX, &mRequest.level); | 
|  | AddArgument("TransitionTime", 0, UINT16_MAX, &mRequest.transitionTime); | 
|  | AddArgument("OptionsMask", 0, UINT8_MAX, &mRequest.optionsMask); | 
|  | AddArgument("OptionsOverride", 0, UINT8_MAX, &mRequest.optionsOverride); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000008) command (0x00000004) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000008, 0x00000004, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000008) command (0x00000004) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000008, 0x00000004, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::LevelControl::Commands::MoveToLevelWithOnOff::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command MoveWithOnOff | 
|  | */ | 
|  | class LevelControlMoveWithOnOff : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | LevelControlMoveWithOnOff(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("move-with-on-off", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("MoveMode", 0, UINT8_MAX, &mRequest.moveMode); | 
|  | AddArgument("Rate", 0, UINT8_MAX, &mRequest.rate); | 
|  | AddArgument("OptionsMask", 0, UINT8_MAX, &mRequest.optionsMask); | 
|  | AddArgument("OptionsOverride", 0, UINT8_MAX, &mRequest.optionsOverride); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000008) command (0x00000005) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000008, 0x00000005, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000008) command (0x00000005) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000008, 0x00000005, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::LevelControl::Commands::MoveWithOnOff::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command StepWithOnOff | 
|  | */ | 
|  | class LevelControlStepWithOnOff : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | LevelControlStepWithOnOff(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("step-with-on-off", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("StepMode", 0, UINT8_MAX, &mRequest.stepMode); | 
|  | AddArgument("StepSize", 0, UINT8_MAX, &mRequest.stepSize); | 
|  | AddArgument("TransitionTime", 0, UINT16_MAX, &mRequest.transitionTime); | 
|  | AddArgument("OptionsMask", 0, UINT8_MAX, &mRequest.optionsMask); | 
|  | AddArgument("OptionsOverride", 0, UINT8_MAX, &mRequest.optionsOverride); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000008) command (0x00000006) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000008, 0x00000006, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000008) command (0x00000006) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000008, 0x00000006, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::LevelControl::Commands::StepWithOnOff::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command StopWithOnOff | 
|  | */ | 
|  | class LevelControlStopWithOnOff : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | LevelControlStopWithOnOff(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("stop-with-on-off", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("OptionsMask", 0, UINT8_MAX, &mRequest.optionsMask); | 
|  | AddArgument("OptionsOverride", 0, UINT8_MAX, &mRequest.optionsOverride); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000008) command (0x00000007) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000008, 0x00000007, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000008) command (0x00000007) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000008, 0x00000007, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::LevelControl::Commands::StopWithOnOff::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command MoveToClosestFrequency | 
|  | */ | 
|  | class LevelControlMoveToClosestFrequency : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | LevelControlMoveToClosestFrequency(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("move-to-closest-frequency", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("Frequency", 0, UINT16_MAX, &mRequest.frequency); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000008) command (0x00000008) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000008, 0x00000008, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000008) command (0x00000008) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000008, 0x00000008, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::LevelControl::Commands::MoveToClosestFrequency::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /*----------------------------------------------------------------------------*\ | 
|  | | Cluster BinaryInputBasic                                            | 0x000F | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Commands:                                                           |        | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Attributes:                                                         |        | | 
|  | | * ActiveText                                                        | 0x0004 | | 
|  | | * Description                                                       | 0x001C | | 
|  | | * InactiveText                                                      | 0x002E | | 
|  | | * OutOfService                                                      | 0x0051 | | 
|  | | * Polarity                                                          | 0x0054 | | 
|  | | * PresentValue                                                      | 0x0055 | | 
|  | | * Reliability                                                       | 0x0067 | | 
|  | | * StatusFlags                                                       | 0x006F | | 
|  | | * ApplicationType                                                   | 0x0100 | | 
|  | | * GeneratedCommandList                                              | 0xFFF8 | | 
|  | | * AcceptedCommandList                                               | 0xFFF9 | | 
|  | | * EventList                                                         | 0xFFFA | | 
|  | | * AttributeList                                                     | 0xFFFB | | 
|  | | * FeatureMap                                                        | 0xFFFC | | 
|  | | * ClusterRevision                                                   | 0xFFFD | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Events:                                                             |        | | 
|  | \*----------------------------------------------------------------------------*/ | 
|  |  | 
|  | /*----------------------------------------------------------------------------*\ | 
|  | | Cluster PulseWidthModulation                                        | 0x001C | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Commands:                                                           |        | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Attributes:                                                         |        | | 
|  | | * GeneratedCommandList                                              | 0xFFF8 | | 
|  | | * AcceptedCommandList                                               | 0xFFF9 | | 
|  | | * EventList                                                         | 0xFFFA | | 
|  | | * AttributeList                                                     | 0xFFFB | | 
|  | | * FeatureMap                                                        | 0xFFFC | | 
|  | | * ClusterRevision                                                   | 0xFFFD | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Events:                                                             |        | | 
|  | \*----------------------------------------------------------------------------*/ | 
|  |  | 
|  | /*----------------------------------------------------------------------------*\ | 
|  | | Cluster Descriptor                                                  | 0x001D | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Commands:                                                           |        | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Attributes:                                                         |        | | 
|  | | * DeviceTypeList                                                    | 0x0000 | | 
|  | | * ServerList                                                        | 0x0001 | | 
|  | | * ClientList                                                        | 0x0002 | | 
|  | | * PartsList                                                         | 0x0003 | | 
|  | | * GeneratedCommandList                                              | 0xFFF8 | | 
|  | | * AcceptedCommandList                                               | 0xFFF9 | | 
|  | | * EventList                                                         | 0xFFFA | | 
|  | | * AttributeList                                                     | 0xFFFB | | 
|  | | * FeatureMap                                                        | 0xFFFC | | 
|  | | * ClusterRevision                                                   | 0xFFFD | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Events:                                                             |        | | 
|  | \*----------------------------------------------------------------------------*/ | 
|  |  | 
|  | /*----------------------------------------------------------------------------*\ | 
|  | | Cluster Binding                                                     | 0x001E | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Commands:                                                           |        | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Attributes:                                                         |        | | 
|  | | * Binding                                                           | 0x0000 | | 
|  | | * GeneratedCommandList                                              | 0xFFF8 | | 
|  | | * AcceptedCommandList                                               | 0xFFF9 | | 
|  | | * EventList                                                         | 0xFFFA | | 
|  | | * AttributeList                                                     | 0xFFFB | | 
|  | | * FeatureMap                                                        | 0xFFFC | | 
|  | | * ClusterRevision                                                   | 0xFFFD | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Events:                                                             |        | | 
|  | \*----------------------------------------------------------------------------*/ | 
|  |  | 
|  | /*----------------------------------------------------------------------------*\ | 
|  | | Cluster AccessControl                                               | 0x001F | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Commands:                                                           |        | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Attributes:                                                         |        | | 
|  | | * Acl                                                               | 0x0000 | | 
|  | | * Extension                                                         | 0x0001 | | 
|  | | * SubjectsPerAccessControlEntry                                     | 0x0002 | | 
|  | | * TargetsPerAccessControlEntry                                      | 0x0003 | | 
|  | | * AccessControlEntriesPerFabric                                     | 0x0004 | | 
|  | | * GeneratedCommandList                                              | 0xFFF8 | | 
|  | | * AcceptedCommandList                                               | 0xFFF9 | | 
|  | | * EventList                                                         | 0xFFFA | | 
|  | | * AttributeList                                                     | 0xFFFB | | 
|  | | * FeatureMap                                                        | 0xFFFC | | 
|  | | * ClusterRevision                                                   | 0xFFFD | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Events:                                                             |        | | 
|  | | * AccessControlEntryChanged                                         | 0x0000 | | 
|  | | * AccessControlExtensionChanged                                     | 0x0001 | | 
|  | \*----------------------------------------------------------------------------*/ | 
|  |  | 
|  | /*----------------------------------------------------------------------------*\ | 
|  | | Cluster Actions                                                     | 0x0025 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Commands:                                                           |        | | 
|  | | * InstantAction                                                     |   0x00 | | 
|  | | * InstantActionWithTransition                                       |   0x01 | | 
|  | | * StartAction                                                       |   0x02 | | 
|  | | * StartActionWithDuration                                           |   0x03 | | 
|  | | * StopAction                                                        |   0x04 | | 
|  | | * PauseAction                                                       |   0x05 | | 
|  | | * PauseActionWithDuration                                           |   0x06 | | 
|  | | * ResumeAction                                                      |   0x07 | | 
|  | | * EnableAction                                                      |   0x08 | | 
|  | | * EnableActionWithDuration                                          |   0x09 | | 
|  | | * DisableAction                                                     |   0x0A | | 
|  | | * DisableActionWithDuration                                         |   0x0B | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Attributes:                                                         |        | | 
|  | | * ActionList                                                        | 0x0000 | | 
|  | | * EndpointLists                                                     | 0x0001 | | 
|  | | * SetupURL                                                          | 0x0002 | | 
|  | | * GeneratedCommandList                                              | 0xFFF8 | | 
|  | | * AcceptedCommandList                                               | 0xFFF9 | | 
|  | | * EventList                                                         | 0xFFFA | | 
|  | | * AttributeList                                                     | 0xFFFB | | 
|  | | * FeatureMap                                                        | 0xFFFC | | 
|  | | * ClusterRevision                                                   | 0xFFFD | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Events:                                                             |        | | 
|  | | * StateChanged                                                      | 0x0000 | | 
|  | | * ActionFailed                                                      | 0x0001 | | 
|  | \*----------------------------------------------------------------------------*/ | 
|  |  | 
|  | /* | 
|  | * Command InstantAction | 
|  | */ | 
|  | class ActionsInstantAction : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | ActionsInstantAction(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("instant-action", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("ActionID", 0, UINT16_MAX, &mRequest.actionID); | 
|  | AddArgument("InvokeID", 0, UINT32_MAX, &mRequest.invokeID); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000025) command (0x00000000) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000025, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000025) command (0x00000000) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000025, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::Actions::Commands::InstantAction::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command InstantActionWithTransition | 
|  | */ | 
|  | class ActionsInstantActionWithTransition : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | ActionsInstantActionWithTransition(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("instant-action-with-transition", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("ActionID", 0, UINT16_MAX, &mRequest.actionID); | 
|  | AddArgument("InvokeID", 0, UINT32_MAX, &mRequest.invokeID); | 
|  | AddArgument("TransitionTime", 0, UINT16_MAX, &mRequest.transitionTime); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000025) command (0x00000001) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000025, 0x00000001, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000025) command (0x00000001) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000025, 0x00000001, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::Actions::Commands::InstantActionWithTransition::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command StartAction | 
|  | */ | 
|  | class ActionsStartAction : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | ActionsStartAction(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("start-action", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("ActionID", 0, UINT16_MAX, &mRequest.actionID); | 
|  | AddArgument("InvokeID", 0, UINT32_MAX, &mRequest.invokeID); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000025) command (0x00000002) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000025, 0x00000002, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000025) command (0x00000002) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000025, 0x00000002, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::Actions::Commands::StartAction::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command StartActionWithDuration | 
|  | */ | 
|  | class ActionsStartActionWithDuration : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | ActionsStartActionWithDuration(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("start-action-with-duration", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("ActionID", 0, UINT16_MAX, &mRequest.actionID); | 
|  | AddArgument("InvokeID", 0, UINT32_MAX, &mRequest.invokeID); | 
|  | AddArgument("Duration", 0, UINT32_MAX, &mRequest.duration); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000025) command (0x00000003) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000025, 0x00000003, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000025) command (0x00000003) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000025, 0x00000003, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::Actions::Commands::StartActionWithDuration::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command StopAction | 
|  | */ | 
|  | class ActionsStopAction : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | ActionsStopAction(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("stop-action", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("ActionID", 0, UINT16_MAX, &mRequest.actionID); | 
|  | AddArgument("InvokeID", 0, UINT32_MAX, &mRequest.invokeID); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000025) command (0x00000004) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000025, 0x00000004, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000025) command (0x00000004) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000025, 0x00000004, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::Actions::Commands::StopAction::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command PauseAction | 
|  | */ | 
|  | class ActionsPauseAction : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | ActionsPauseAction(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("pause-action", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("ActionID", 0, UINT16_MAX, &mRequest.actionID); | 
|  | AddArgument("InvokeID", 0, UINT32_MAX, &mRequest.invokeID); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000025) command (0x00000005) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000025, 0x00000005, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000025) command (0x00000005) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000025, 0x00000005, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::Actions::Commands::PauseAction::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command PauseActionWithDuration | 
|  | */ | 
|  | class ActionsPauseActionWithDuration : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | ActionsPauseActionWithDuration(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("pause-action-with-duration", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("ActionID", 0, UINT16_MAX, &mRequest.actionID); | 
|  | AddArgument("InvokeID", 0, UINT32_MAX, &mRequest.invokeID); | 
|  | AddArgument("Duration", 0, UINT32_MAX, &mRequest.duration); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000025) command (0x00000006) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000025, 0x00000006, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000025) command (0x00000006) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000025, 0x00000006, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::Actions::Commands::PauseActionWithDuration::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command ResumeAction | 
|  | */ | 
|  | class ActionsResumeAction : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | ActionsResumeAction(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("resume-action", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("ActionID", 0, UINT16_MAX, &mRequest.actionID); | 
|  | AddArgument("InvokeID", 0, UINT32_MAX, &mRequest.invokeID); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000025) command (0x00000007) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000025, 0x00000007, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000025) command (0x00000007) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000025, 0x00000007, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::Actions::Commands::ResumeAction::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command EnableAction | 
|  | */ | 
|  | class ActionsEnableAction : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | ActionsEnableAction(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("enable-action", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("ActionID", 0, UINT16_MAX, &mRequest.actionID); | 
|  | AddArgument("InvokeID", 0, UINT32_MAX, &mRequest.invokeID); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000025) command (0x00000008) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000025, 0x00000008, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000025) command (0x00000008) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000025, 0x00000008, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::Actions::Commands::EnableAction::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command EnableActionWithDuration | 
|  | */ | 
|  | class ActionsEnableActionWithDuration : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | ActionsEnableActionWithDuration(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("enable-action-with-duration", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("ActionID", 0, UINT16_MAX, &mRequest.actionID); | 
|  | AddArgument("InvokeID", 0, UINT32_MAX, &mRequest.invokeID); | 
|  | AddArgument("Duration", 0, UINT32_MAX, &mRequest.duration); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000025) command (0x00000009) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000025, 0x00000009, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000025) command (0x00000009) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000025, 0x00000009, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::Actions::Commands::EnableActionWithDuration::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command DisableAction | 
|  | */ | 
|  | class ActionsDisableAction : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | ActionsDisableAction(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("disable-action", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("ActionID", 0, UINT16_MAX, &mRequest.actionID); | 
|  | AddArgument("InvokeID", 0, UINT32_MAX, &mRequest.invokeID); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000025) command (0x0000000A) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000025, 0x0000000A, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000025) command (0x0000000A) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000025, 0x0000000A, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::Actions::Commands::DisableAction::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command DisableActionWithDuration | 
|  | */ | 
|  | class ActionsDisableActionWithDuration : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | ActionsDisableActionWithDuration(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("disable-action-with-duration", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("ActionID", 0, UINT16_MAX, &mRequest.actionID); | 
|  | AddArgument("InvokeID", 0, UINT32_MAX, &mRequest.invokeID); | 
|  | AddArgument("Duration", 0, UINT32_MAX, &mRequest.duration); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000025) command (0x0000000B) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000025, 0x0000000B, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000025) command (0x0000000B) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000025, 0x0000000B, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::Actions::Commands::DisableActionWithDuration::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /*----------------------------------------------------------------------------*\ | 
|  | | Cluster BasicInformation                                            | 0x0028 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Commands:                                                           |        | | 
|  | | * MfgSpecificPing                                                   |   0x00 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Attributes:                                                         |        | | 
|  | | * DataModelRevision                                                 | 0x0000 | | 
|  | | * VendorName                                                        | 0x0001 | | 
|  | | * VendorID                                                          | 0x0002 | | 
|  | | * ProductName                                                       | 0x0003 | | 
|  | | * ProductID                                                         | 0x0004 | | 
|  | | * NodeLabel                                                         | 0x0005 | | 
|  | | * Location                                                          | 0x0006 | | 
|  | | * HardwareVersion                                                   | 0x0007 | | 
|  | | * HardwareVersionString                                             | 0x0008 | | 
|  | | * SoftwareVersion                                                   | 0x0009 | | 
|  | | * SoftwareVersionString                                             | 0x000A | | 
|  | | * ManufacturingDate                                                 | 0x000B | | 
|  | | * PartNumber                                                        | 0x000C | | 
|  | | * ProductURL                                                        | 0x000D | | 
|  | | * ProductLabel                                                      | 0x000E | | 
|  | | * SerialNumber                                                      | 0x000F | | 
|  | | * LocalConfigDisabled                                               | 0x0010 | | 
|  | | * Reachable                                                         | 0x0011 | | 
|  | | * UniqueID                                                          | 0x0012 | | 
|  | | * CapabilityMinima                                                  | 0x0013 | | 
|  | | * ProductAppearance                                                 | 0x0014 | | 
|  | | * GeneratedCommandList                                              | 0xFFF8 | | 
|  | | * AcceptedCommandList                                               | 0xFFF9 | | 
|  | | * EventList                                                         | 0xFFFA | | 
|  | | * AttributeList                                                     | 0xFFFB | | 
|  | | * FeatureMap                                                        | 0xFFFC | | 
|  | | * ClusterRevision                                                   | 0xFFFD | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Events:                                                             |        | | 
|  | | * StartUp                                                           | 0x0000 | | 
|  | | * ShutDown                                                          | 0x0001 | | 
|  | | * Leave                                                             | 0x0002 | | 
|  | | * ReachableChanged                                                  | 0x0003 | | 
|  | \*----------------------------------------------------------------------------*/ | 
|  |  | 
|  | /* | 
|  | * Command MfgSpecificPing | 
|  | */ | 
|  | class BasicInformationMfgSpecificPing : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | BasicInformationMfgSpecificPing(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("mfg-specific-ping", credsIssuerConfig) | 
|  | { | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000028) command (0x00000000) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000028, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000028) command (0x00000000) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000028, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::BasicInformation::Commands::MfgSpecificPing::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /*----------------------------------------------------------------------------*\ | 
|  | | Cluster OtaSoftwareUpdateProvider                                   | 0x0029 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Commands:                                                           |        | | 
|  | | * QueryImage                                                        |   0x00 | | 
|  | | * ApplyUpdateRequest                                                |   0x02 | | 
|  | | * NotifyUpdateApplied                                               |   0x04 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Attributes:                                                         |        | | 
|  | | * GeneratedCommandList                                              | 0xFFF8 | | 
|  | | * AcceptedCommandList                                               | 0xFFF9 | | 
|  | | * EventList                                                         | 0xFFFA | | 
|  | | * AttributeList                                                     | 0xFFFB | | 
|  | | * FeatureMap                                                        | 0xFFFC | | 
|  | | * ClusterRevision                                                   | 0xFFFD | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Events:                                                             |        | | 
|  | \*----------------------------------------------------------------------------*/ | 
|  |  | 
|  | /* | 
|  | * Command QueryImage | 
|  | */ | 
|  | class OtaSoftwareUpdateProviderQueryImage : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | OtaSoftwareUpdateProviderQueryImage(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("query-image", credsIssuerConfig), mComplex_ProtocolsSupported(&mRequest.protocolsSupported) | 
|  | { | 
|  | AddArgument("VendorID", 0, UINT16_MAX, &mRequest.vendorID); | 
|  | AddArgument("ProductID", 0, UINT16_MAX, &mRequest.productID); | 
|  | AddArgument("SoftwareVersion", 0, UINT32_MAX, &mRequest.softwareVersion); | 
|  | AddArgument("ProtocolsSupported", &mComplex_ProtocolsSupported); | 
|  | AddArgument("HardwareVersion", 0, UINT16_MAX, &mRequest.hardwareVersion); | 
|  | AddArgument("Location", &mRequest.location); | 
|  | AddArgument("RequestorCanConsent", 0, 1, &mRequest.requestorCanConsent); | 
|  | AddArgument("MetadataForProvider", &mRequest.metadataForProvider); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000029) command (0x00000000) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000029, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000029) command (0x00000000) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000029, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::OtaSoftwareUpdateProvider::Commands::QueryImage::Type mRequest; | 
|  | TypedComplexArgument<chip::app::DataModel::List<const chip::app::Clusters::OtaSoftwareUpdateProvider::OTADownloadProtocol>> | 
|  | mComplex_ProtocolsSupported; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command ApplyUpdateRequest | 
|  | */ | 
|  | class OtaSoftwareUpdateProviderApplyUpdateRequest : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | OtaSoftwareUpdateProviderApplyUpdateRequest(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("apply-update-request", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("UpdateToken", &mRequest.updateToken); | 
|  | AddArgument("NewVersion", 0, UINT32_MAX, &mRequest.newVersion); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000029) command (0x00000002) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000029, 0x00000002, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000029) command (0x00000002) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000029, 0x00000002, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::OtaSoftwareUpdateProvider::Commands::ApplyUpdateRequest::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command NotifyUpdateApplied | 
|  | */ | 
|  | class OtaSoftwareUpdateProviderNotifyUpdateApplied : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | OtaSoftwareUpdateProviderNotifyUpdateApplied(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("notify-update-applied", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("UpdateToken", &mRequest.updateToken); | 
|  | AddArgument("SoftwareVersion", 0, UINT32_MAX, &mRequest.softwareVersion); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000029) command (0x00000004) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000029, 0x00000004, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000029) command (0x00000004) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000029, 0x00000004, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::OtaSoftwareUpdateProvider::Commands::NotifyUpdateApplied::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /*----------------------------------------------------------------------------*\ | 
|  | | Cluster OtaSoftwareUpdateRequestor                                  | 0x002A | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Commands:                                                           |        | | 
|  | | * AnnounceOTAProvider                                               |   0x00 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Attributes:                                                         |        | | 
|  | | * DefaultOTAProviders                                               | 0x0000 | | 
|  | | * UpdatePossible                                                    | 0x0001 | | 
|  | | * UpdateState                                                       | 0x0002 | | 
|  | | * UpdateStateProgress                                               | 0x0003 | | 
|  | | * GeneratedCommandList                                              | 0xFFF8 | | 
|  | | * AcceptedCommandList                                               | 0xFFF9 | | 
|  | | * EventList                                                         | 0xFFFA | | 
|  | | * AttributeList                                                     | 0xFFFB | | 
|  | | * FeatureMap                                                        | 0xFFFC | | 
|  | | * ClusterRevision                                                   | 0xFFFD | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Events:                                                             |        | | 
|  | | * StateTransition                                                   | 0x0000 | | 
|  | | * VersionApplied                                                    | 0x0001 | | 
|  | | * DownloadError                                                     | 0x0002 | | 
|  | \*----------------------------------------------------------------------------*/ | 
|  |  | 
|  | /* | 
|  | * Command AnnounceOTAProvider | 
|  | */ | 
|  | class OtaSoftwareUpdateRequestorAnnounceOTAProvider : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | OtaSoftwareUpdateRequestorAnnounceOTAProvider(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("announce-otaprovider", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("ProviderNodeID", 0, UINT64_MAX, &mRequest.providerNodeID); | 
|  | AddArgument("VendorID", 0, UINT16_MAX, &mRequest.vendorID); | 
|  | AddArgument("AnnouncementReason", 0, UINT8_MAX, &mRequest.announcementReason); | 
|  | AddArgument("MetadataForNode", &mRequest.metadataForNode); | 
|  | AddArgument("Endpoint", 0, UINT16_MAX, &mRequest.endpoint); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x0000002A) command (0x00000000) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x0000002A, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x0000002A) command (0x00000000) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x0000002A, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::OtaSoftwareUpdateRequestor::Commands::AnnounceOTAProvider::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /*----------------------------------------------------------------------------*\ | 
|  | | Cluster LocalizationConfiguration                                   | 0x002B | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Commands:                                                           |        | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Attributes:                                                         |        | | 
|  | | * ActiveLocale                                                      | 0x0000 | | 
|  | | * SupportedLocales                                                  | 0x0001 | | 
|  | | * GeneratedCommandList                                              | 0xFFF8 | | 
|  | | * AcceptedCommandList                                               | 0xFFF9 | | 
|  | | * EventList                                                         | 0xFFFA | | 
|  | | * AttributeList                                                     | 0xFFFB | | 
|  | | * FeatureMap                                                        | 0xFFFC | | 
|  | | * ClusterRevision                                                   | 0xFFFD | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Events:                                                             |        | | 
|  | \*----------------------------------------------------------------------------*/ | 
|  |  | 
|  | /*----------------------------------------------------------------------------*\ | 
|  | | Cluster TimeFormatLocalization                                      | 0x002C | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Commands:                                                           |        | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Attributes:                                                         |        | | 
|  | | * HourFormat                                                        | 0x0000 | | 
|  | | * ActiveCalendarType                                                | 0x0001 | | 
|  | | * SupportedCalendarTypes                                            | 0x0002 | | 
|  | | * GeneratedCommandList                                              | 0xFFF8 | | 
|  | | * AcceptedCommandList                                               | 0xFFF9 | | 
|  | | * EventList                                                         | 0xFFFA | | 
|  | | * AttributeList                                                     | 0xFFFB | | 
|  | | * FeatureMap                                                        | 0xFFFC | | 
|  | | * ClusterRevision                                                   | 0xFFFD | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Events:                                                             |        | | 
|  | \*----------------------------------------------------------------------------*/ | 
|  |  | 
|  | /*----------------------------------------------------------------------------*\ | 
|  | | Cluster UnitLocalization                                            | 0x002D | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Commands:                                                           |        | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Attributes:                                                         |        | | 
|  | | * TemperatureUnit                                                   | 0x0000 | | 
|  | | * GeneratedCommandList                                              | 0xFFF8 | | 
|  | | * AcceptedCommandList                                               | 0xFFF9 | | 
|  | | * EventList                                                         | 0xFFFA | | 
|  | | * AttributeList                                                     | 0xFFFB | | 
|  | | * FeatureMap                                                        | 0xFFFC | | 
|  | | * ClusterRevision                                                   | 0xFFFD | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Events:                                                             |        | | 
|  | \*----------------------------------------------------------------------------*/ | 
|  |  | 
|  | /*----------------------------------------------------------------------------*\ | 
|  | | Cluster PowerSourceConfiguration                                    | 0x002E | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Commands:                                                           |        | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Attributes:                                                         |        | | 
|  | | * Sources                                                           | 0x0000 | | 
|  | | * GeneratedCommandList                                              | 0xFFF8 | | 
|  | | * AcceptedCommandList                                               | 0xFFF9 | | 
|  | | * EventList                                                         | 0xFFFA | | 
|  | | * AttributeList                                                     | 0xFFFB | | 
|  | | * FeatureMap                                                        | 0xFFFC | | 
|  | | * ClusterRevision                                                   | 0xFFFD | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Events:                                                             |        | | 
|  | \*----------------------------------------------------------------------------*/ | 
|  |  | 
|  | /*----------------------------------------------------------------------------*\ | 
|  | | Cluster PowerSource                                                 | 0x002F | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Commands:                                                           |        | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Attributes:                                                         |        | | 
|  | | * Status                                                            | 0x0000 | | 
|  | | * Order                                                             | 0x0001 | | 
|  | | * Description                                                       | 0x0002 | | 
|  | | * WiredAssessedInputVoltage                                         | 0x0003 | | 
|  | | * WiredAssessedInputFrequency                                       | 0x0004 | | 
|  | | * WiredCurrentType                                                  | 0x0005 | | 
|  | | * WiredAssessedCurrent                                              | 0x0006 | | 
|  | | * WiredNominalVoltage                                               | 0x0007 | | 
|  | | * WiredMaximumCurrent                                               | 0x0008 | | 
|  | | * WiredPresent                                                      | 0x0009 | | 
|  | | * ActiveWiredFaults                                                 | 0x000A | | 
|  | | * BatVoltage                                                        | 0x000B | | 
|  | | * BatPercentRemaining                                               | 0x000C | | 
|  | | * BatTimeRemaining                                                  | 0x000D | | 
|  | | * BatChargeLevel                                                    | 0x000E | | 
|  | | * BatReplacementNeeded                                              | 0x000F | | 
|  | | * BatReplaceability                                                 | 0x0010 | | 
|  | | * BatPresent                                                        | 0x0011 | | 
|  | | * ActiveBatFaults                                                   | 0x0012 | | 
|  | | * BatReplacementDescription                                         | 0x0013 | | 
|  | | * BatCommonDesignation                                              | 0x0014 | | 
|  | | * BatANSIDesignation                                                | 0x0015 | | 
|  | | * BatIECDesignation                                                 | 0x0016 | | 
|  | | * BatApprovedChemistry                                              | 0x0017 | | 
|  | | * BatCapacity                                                       | 0x0018 | | 
|  | | * BatQuantity                                                       | 0x0019 | | 
|  | | * BatChargeState                                                    | 0x001A | | 
|  | | * BatTimeToFullCharge                                               | 0x001B | | 
|  | | * BatFunctionalWhileCharging                                        | 0x001C | | 
|  | | * BatChargingCurrent                                                | 0x001D | | 
|  | | * ActiveBatChargeFaults                                             | 0x001E | | 
|  | | * GeneratedCommandList                                              | 0xFFF8 | | 
|  | | * AcceptedCommandList                                               | 0xFFF9 | | 
|  | | * EventList                                                         | 0xFFFA | | 
|  | | * AttributeList                                                     | 0xFFFB | | 
|  | | * FeatureMap                                                        | 0xFFFC | | 
|  | | * ClusterRevision                                                   | 0xFFFD | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Events:                                                             |        | | 
|  | | * WiredFaultChange                                                  | 0x0000 | | 
|  | | * BatFaultChange                                                    | 0x0001 | | 
|  | | * BatChargeFaultChange                                              | 0x0002 | | 
|  | \*----------------------------------------------------------------------------*/ | 
|  |  | 
|  | /*----------------------------------------------------------------------------*\ | 
|  | | Cluster GeneralCommissioning                                        | 0x0030 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Commands:                                                           |        | | 
|  | | * ArmFailSafe                                                       |   0x00 | | 
|  | | * SetRegulatoryConfig                                               |   0x02 | | 
|  | | * CommissioningComplete                                             |   0x04 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Attributes:                                                         |        | | 
|  | | * Breadcrumb                                                        | 0x0000 | | 
|  | | * BasicCommissioningInfo                                            | 0x0001 | | 
|  | | * RegulatoryConfig                                                  | 0x0002 | | 
|  | | * LocationCapability                                                | 0x0003 | | 
|  | | * SupportsConcurrentConnection                                      | 0x0004 | | 
|  | | * GeneratedCommandList                                              | 0xFFF8 | | 
|  | | * AcceptedCommandList                                               | 0xFFF9 | | 
|  | | * EventList                                                         | 0xFFFA | | 
|  | | * AttributeList                                                     | 0xFFFB | | 
|  | | * FeatureMap                                                        | 0xFFFC | | 
|  | | * ClusterRevision                                                   | 0xFFFD | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Events:                                                             |        | | 
|  | \*----------------------------------------------------------------------------*/ | 
|  |  | 
|  | /* | 
|  | * Command ArmFailSafe | 
|  | */ | 
|  | class GeneralCommissioningArmFailSafe : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | GeneralCommissioningArmFailSafe(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("arm-fail-safe", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("ExpiryLengthSeconds", 0, UINT16_MAX, &mRequest.expiryLengthSeconds); | 
|  | AddArgument("Breadcrumb", 0, UINT64_MAX, &mRequest.breadcrumb); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000030) command (0x00000000) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000030, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000030) command (0x00000000) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000030, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::GeneralCommissioning::Commands::ArmFailSafe::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command SetRegulatoryConfig | 
|  | */ | 
|  | class GeneralCommissioningSetRegulatoryConfig : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | GeneralCommissioningSetRegulatoryConfig(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("set-regulatory-config", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("NewRegulatoryConfig", 0, UINT8_MAX, &mRequest.newRegulatoryConfig); | 
|  | AddArgument("CountryCode", &mRequest.countryCode); | 
|  | AddArgument("Breadcrumb", 0, UINT64_MAX, &mRequest.breadcrumb); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000030) command (0x00000002) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000030, 0x00000002, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000030) command (0x00000002) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000030, 0x00000002, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::GeneralCommissioning::Commands::SetRegulatoryConfig::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command CommissioningComplete | 
|  | */ | 
|  | class GeneralCommissioningCommissioningComplete : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | GeneralCommissioningCommissioningComplete(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("commissioning-complete", credsIssuerConfig) | 
|  | { | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000030) command (0x00000004) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000030, 0x00000004, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000030) command (0x00000004) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000030, 0x00000004, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::GeneralCommissioning::Commands::CommissioningComplete::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /*----------------------------------------------------------------------------*\ | 
|  | | Cluster NetworkCommissioning                                        | 0x0031 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Commands:                                                           |        | | 
|  | | * ScanNetworks                                                      |   0x00 | | 
|  | | * AddOrUpdateWiFiNetwork                                            |   0x02 | | 
|  | | * AddOrUpdateThreadNetwork                                          |   0x03 | | 
|  | | * RemoveNetwork                                                     |   0x04 | | 
|  | | * ConnectNetwork                                                    |   0x06 | | 
|  | | * ReorderNetwork                                                    |   0x08 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Attributes:                                                         |        | | 
|  | | * MaxNetworks                                                       | 0x0000 | | 
|  | | * Networks                                                          | 0x0001 | | 
|  | | * ScanMaxTimeSeconds                                                | 0x0002 | | 
|  | | * ConnectMaxTimeSeconds                                             | 0x0003 | | 
|  | | * InterfaceEnabled                                                  | 0x0004 | | 
|  | | * LastNetworkingStatus                                              | 0x0005 | | 
|  | | * LastNetworkID                                                     | 0x0006 | | 
|  | | * LastConnectErrorValue                                             | 0x0007 | | 
|  | | * GeneratedCommandList                                              | 0xFFF8 | | 
|  | | * AcceptedCommandList                                               | 0xFFF9 | | 
|  | | * EventList                                                         | 0xFFFA | | 
|  | | * AttributeList                                                     | 0xFFFB | | 
|  | | * FeatureMap                                                        | 0xFFFC | | 
|  | | * ClusterRevision                                                   | 0xFFFD | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Events:                                                             |        | | 
|  | \*----------------------------------------------------------------------------*/ | 
|  |  | 
|  | /* | 
|  | * Command ScanNetworks | 
|  | */ | 
|  | class NetworkCommissioningScanNetworks : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | NetworkCommissioningScanNetworks(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("scan-networks", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("Ssid", &mRequest.ssid); | 
|  | AddArgument("Breadcrumb", 0, UINT64_MAX, &mRequest.breadcrumb); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000031) command (0x00000000) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000031, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000031) command (0x00000000) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000031, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::NetworkCommissioning::Commands::ScanNetworks::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command AddOrUpdateWiFiNetwork | 
|  | */ | 
|  | class NetworkCommissioningAddOrUpdateWiFiNetwork : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | NetworkCommissioningAddOrUpdateWiFiNetwork(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("add-or-update-wi-fi-network", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("Ssid", &mRequest.ssid); | 
|  | AddArgument("Credentials", &mRequest.credentials); | 
|  | AddArgument("Breadcrumb", 0, UINT64_MAX, &mRequest.breadcrumb); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000031) command (0x00000002) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000031, 0x00000002, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000031) command (0x00000002) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000031, 0x00000002, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::NetworkCommissioning::Commands::AddOrUpdateWiFiNetwork::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command AddOrUpdateThreadNetwork | 
|  | */ | 
|  | class NetworkCommissioningAddOrUpdateThreadNetwork : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | NetworkCommissioningAddOrUpdateThreadNetwork(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("add-or-update-thread-network", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("OperationalDataset", &mRequest.operationalDataset); | 
|  | AddArgument("Breadcrumb", 0, UINT64_MAX, &mRequest.breadcrumb); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000031) command (0x00000003) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000031, 0x00000003, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000031) command (0x00000003) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000031, 0x00000003, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::NetworkCommissioning::Commands::AddOrUpdateThreadNetwork::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command RemoveNetwork | 
|  | */ | 
|  | class NetworkCommissioningRemoveNetwork : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | NetworkCommissioningRemoveNetwork(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("remove-network", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("NetworkID", &mRequest.networkID); | 
|  | AddArgument("Breadcrumb", 0, UINT64_MAX, &mRequest.breadcrumb); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000031) command (0x00000004) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000031, 0x00000004, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000031) command (0x00000004) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000031, 0x00000004, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::NetworkCommissioning::Commands::RemoveNetwork::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command ConnectNetwork | 
|  | */ | 
|  | class NetworkCommissioningConnectNetwork : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | NetworkCommissioningConnectNetwork(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("connect-network", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("NetworkID", &mRequest.networkID); | 
|  | AddArgument("Breadcrumb", 0, UINT64_MAX, &mRequest.breadcrumb); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000031) command (0x00000006) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000031, 0x00000006, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000031) command (0x00000006) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000031, 0x00000006, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::NetworkCommissioning::Commands::ConnectNetwork::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command ReorderNetwork | 
|  | */ | 
|  | class NetworkCommissioningReorderNetwork : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | NetworkCommissioningReorderNetwork(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("reorder-network", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("NetworkID", &mRequest.networkID); | 
|  | AddArgument("NetworkIndex", 0, UINT8_MAX, &mRequest.networkIndex); | 
|  | AddArgument("Breadcrumb", 0, UINT64_MAX, &mRequest.breadcrumb); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000031) command (0x00000008) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000031, 0x00000008, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000031) command (0x00000008) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000031, 0x00000008, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::NetworkCommissioning::Commands::ReorderNetwork::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /*----------------------------------------------------------------------------*\ | 
|  | | Cluster DiagnosticLogs                                              | 0x0032 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Commands:                                                           |        | | 
|  | | * RetrieveLogsRequest                                               |   0x00 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Attributes:                                                         |        | | 
|  | | * GeneratedCommandList                                              | 0xFFF8 | | 
|  | | * AcceptedCommandList                                               | 0xFFF9 | | 
|  | | * EventList                                                         | 0xFFFA | | 
|  | | * AttributeList                                                     | 0xFFFB | | 
|  | | * FeatureMap                                                        | 0xFFFC | | 
|  | | * ClusterRevision                                                   | 0xFFFD | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Events:                                                             |        | | 
|  | \*----------------------------------------------------------------------------*/ | 
|  |  | 
|  | /* | 
|  | * Command RetrieveLogsRequest | 
|  | */ | 
|  | class DiagnosticLogsRetrieveLogsRequest : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | DiagnosticLogsRetrieveLogsRequest(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("retrieve-logs-request", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("Intent", 0, UINT8_MAX, &mRequest.intent); | 
|  | AddArgument("RequestedProtocol", 0, UINT8_MAX, &mRequest.requestedProtocol); | 
|  | AddArgument("TransferFileDesignator", &mRequest.transferFileDesignator); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000032) command (0x00000000) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000032, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000032) command (0x00000000) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000032, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::DiagnosticLogs::Commands::RetrieveLogsRequest::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /*----------------------------------------------------------------------------*\ | 
|  | | Cluster GeneralDiagnostics                                          | 0x0033 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Commands:                                                           |        | | 
|  | | * TestEventTrigger                                                  |   0x00 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Attributes:                                                         |        | | 
|  | | * NetworkInterfaces                                                 | 0x0000 | | 
|  | | * RebootCount                                                       | 0x0001 | | 
|  | | * UpTime                                                            | 0x0002 | | 
|  | | * TotalOperationalHours                                             | 0x0003 | | 
|  | | * BootReason                                                        | 0x0004 | | 
|  | | * ActiveHardwareFaults                                              | 0x0005 | | 
|  | | * ActiveRadioFaults                                                 | 0x0006 | | 
|  | | * ActiveNetworkFaults                                               | 0x0007 | | 
|  | | * TestEventTriggersEnabled                                          | 0x0008 | | 
|  | | * GeneratedCommandList                                              | 0xFFF8 | | 
|  | | * AcceptedCommandList                                               | 0xFFF9 | | 
|  | | * EventList                                                         | 0xFFFA | | 
|  | | * AttributeList                                                     | 0xFFFB | | 
|  | | * FeatureMap                                                        | 0xFFFC | | 
|  | | * ClusterRevision                                                   | 0xFFFD | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Events:                                                             |        | | 
|  | | * HardwareFaultChange                                               | 0x0000 | | 
|  | | * RadioFaultChange                                                  | 0x0001 | | 
|  | | * NetworkFaultChange                                                | 0x0002 | | 
|  | | * BootReason                                                        | 0x0003 | | 
|  | \*----------------------------------------------------------------------------*/ | 
|  |  | 
|  | /* | 
|  | * Command TestEventTrigger | 
|  | */ | 
|  | class GeneralDiagnosticsTestEventTrigger : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | GeneralDiagnosticsTestEventTrigger(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("test-event-trigger", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("EnableKey", &mRequest.enableKey); | 
|  | AddArgument("EventTrigger", 0, UINT64_MAX, &mRequest.eventTrigger); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000033) command (0x00000000) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000033, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000033) command (0x00000000) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000033, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::GeneralDiagnostics::Commands::TestEventTrigger::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /*----------------------------------------------------------------------------*\ | 
|  | | Cluster SoftwareDiagnostics                                         | 0x0034 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Commands:                                                           |        | | 
|  | | * ResetWatermarks                                                   |   0x00 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Attributes:                                                         |        | | 
|  | | * ThreadMetrics                                                     | 0x0000 | | 
|  | | * CurrentHeapFree                                                   | 0x0001 | | 
|  | | * CurrentHeapUsed                                                   | 0x0002 | | 
|  | | * CurrentHeapHighWatermark                                          | 0x0003 | | 
|  | | * GeneratedCommandList                                              | 0xFFF8 | | 
|  | | * AcceptedCommandList                                               | 0xFFF9 | | 
|  | | * EventList                                                         | 0xFFFA | | 
|  | | * AttributeList                                                     | 0xFFFB | | 
|  | | * FeatureMap                                                        | 0xFFFC | | 
|  | | * ClusterRevision                                                   | 0xFFFD | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Events:                                                             |        | | 
|  | | * SoftwareFault                                                     | 0x0000 | | 
|  | \*----------------------------------------------------------------------------*/ | 
|  |  | 
|  | /* | 
|  | * Command ResetWatermarks | 
|  | */ | 
|  | class SoftwareDiagnosticsResetWatermarks : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | SoftwareDiagnosticsResetWatermarks(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("reset-watermarks", credsIssuerConfig) | 
|  | { | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000034) command (0x00000000) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000034, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000034) command (0x00000000) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000034, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::SoftwareDiagnostics::Commands::ResetWatermarks::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /*----------------------------------------------------------------------------*\ | 
|  | | Cluster ThreadNetworkDiagnostics                                    | 0x0035 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Commands:                                                           |        | | 
|  | | * ResetCounts                                                       |   0x00 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Attributes:                                                         |        | | 
|  | | * Channel                                                           | 0x0000 | | 
|  | | * RoutingRole                                                       | 0x0001 | | 
|  | | * NetworkName                                                       | 0x0002 | | 
|  | | * PanId                                                             | 0x0003 | | 
|  | | * ExtendedPanId                                                     | 0x0004 | | 
|  | | * MeshLocalPrefix                                                   | 0x0005 | | 
|  | | * OverrunCount                                                      | 0x0006 | | 
|  | | * NeighborTable                                                     | 0x0007 | | 
|  | | * RouteTable                                                        | 0x0008 | | 
|  | | * PartitionId                                                       | 0x0009 | | 
|  | | * Weighting                                                         | 0x000A | | 
|  | | * DataVersion                                                       | 0x000B | | 
|  | | * StableDataVersion                                                 | 0x000C | | 
|  | | * LeaderRouterId                                                    | 0x000D | | 
|  | | * DetachedRoleCount                                                 | 0x000E | | 
|  | | * ChildRoleCount                                                    | 0x000F | | 
|  | | * RouterRoleCount                                                   | 0x0010 | | 
|  | | * LeaderRoleCount                                                   | 0x0011 | | 
|  | | * AttachAttemptCount                                                | 0x0012 | | 
|  | | * PartitionIdChangeCount                                            | 0x0013 | | 
|  | | * BetterPartitionAttachAttemptCount                                 | 0x0014 | | 
|  | | * ParentChangeCount                                                 | 0x0015 | | 
|  | | * TxTotalCount                                                      | 0x0016 | | 
|  | | * TxUnicastCount                                                    | 0x0017 | | 
|  | | * TxBroadcastCount                                                  | 0x0018 | | 
|  | | * TxAckRequestedCount                                               | 0x0019 | | 
|  | | * TxAckedCount                                                      | 0x001A | | 
|  | | * TxNoAckRequestedCount                                             | 0x001B | | 
|  | | * TxDataCount                                                       | 0x001C | | 
|  | | * TxDataPollCount                                                   | 0x001D | | 
|  | | * TxBeaconCount                                                     | 0x001E | | 
|  | | * TxBeaconRequestCount                                              | 0x001F | | 
|  | | * TxOtherCount                                                      | 0x0020 | | 
|  | | * TxRetryCount                                                      | 0x0021 | | 
|  | | * TxDirectMaxRetryExpiryCount                                       | 0x0022 | | 
|  | | * TxIndirectMaxRetryExpiryCount                                     | 0x0023 | | 
|  | | * TxErrCcaCount                                                     | 0x0024 | | 
|  | | * TxErrAbortCount                                                   | 0x0025 | | 
|  | | * TxErrBusyChannelCount                                             | 0x0026 | | 
|  | | * RxTotalCount                                                      | 0x0027 | | 
|  | | * RxUnicastCount                                                    | 0x0028 | | 
|  | | * RxBroadcastCount                                                  | 0x0029 | | 
|  | | * RxDataCount                                                       | 0x002A | | 
|  | | * RxDataPollCount                                                   | 0x002B | | 
|  | | * RxBeaconCount                                                     | 0x002C | | 
|  | | * RxBeaconRequestCount                                              | 0x002D | | 
|  | | * RxOtherCount                                                      | 0x002E | | 
|  | | * RxAddressFilteredCount                                            | 0x002F | | 
|  | | * RxDestAddrFilteredCount                                           | 0x0030 | | 
|  | | * RxDuplicatedCount                                                 | 0x0031 | | 
|  | | * RxErrNoFrameCount                                                 | 0x0032 | | 
|  | | * RxErrUnknownNeighborCount                                         | 0x0033 | | 
|  | | * RxErrInvalidSrcAddrCount                                          | 0x0034 | | 
|  | | * RxErrSecCount                                                     | 0x0035 | | 
|  | | * RxErrFcsCount                                                     | 0x0036 | | 
|  | | * RxErrOtherCount                                                   | 0x0037 | | 
|  | | * ActiveTimestamp                                                   | 0x0038 | | 
|  | | * PendingTimestamp                                                  | 0x0039 | | 
|  | | * Delay                                                             | 0x003A | | 
|  | | * SecurityPolicy                                                    | 0x003B | | 
|  | | * ChannelPage0Mask                                                  | 0x003C | | 
|  | | * OperationalDatasetComponents                                      | 0x003D | | 
|  | | * ActiveNetworkFaultsList                                           | 0x003E | | 
|  | | * GeneratedCommandList                                              | 0xFFF8 | | 
|  | | * AcceptedCommandList                                               | 0xFFF9 | | 
|  | | * EventList                                                         | 0xFFFA | | 
|  | | * AttributeList                                                     | 0xFFFB | | 
|  | | * FeatureMap                                                        | 0xFFFC | | 
|  | | * ClusterRevision                                                   | 0xFFFD | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Events:                                                             |        | | 
|  | | * ConnectionStatus                                                  | 0x0000 | | 
|  | | * NetworkFaultChange                                                | 0x0001 | | 
|  | \*----------------------------------------------------------------------------*/ | 
|  |  | 
|  | /* | 
|  | * Command ResetCounts | 
|  | */ | 
|  | class ThreadNetworkDiagnosticsResetCounts : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | ThreadNetworkDiagnosticsResetCounts(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("reset-counts", credsIssuerConfig) | 
|  | { | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000035) command (0x00000000) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000035, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000035) command (0x00000000) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000035, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::ThreadNetworkDiagnostics::Commands::ResetCounts::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /*----------------------------------------------------------------------------*\ | 
|  | | Cluster WiFiNetworkDiagnostics                                      | 0x0036 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Commands:                                                           |        | | 
|  | | * ResetCounts                                                       |   0x00 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Attributes:                                                         |        | | 
|  | | * Bssid                                                             | 0x0000 | | 
|  | | * SecurityType                                                      | 0x0001 | | 
|  | | * WiFiVersion                                                       | 0x0002 | | 
|  | | * ChannelNumber                                                     | 0x0003 | | 
|  | | * Rssi                                                              | 0x0004 | | 
|  | | * BeaconLostCount                                                   | 0x0005 | | 
|  | | * BeaconRxCount                                                     | 0x0006 | | 
|  | | * PacketMulticastRxCount                                            | 0x0007 | | 
|  | | * PacketMulticastTxCount                                            | 0x0008 | | 
|  | | * PacketUnicastRxCount                                              | 0x0009 | | 
|  | | * PacketUnicastTxCount                                              | 0x000A | | 
|  | | * CurrentMaxRate                                                    | 0x000B | | 
|  | | * OverrunCount                                                      | 0x000C | | 
|  | | * GeneratedCommandList                                              | 0xFFF8 | | 
|  | | * AcceptedCommandList                                               | 0xFFF9 | | 
|  | | * EventList                                                         | 0xFFFA | | 
|  | | * AttributeList                                                     | 0xFFFB | | 
|  | | * FeatureMap                                                        | 0xFFFC | | 
|  | | * ClusterRevision                                                   | 0xFFFD | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Events:                                                             |        | | 
|  | | * Disconnection                                                     | 0x0000 | | 
|  | | * AssociationFailure                                                | 0x0001 | | 
|  | | * ConnectionStatus                                                  | 0x0002 | | 
|  | \*----------------------------------------------------------------------------*/ | 
|  |  | 
|  | /* | 
|  | * Command ResetCounts | 
|  | */ | 
|  | class WiFiNetworkDiagnosticsResetCounts : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | WiFiNetworkDiagnosticsResetCounts(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("reset-counts", credsIssuerConfig) | 
|  | { | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000036) command (0x00000000) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000036, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000036) command (0x00000000) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000036, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::WiFiNetworkDiagnostics::Commands::ResetCounts::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /*----------------------------------------------------------------------------*\ | 
|  | | Cluster EthernetNetworkDiagnostics                                  | 0x0037 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Commands:                                                           |        | | 
|  | | * ResetCounts                                                       |   0x00 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Attributes:                                                         |        | | 
|  | | * PHYRate                                                           | 0x0000 | | 
|  | | * FullDuplex                                                        | 0x0001 | | 
|  | | * PacketRxCount                                                     | 0x0002 | | 
|  | | * PacketTxCount                                                     | 0x0003 | | 
|  | | * TxErrCount                                                        | 0x0004 | | 
|  | | * CollisionCount                                                    | 0x0005 | | 
|  | | * OverrunCount                                                      | 0x0006 | | 
|  | | * CarrierDetect                                                     | 0x0007 | | 
|  | | * TimeSinceReset                                                    | 0x0008 | | 
|  | | * GeneratedCommandList                                              | 0xFFF8 | | 
|  | | * AcceptedCommandList                                               | 0xFFF9 | | 
|  | | * EventList                                                         | 0xFFFA | | 
|  | | * AttributeList                                                     | 0xFFFB | | 
|  | | * FeatureMap                                                        | 0xFFFC | | 
|  | | * ClusterRevision                                                   | 0xFFFD | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Events:                                                             |        | | 
|  | \*----------------------------------------------------------------------------*/ | 
|  |  | 
|  | /* | 
|  | * Command ResetCounts | 
|  | */ | 
|  | class EthernetNetworkDiagnosticsResetCounts : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | EthernetNetworkDiagnosticsResetCounts(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("reset-counts", credsIssuerConfig) | 
|  | { | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000037) command (0x00000000) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000037, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000037) command (0x00000000) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000037, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::EthernetNetworkDiagnostics::Commands::ResetCounts::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /*----------------------------------------------------------------------------*\ | 
|  | | Cluster TimeSynchronization                                         | 0x0038 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Commands:                                                           |        | | 
|  | | * SetUTCTime                                                        |   0x00 | | 
|  | | * SetTrustedTimeSource                                              |   0x01 | | 
|  | | * SetTimeZone                                                       |   0x02 | | 
|  | | * SetDSTOffset                                                      |   0x04 | | 
|  | | * SetDefaultNTP                                                     |   0x05 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Attributes:                                                         |        | | 
|  | | * UTCTime                                                           | 0x0000 | | 
|  | | * Granularity                                                       | 0x0001 | | 
|  | | * TimeSource                                                        | 0x0002 | | 
|  | | * TrustedTimeSource                                                 | 0x0003 | | 
|  | | * DefaultNTP                                                        | 0x0004 | | 
|  | | * TimeZone                                                          | 0x0005 | | 
|  | | * DSTOffset                                                         | 0x0006 | | 
|  | | * LocalTime                                                         | 0x0007 | | 
|  | | * TimeZoneDatabase                                                  | 0x0008 | | 
|  | | * NTPServerAvailable                                                | 0x0009 | | 
|  | | * TimeZoneListMaxSize                                               | 0x000A | | 
|  | | * DSTOffsetListMaxSize                                              | 0x000B | | 
|  | | * SupportsDNSResolve                                                | 0x000C | | 
|  | | * GeneratedCommandList                                              | 0xFFF8 | | 
|  | | * AcceptedCommandList                                               | 0xFFF9 | | 
|  | | * EventList                                                         | 0xFFFA | | 
|  | | * AttributeList                                                     | 0xFFFB | | 
|  | | * FeatureMap                                                        | 0xFFFC | | 
|  | | * ClusterRevision                                                   | 0xFFFD | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Events:                                                             |        | | 
|  | | * DSTTableEmpty                                                     | 0x0000 | | 
|  | | * DSTStatus                                                         | 0x0001 | | 
|  | | * TimeZoneStatus                                                    | 0x0002 | | 
|  | | * TimeFailure                                                       | 0x0003 | | 
|  | | * MissingTrustedTimeSource                                          | 0x0004 | | 
|  | \*----------------------------------------------------------------------------*/ | 
|  |  | 
|  | /* | 
|  | * Command SetUTCTime | 
|  | */ | 
|  | class TimeSynchronizationSetUTCTime : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | TimeSynchronizationSetUTCTime(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("set-utctime", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("UTCTime", 0, UINT64_MAX, &mRequest.UTCTime); | 
|  | AddArgument("Granularity", 0, UINT8_MAX, &mRequest.granularity); | 
|  | AddArgument("TimeSource", 0, UINT8_MAX, &mRequest.timeSource); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000038) command (0x00000000) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000038, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000038) command (0x00000000) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000038, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::TimeSynchronization::Commands::SetUTCTime::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command SetTrustedTimeSource | 
|  | */ | 
|  | class TimeSynchronizationSetTrustedTimeSource : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | TimeSynchronizationSetTrustedTimeSource(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("set-trusted-time-source", credsIssuerConfig), mComplex_TrustedTimeSource(&mRequest.trustedTimeSource) | 
|  | { | 
|  | AddArgument("TrustedTimeSource", &mComplex_TrustedTimeSource); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000038) command (0x00000001) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000038, 0x00000001, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000038) command (0x00000001) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000038, 0x00000001, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::TimeSynchronization::Commands::SetTrustedTimeSource::Type mRequest; | 
|  | TypedComplexArgument<chip::app::DataModel::Nullable< | 
|  | chip::app::Clusters::TimeSynchronization::Structs::FabricScopedTrustedTimeSourceStruct::Type>> | 
|  | mComplex_TrustedTimeSource; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command SetTimeZone | 
|  | */ | 
|  | class TimeSynchronizationSetTimeZone : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | TimeSynchronizationSetTimeZone(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("set-time-zone", credsIssuerConfig), mComplex_TimeZone(&mRequest.timeZone) | 
|  | { | 
|  | AddArgument("TimeZone", &mComplex_TimeZone); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000038) command (0x00000002) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000038, 0x00000002, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000038) command (0x00000002) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000038, 0x00000002, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::TimeSynchronization::Commands::SetTimeZone::Type mRequest; | 
|  | TypedComplexArgument<chip::app::DataModel::List<const chip::app::Clusters::TimeSynchronization::Structs::TimeZoneStruct::Type>> | 
|  | mComplex_TimeZone; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command SetDSTOffset | 
|  | */ | 
|  | class TimeSynchronizationSetDSTOffset : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | TimeSynchronizationSetDSTOffset(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("set-dstoffset", credsIssuerConfig), mComplex_DSTOffset(&mRequest.DSTOffset) | 
|  | { | 
|  | AddArgument("DSTOffset", &mComplex_DSTOffset); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000038) command (0x00000004) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000038, 0x00000004, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000038) command (0x00000004) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000038, 0x00000004, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::TimeSynchronization::Commands::SetDSTOffset::Type mRequest; | 
|  | TypedComplexArgument<chip::app::DataModel::List<const chip::app::Clusters::TimeSynchronization::Structs::DSTOffsetStruct::Type>> | 
|  | mComplex_DSTOffset; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command SetDefaultNTP | 
|  | */ | 
|  | class TimeSynchronizationSetDefaultNTP : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | TimeSynchronizationSetDefaultNTP(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("set-default-ntp", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("DefaultNTP", &mRequest.defaultNTP); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000038) command (0x00000005) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000038, 0x00000005, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000038) command (0x00000005) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000038, 0x00000005, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::TimeSynchronization::Commands::SetDefaultNTP::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /*----------------------------------------------------------------------------*\ | 
|  | | Cluster BridgedDeviceBasicInformation                               | 0x0039 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Commands:                                                           |        | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Attributes:                                                         |        | | 
|  | | * VendorName                                                        | 0x0001 | | 
|  | | * VendorID                                                          | 0x0002 | | 
|  | | * ProductName                                                       | 0x0003 | | 
|  | | * NodeLabel                                                         | 0x0005 | | 
|  | | * HardwareVersion                                                   | 0x0007 | | 
|  | | * HardwareVersionString                                             | 0x0008 | | 
|  | | * SoftwareVersion                                                   | 0x0009 | | 
|  | | * SoftwareVersionString                                             | 0x000A | | 
|  | | * ManufacturingDate                                                 | 0x000B | | 
|  | | * PartNumber                                                        | 0x000C | | 
|  | | * ProductURL                                                        | 0x000D | | 
|  | | * ProductLabel                                                      | 0x000E | | 
|  | | * SerialNumber                                                      | 0x000F | | 
|  | | * Reachable                                                         | 0x0011 | | 
|  | | * UniqueID                                                          | 0x0012 | | 
|  | | * ProductAppearance                                                 | 0x0014 | | 
|  | | * GeneratedCommandList                                              | 0xFFF8 | | 
|  | | * AcceptedCommandList                                               | 0xFFF9 | | 
|  | | * EventList                                                         | 0xFFFA | | 
|  | | * AttributeList                                                     | 0xFFFB | | 
|  | | * FeatureMap                                                        | 0xFFFC | | 
|  | | * ClusterRevision                                                   | 0xFFFD | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Events:                                                             |        | | 
|  | | * StartUp                                                           | 0x0000 | | 
|  | | * ShutDown                                                          | 0x0001 | | 
|  | | * Leave                                                             | 0x0002 | | 
|  | | * ReachableChanged                                                  | 0x0003 | | 
|  | \*----------------------------------------------------------------------------*/ | 
|  |  | 
|  | /*----------------------------------------------------------------------------*\ | 
|  | | Cluster Switch                                                      | 0x003B | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Commands:                                                           |        | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Attributes:                                                         |        | | 
|  | | * NumberOfPositions                                                 | 0x0000 | | 
|  | | * CurrentPosition                                                   | 0x0001 | | 
|  | | * MultiPressMax                                                     | 0x0002 | | 
|  | | * GeneratedCommandList                                              | 0xFFF8 | | 
|  | | * AcceptedCommandList                                               | 0xFFF9 | | 
|  | | * EventList                                                         | 0xFFFA | | 
|  | | * AttributeList                                                     | 0xFFFB | | 
|  | | * FeatureMap                                                        | 0xFFFC | | 
|  | | * ClusterRevision                                                   | 0xFFFD | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Events:                                                             |        | | 
|  | | * SwitchLatched                                                     | 0x0000 | | 
|  | | * InitialPress                                                      | 0x0001 | | 
|  | | * LongPress                                                         | 0x0002 | | 
|  | | * ShortRelease                                                      | 0x0003 | | 
|  | | * LongRelease                                                       | 0x0004 | | 
|  | | * MultiPressOngoing                                                 | 0x0005 | | 
|  | | * MultiPressComplete                                                | 0x0006 | | 
|  | \*----------------------------------------------------------------------------*/ | 
|  |  | 
|  | /*----------------------------------------------------------------------------*\ | 
|  | | Cluster AdministratorCommissioning                                  | 0x003C | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Commands:                                                           |        | | 
|  | | * OpenCommissioningWindow                                           |   0x00 | | 
|  | | * OpenBasicCommissioningWindow                                      |   0x01 | | 
|  | | * RevokeCommissioning                                               |   0x02 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Attributes:                                                         |        | | 
|  | | * WindowStatus                                                      | 0x0000 | | 
|  | | * AdminFabricIndex                                                  | 0x0001 | | 
|  | | * AdminVendorId                                                     | 0x0002 | | 
|  | | * GeneratedCommandList                                              | 0xFFF8 | | 
|  | | * AcceptedCommandList                                               | 0xFFF9 | | 
|  | | * EventList                                                         | 0xFFFA | | 
|  | | * AttributeList                                                     | 0xFFFB | | 
|  | | * FeatureMap                                                        | 0xFFFC | | 
|  | | * ClusterRevision                                                   | 0xFFFD | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Events:                                                             |        | | 
|  | \*----------------------------------------------------------------------------*/ | 
|  |  | 
|  | /* | 
|  | * Command OpenCommissioningWindow | 
|  | */ | 
|  | class AdministratorCommissioningOpenCommissioningWindow : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | AdministratorCommissioningOpenCommissioningWindow(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("open-commissioning-window", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("CommissioningTimeout", 0, UINT16_MAX, &mRequest.commissioningTimeout); | 
|  | AddArgument("PAKEPasscodeVerifier", &mRequest.PAKEPasscodeVerifier); | 
|  | AddArgument("Discriminator", 0, UINT16_MAX, &mRequest.discriminator); | 
|  | AddArgument("Iterations", 0, UINT32_MAX, &mRequest.iterations); | 
|  | AddArgument("Salt", &mRequest.salt); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x0000003C) command (0x00000000) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x0000003C, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x0000003C) command (0x00000000) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x0000003C, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::AdministratorCommissioning::Commands::OpenCommissioningWindow::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command OpenBasicCommissioningWindow | 
|  | */ | 
|  | class AdministratorCommissioningOpenBasicCommissioningWindow : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | AdministratorCommissioningOpenBasicCommissioningWindow(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("open-basic-commissioning-window", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("CommissioningTimeout", 0, UINT16_MAX, &mRequest.commissioningTimeout); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x0000003C) command (0x00000001) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x0000003C, 0x00000001, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x0000003C) command (0x00000001) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x0000003C, 0x00000001, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::AdministratorCommissioning::Commands::OpenBasicCommissioningWindow::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command RevokeCommissioning | 
|  | */ | 
|  | class AdministratorCommissioningRevokeCommissioning : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | AdministratorCommissioningRevokeCommissioning(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("revoke-commissioning", credsIssuerConfig) | 
|  | { | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x0000003C) command (0x00000002) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x0000003C, 0x00000002, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x0000003C) command (0x00000002) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x0000003C, 0x00000002, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::AdministratorCommissioning::Commands::RevokeCommissioning::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /*----------------------------------------------------------------------------*\ | 
|  | | Cluster OperationalCredentials                                      | 0x003E | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Commands:                                                           |        | | 
|  | | * AttestationRequest                                                |   0x00 | | 
|  | | * CertificateChainRequest                                           |   0x02 | | 
|  | | * CSRRequest                                                        |   0x04 | | 
|  | | * AddNOC                                                            |   0x06 | | 
|  | | * UpdateNOC                                                         |   0x07 | | 
|  | | * UpdateFabricLabel                                                 |   0x09 | | 
|  | | * RemoveFabric                                                      |   0x0A | | 
|  | | * AddTrustedRootCertificate                                         |   0x0B | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Attributes:                                                         |        | | 
|  | | * NOCs                                                              | 0x0000 | | 
|  | | * Fabrics                                                           | 0x0001 | | 
|  | | * SupportedFabrics                                                  | 0x0002 | | 
|  | | * CommissionedFabrics                                               | 0x0003 | | 
|  | | * TrustedRootCertificates                                           | 0x0004 | | 
|  | | * CurrentFabricIndex                                                | 0x0005 | | 
|  | | * GeneratedCommandList                                              | 0xFFF8 | | 
|  | | * AcceptedCommandList                                               | 0xFFF9 | | 
|  | | * EventList                                                         | 0xFFFA | | 
|  | | * AttributeList                                                     | 0xFFFB | | 
|  | | * FeatureMap                                                        | 0xFFFC | | 
|  | | * ClusterRevision                                                   | 0xFFFD | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Events:                                                             |        | | 
|  | \*----------------------------------------------------------------------------*/ | 
|  |  | 
|  | /* | 
|  | * Command AttestationRequest | 
|  | */ | 
|  | class OperationalCredentialsAttestationRequest : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | OperationalCredentialsAttestationRequest(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("attestation-request", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("AttestationNonce", &mRequest.attestationNonce); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x0000003E) command (0x00000000) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x0000003E, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x0000003E) command (0x00000000) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x0000003E, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::OperationalCredentials::Commands::AttestationRequest::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command CertificateChainRequest | 
|  | */ | 
|  | class OperationalCredentialsCertificateChainRequest : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | OperationalCredentialsCertificateChainRequest(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("certificate-chain-request", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("CertificateType", 0, UINT8_MAX, &mRequest.certificateType); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x0000003E) command (0x00000002) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x0000003E, 0x00000002, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x0000003E) command (0x00000002) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x0000003E, 0x00000002, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::OperationalCredentials::Commands::CertificateChainRequest::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command CSRRequest | 
|  | */ | 
|  | class OperationalCredentialsCSRRequest : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | OperationalCredentialsCSRRequest(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("csrrequest", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("CSRNonce", &mRequest.CSRNonce); | 
|  | AddArgument("IsForUpdateNOC", 0, 1, &mRequest.isForUpdateNOC); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x0000003E) command (0x00000004) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x0000003E, 0x00000004, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x0000003E) command (0x00000004) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x0000003E, 0x00000004, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::OperationalCredentials::Commands::CSRRequest::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command AddNOC | 
|  | */ | 
|  | class OperationalCredentialsAddNOC : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | OperationalCredentialsAddNOC(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("add-noc", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("NOCValue", &mRequest.NOCValue); | 
|  | AddArgument("ICACValue", &mRequest.ICACValue); | 
|  | AddArgument("IPKValue", &mRequest.IPKValue); | 
|  | AddArgument("CaseAdminSubject", 0, UINT64_MAX, &mRequest.caseAdminSubject); | 
|  | AddArgument("AdminVendorId", 0, UINT16_MAX, &mRequest.adminVendorId); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x0000003E) command (0x00000006) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x0000003E, 0x00000006, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x0000003E) command (0x00000006) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x0000003E, 0x00000006, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::OperationalCredentials::Commands::AddNOC::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command UpdateNOC | 
|  | */ | 
|  | class OperationalCredentialsUpdateNOC : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | OperationalCredentialsUpdateNOC(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("update-noc", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("NOCValue", &mRequest.NOCValue); | 
|  | AddArgument("ICACValue", &mRequest.ICACValue); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x0000003E) command (0x00000007) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x0000003E, 0x00000007, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x0000003E) command (0x00000007) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x0000003E, 0x00000007, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::OperationalCredentials::Commands::UpdateNOC::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command UpdateFabricLabel | 
|  | */ | 
|  | class OperationalCredentialsUpdateFabricLabel : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | OperationalCredentialsUpdateFabricLabel(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("update-fabric-label", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("Label", &mRequest.label); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x0000003E) command (0x00000009) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x0000003E, 0x00000009, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x0000003E) command (0x00000009) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x0000003E, 0x00000009, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::OperationalCredentials::Commands::UpdateFabricLabel::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command RemoveFabric | 
|  | */ | 
|  | class OperationalCredentialsRemoveFabric : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | OperationalCredentialsRemoveFabric(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("remove-fabric", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("FabricIndex", 0, UINT8_MAX, &mRequest.fabricIndex); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x0000003E) command (0x0000000A) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x0000003E, 0x0000000A, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x0000003E) command (0x0000000A) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x0000003E, 0x0000000A, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::OperationalCredentials::Commands::RemoveFabric::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command AddTrustedRootCertificate | 
|  | */ | 
|  | class OperationalCredentialsAddTrustedRootCertificate : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | OperationalCredentialsAddTrustedRootCertificate(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("add-trusted-root-certificate", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("RootCACertificate", &mRequest.rootCACertificate); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x0000003E) command (0x0000000B) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x0000003E, 0x0000000B, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x0000003E) command (0x0000000B) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x0000003E, 0x0000000B, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::OperationalCredentials::Commands::AddTrustedRootCertificate::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /*----------------------------------------------------------------------------*\ | 
|  | | Cluster GroupKeyManagement                                          | 0x003F | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Commands:                                                           |        | | 
|  | | * KeySetWrite                                                       |   0x00 | | 
|  | | * KeySetRead                                                        |   0x01 | | 
|  | | * KeySetRemove                                                      |   0x03 | | 
|  | | * KeySetReadAllIndices                                              |   0x04 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Attributes:                                                         |        | | 
|  | | * GroupKeyMap                                                       | 0x0000 | | 
|  | | * GroupTable                                                        | 0x0001 | | 
|  | | * MaxGroupsPerFabric                                                | 0x0002 | | 
|  | | * MaxGroupKeysPerFabric                                             | 0x0003 | | 
|  | | * GeneratedCommandList                                              | 0xFFF8 | | 
|  | | * AcceptedCommandList                                               | 0xFFF9 | | 
|  | | * EventList                                                         | 0xFFFA | | 
|  | | * AttributeList                                                     | 0xFFFB | | 
|  | | * FeatureMap                                                        | 0xFFFC | | 
|  | | * ClusterRevision                                                   | 0xFFFD | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Events:                                                             |        | | 
|  | \*----------------------------------------------------------------------------*/ | 
|  |  | 
|  | /* | 
|  | * Command KeySetWrite | 
|  | */ | 
|  | class GroupKeyManagementKeySetWrite : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | GroupKeyManagementKeySetWrite(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("key-set-write", credsIssuerConfig), mComplex_GroupKeySet(&mRequest.groupKeySet) | 
|  | { | 
|  | AddArgument("GroupKeySet", &mComplex_GroupKeySet); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x0000003F) command (0x00000000) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x0000003F, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x0000003F) command (0x00000000) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x0000003F, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::GroupKeyManagement::Commands::KeySetWrite::Type mRequest; | 
|  | TypedComplexArgument<chip::app::Clusters::GroupKeyManagement::Structs::GroupKeySetStruct::Type> mComplex_GroupKeySet; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command KeySetRead | 
|  | */ | 
|  | class GroupKeyManagementKeySetRead : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | GroupKeyManagementKeySetRead(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("key-set-read", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("GroupKeySetID", 0, UINT16_MAX, &mRequest.groupKeySetID); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x0000003F) command (0x00000001) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x0000003F, 0x00000001, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x0000003F) command (0x00000001) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x0000003F, 0x00000001, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::GroupKeyManagement::Commands::KeySetRead::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command KeySetRemove | 
|  | */ | 
|  | class GroupKeyManagementKeySetRemove : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | GroupKeyManagementKeySetRemove(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("key-set-remove", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("GroupKeySetID", 0, UINT16_MAX, &mRequest.groupKeySetID); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x0000003F) command (0x00000003) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x0000003F, 0x00000003, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x0000003F) command (0x00000003) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x0000003F, 0x00000003, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::GroupKeyManagement::Commands::KeySetRemove::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command KeySetReadAllIndices | 
|  | */ | 
|  | class GroupKeyManagementKeySetReadAllIndices : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | GroupKeyManagementKeySetReadAllIndices(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("key-set-read-all-indices", credsIssuerConfig), mComplex_GroupKeySetIDs(&mRequest.groupKeySetIDs) | 
|  | { | 
|  | AddArgument("GroupKeySetIDs", &mComplex_GroupKeySetIDs); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x0000003F) command (0x00000004) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x0000003F, 0x00000004, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x0000003F) command (0x00000004) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x0000003F, 0x00000004, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::GroupKeyManagement::Commands::KeySetReadAllIndices::Type mRequest; | 
|  | TypedComplexArgument<chip::app::DataModel::List<const uint16_t>> mComplex_GroupKeySetIDs; | 
|  | }; | 
|  |  | 
|  | /*----------------------------------------------------------------------------*\ | 
|  | | Cluster FixedLabel                                                  | 0x0040 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Commands:                                                           |        | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Attributes:                                                         |        | | 
|  | | * LabelList                                                         | 0x0000 | | 
|  | | * GeneratedCommandList                                              | 0xFFF8 | | 
|  | | * AcceptedCommandList                                               | 0xFFF9 | | 
|  | | * EventList                                                         | 0xFFFA | | 
|  | | * AttributeList                                                     | 0xFFFB | | 
|  | | * FeatureMap                                                        | 0xFFFC | | 
|  | | * ClusterRevision                                                   | 0xFFFD | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Events:                                                             |        | | 
|  | \*----------------------------------------------------------------------------*/ | 
|  |  | 
|  | /*----------------------------------------------------------------------------*\ | 
|  | | Cluster UserLabel                                                   | 0x0041 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Commands:                                                           |        | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Attributes:                                                         |        | | 
|  | | * LabelList                                                         | 0x0000 | | 
|  | | * GeneratedCommandList                                              | 0xFFF8 | | 
|  | | * AcceptedCommandList                                               | 0xFFF9 | | 
|  | | * EventList                                                         | 0xFFFA | | 
|  | | * AttributeList                                                     | 0xFFFB | | 
|  | | * FeatureMap                                                        | 0xFFFC | | 
|  | | * ClusterRevision                                                   | 0xFFFD | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Events:                                                             |        | | 
|  | \*----------------------------------------------------------------------------*/ | 
|  |  | 
|  | /*----------------------------------------------------------------------------*\ | 
|  | | Cluster ProxyConfiguration                                          | 0x0042 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Commands:                                                           |        | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Attributes:                                                         |        | | 
|  | | * GeneratedCommandList                                              | 0xFFF8 | | 
|  | | * AcceptedCommandList                                               | 0xFFF9 | | 
|  | | * EventList                                                         | 0xFFFA | | 
|  | | * AttributeList                                                     | 0xFFFB | | 
|  | | * FeatureMap                                                        | 0xFFFC | | 
|  | | * ClusterRevision                                                   | 0xFFFD | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Events:                                                             |        | | 
|  | \*----------------------------------------------------------------------------*/ | 
|  |  | 
|  | /*----------------------------------------------------------------------------*\ | 
|  | | Cluster ProxyDiscovery                                              | 0x0043 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Commands:                                                           |        | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Attributes:                                                         |        | | 
|  | | * GeneratedCommandList                                              | 0xFFF8 | | 
|  | | * AcceptedCommandList                                               | 0xFFF9 | | 
|  | | * EventList                                                         | 0xFFFA | | 
|  | | * AttributeList                                                     | 0xFFFB | | 
|  | | * FeatureMap                                                        | 0xFFFC | | 
|  | | * ClusterRevision                                                   | 0xFFFD | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Events:                                                             |        | | 
|  | \*----------------------------------------------------------------------------*/ | 
|  |  | 
|  | /*----------------------------------------------------------------------------*\ | 
|  | | Cluster ProxyValid                                                  | 0x0044 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Commands:                                                           |        | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Attributes:                                                         |        | | 
|  | | * GeneratedCommandList                                              | 0xFFF8 | | 
|  | | * AcceptedCommandList                                               | 0xFFF9 | | 
|  | | * EventList                                                         | 0xFFFA | | 
|  | | * AttributeList                                                     | 0xFFFB | | 
|  | | * FeatureMap                                                        | 0xFFFC | | 
|  | | * ClusterRevision                                                   | 0xFFFD | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Events:                                                             |        | | 
|  | \*----------------------------------------------------------------------------*/ | 
|  |  | 
|  | /*----------------------------------------------------------------------------*\ | 
|  | | Cluster BooleanState                                                | 0x0045 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Commands:                                                           |        | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Attributes:                                                         |        | | 
|  | | * StateValue                                                        | 0x0000 | | 
|  | | * GeneratedCommandList                                              | 0xFFF8 | | 
|  | | * AcceptedCommandList                                               | 0xFFF9 | | 
|  | | * EventList                                                         | 0xFFFA | | 
|  | | * AttributeList                                                     | 0xFFFB | | 
|  | | * FeatureMap                                                        | 0xFFFC | | 
|  | | * ClusterRevision                                                   | 0xFFFD | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Events:                                                             |        | | 
|  | | * StateChange                                                       | 0x0000 | | 
|  | \*----------------------------------------------------------------------------*/ | 
|  |  | 
|  | /*----------------------------------------------------------------------------*\ | 
|  | | Cluster ModeSelect                                                  | 0x0050 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Commands:                                                           |        | | 
|  | | * ChangeToMode                                                      |   0x00 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Attributes:                                                         |        | | 
|  | | * Description                                                       | 0x0000 | | 
|  | | * StandardNamespace                                                 | 0x0001 | | 
|  | | * SupportedModes                                                    | 0x0002 | | 
|  | | * CurrentMode                                                       | 0x0003 | | 
|  | | * StartUpMode                                                       | 0x0004 | | 
|  | | * OnMode                                                            | 0x0005 | | 
|  | | * GeneratedCommandList                                              | 0xFFF8 | | 
|  | | * AcceptedCommandList                                               | 0xFFF9 | | 
|  | | * EventList                                                         | 0xFFFA | | 
|  | | * AttributeList                                                     | 0xFFFB | | 
|  | | * FeatureMap                                                        | 0xFFFC | | 
|  | | * ClusterRevision                                                   | 0xFFFD | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Events:                                                             |        | | 
|  | \*----------------------------------------------------------------------------*/ | 
|  |  | 
|  | /* | 
|  | * Command ChangeToMode | 
|  | */ | 
|  | class ModeSelectChangeToMode : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | ModeSelectChangeToMode(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("change-to-mode", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("NewMode", 0, UINT8_MAX, &mRequest.newMode); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000050) command (0x00000000) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000050, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000050) command (0x00000000) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000050, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::ModeSelect::Commands::ChangeToMode::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /*----------------------------------------------------------------------------*\ | 
|  | | Cluster HepaFilterMonitoring                                        | 0x0071 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Commands:                                                           |        | | 
|  | | * ResetCondition                                                    |   0x00 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Attributes:                                                         |        | | 
|  | | * Condition                                                         | 0x0000 | | 
|  | | * DegradationDirection                                              | 0x0001 | | 
|  | | * ChangeIndication                                                  | 0x0002 | | 
|  | | * InPlaceIndicator                                                  | 0x0003 | | 
|  | | * GeneratedCommandList                                              | 0xFFF8 | | 
|  | | * AcceptedCommandList                                               | 0xFFF9 | | 
|  | | * EventList                                                         | 0xFFFA | | 
|  | | * AttributeList                                                     | 0xFFFB | | 
|  | | * FeatureMap                                                        | 0xFFFC | | 
|  | | * ClusterRevision                                                   | 0xFFFD | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Events:                                                             |        | | 
|  | \*----------------------------------------------------------------------------*/ | 
|  |  | 
|  | /* | 
|  | * Command ResetCondition | 
|  | */ | 
|  | class HepaFilterMonitoringResetCondition : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | HepaFilterMonitoringResetCondition(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("reset-condition", credsIssuerConfig) | 
|  | { | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000071) command (0x00000000) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000071, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000071) command (0x00000000) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000071, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::HepaFilterMonitoring::Commands::ResetCondition::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /*----------------------------------------------------------------------------*\ | 
|  | | Cluster ActivatedCarbonFilterMonitoring                             | 0x0072 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Commands:                                                           |        | | 
|  | | * ResetCondition                                                    |   0x00 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Attributes:                                                         |        | | 
|  | | * Condition                                                         | 0x0000 | | 
|  | | * DegradationDirection                                              | 0x0001 | | 
|  | | * ChangeIndication                                                  | 0x0002 | | 
|  | | * InPlaceIndicator                                                  | 0x0003 | | 
|  | | * GeneratedCommandList                                              | 0xFFF8 | | 
|  | | * AcceptedCommandList                                               | 0xFFF9 | | 
|  | | * EventList                                                         | 0xFFFA | | 
|  | | * AttributeList                                                     | 0xFFFB | | 
|  | | * FeatureMap                                                        | 0xFFFC | | 
|  | | * ClusterRevision                                                   | 0xFFFD | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Events:                                                             |        | | 
|  | \*----------------------------------------------------------------------------*/ | 
|  |  | 
|  | /* | 
|  | * Command ResetCondition | 
|  | */ | 
|  | class ActivatedCarbonFilterMonitoringResetCondition : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | ActivatedCarbonFilterMonitoringResetCondition(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("reset-condition", credsIssuerConfig) | 
|  | { | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000072) command (0x00000000) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000072, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000072) command (0x00000000) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000072, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::ActivatedCarbonFilterMonitoring::Commands::ResetCondition::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /*----------------------------------------------------------------------------*\ | 
|  | | Cluster CeramicFilterMonitoring                                     | 0x0073 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Commands:                                                           |        | | 
|  | | * ResetCondition                                                    |   0x00 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Attributes:                                                         |        | | 
|  | | * Condition                                                         | 0x0000 | | 
|  | | * DegradationDirection                                              | 0x0001 | | 
|  | | * ChangeIndication                                                  | 0x0002 | | 
|  | | * InPlaceIndicator                                                  | 0x0003 | | 
|  | | * GeneratedCommandList                                              | 0xFFF8 | | 
|  | | * AcceptedCommandList                                               | 0xFFF9 | | 
|  | | * EventList                                                         | 0xFFFA | | 
|  | | * AttributeList                                                     | 0xFFFB | | 
|  | | * FeatureMap                                                        | 0xFFFC | | 
|  | | * ClusterRevision                                                   | 0xFFFD | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Events:                                                             |        | | 
|  | \*----------------------------------------------------------------------------*/ | 
|  |  | 
|  | /* | 
|  | * Command ResetCondition | 
|  | */ | 
|  | class CeramicFilterMonitoringResetCondition : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | CeramicFilterMonitoringResetCondition(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("reset-condition", credsIssuerConfig) | 
|  | { | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000073) command (0x00000000) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000073, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000073) command (0x00000000) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000073, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::CeramicFilterMonitoring::Commands::ResetCondition::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /*----------------------------------------------------------------------------*\ | 
|  | | Cluster ElectrostaticFilterMonitoring                               | 0x0074 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Commands:                                                           |        | | 
|  | | * ResetCondition                                                    |   0x00 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Attributes:                                                         |        | | 
|  | | * Condition                                                         | 0x0000 | | 
|  | | * DegradationDirection                                              | 0x0001 | | 
|  | | * ChangeIndication                                                  | 0x0002 | | 
|  | | * InPlaceIndicator                                                  | 0x0003 | | 
|  | | * GeneratedCommandList                                              | 0xFFF8 | | 
|  | | * AcceptedCommandList                                               | 0xFFF9 | | 
|  | | * EventList                                                         | 0xFFFA | | 
|  | | * AttributeList                                                     | 0xFFFB | | 
|  | | * FeatureMap                                                        | 0xFFFC | | 
|  | | * ClusterRevision                                                   | 0xFFFD | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Events:                                                             |        | | 
|  | \*----------------------------------------------------------------------------*/ | 
|  |  | 
|  | /* | 
|  | * Command ResetCondition | 
|  | */ | 
|  | class ElectrostaticFilterMonitoringResetCondition : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | ElectrostaticFilterMonitoringResetCondition(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("reset-condition", credsIssuerConfig) | 
|  | { | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000074) command (0x00000000) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000074, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000074) command (0x00000000) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000074, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::ElectrostaticFilterMonitoring::Commands::ResetCondition::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /*----------------------------------------------------------------------------*\ | 
|  | | Cluster UvFilterMonitoring                                          | 0x0075 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Commands:                                                           |        | | 
|  | | * ResetCondition                                                    |   0x00 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Attributes:                                                         |        | | 
|  | | * Condition                                                         | 0x0000 | | 
|  | | * DegradationDirection                                              | 0x0001 | | 
|  | | * ChangeIndication                                                  | 0x0002 | | 
|  | | * InPlaceIndicator                                                  | 0x0003 | | 
|  | | * GeneratedCommandList                                              | 0xFFF8 | | 
|  | | * AcceptedCommandList                                               | 0xFFF9 | | 
|  | | * EventList                                                         | 0xFFFA | | 
|  | | * AttributeList                                                     | 0xFFFB | | 
|  | | * FeatureMap                                                        | 0xFFFC | | 
|  | | * ClusterRevision                                                   | 0xFFFD | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Events:                                                             |        | | 
|  | \*----------------------------------------------------------------------------*/ | 
|  |  | 
|  | /* | 
|  | * Command ResetCondition | 
|  | */ | 
|  | class UvFilterMonitoringResetCondition : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | UvFilterMonitoringResetCondition(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("reset-condition", credsIssuerConfig) | 
|  | { | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000075) command (0x00000000) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000075, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000075) command (0x00000000) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000075, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::UvFilterMonitoring::Commands::ResetCondition::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /*----------------------------------------------------------------------------*\ | 
|  | | Cluster IonizingFilterMonitoring                                    | 0x0076 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Commands:                                                           |        | | 
|  | | * ResetCondition                                                    |   0x00 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Attributes:                                                         |        | | 
|  | | * Condition                                                         | 0x0000 | | 
|  | | * DegradationDirection                                              | 0x0001 | | 
|  | | * ChangeIndication                                                  | 0x0002 | | 
|  | | * InPlaceIndicator                                                  | 0x0003 | | 
|  | | * GeneratedCommandList                                              | 0xFFF8 | | 
|  | | * AcceptedCommandList                                               | 0xFFF9 | | 
|  | | * EventList                                                         | 0xFFFA | | 
|  | | * AttributeList                                                     | 0xFFFB | | 
|  | | * FeatureMap                                                        | 0xFFFC | | 
|  | | * ClusterRevision                                                   | 0xFFFD | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Events:                                                             |        | | 
|  | \*----------------------------------------------------------------------------*/ | 
|  |  | 
|  | /* | 
|  | * Command ResetCondition | 
|  | */ | 
|  | class IonizingFilterMonitoringResetCondition : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | IonizingFilterMonitoringResetCondition(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("reset-condition", credsIssuerConfig) | 
|  | { | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000076) command (0x00000000) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000076, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000076) command (0x00000000) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000076, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::IonizingFilterMonitoring::Commands::ResetCondition::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /*----------------------------------------------------------------------------*\ | 
|  | | Cluster ZeoliteFilterMonitoring                                     | 0x0077 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Commands:                                                           |        | | 
|  | | * ResetCondition                                                    |   0x00 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Attributes:                                                         |        | | 
|  | | * Condition                                                         | 0x0000 | | 
|  | | * DegradationDirection                                              | 0x0001 | | 
|  | | * ChangeIndication                                                  | 0x0002 | | 
|  | | * InPlaceIndicator                                                  | 0x0003 | | 
|  | | * GeneratedCommandList                                              | 0xFFF8 | | 
|  | | * AcceptedCommandList                                               | 0xFFF9 | | 
|  | | * EventList                                                         | 0xFFFA | | 
|  | | * AttributeList                                                     | 0xFFFB | | 
|  | | * FeatureMap                                                        | 0xFFFC | | 
|  | | * ClusterRevision                                                   | 0xFFFD | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Events:                                                             |        | | 
|  | \*----------------------------------------------------------------------------*/ | 
|  |  | 
|  | /* | 
|  | * Command ResetCondition | 
|  | */ | 
|  | class ZeoliteFilterMonitoringResetCondition : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | ZeoliteFilterMonitoringResetCondition(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("reset-condition", credsIssuerConfig) | 
|  | { | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000077) command (0x00000000) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000077, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000077) command (0x00000000) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000077, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::ZeoliteFilterMonitoring::Commands::ResetCondition::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /*----------------------------------------------------------------------------*\ | 
|  | | Cluster OzoneFilterMonitoring                                       | 0x0078 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Commands:                                                           |        | | 
|  | | * ResetCondition                                                    |   0x00 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Attributes:                                                         |        | | 
|  | | * Condition                                                         | 0x0000 | | 
|  | | * DegradationDirection                                              | 0x0001 | | 
|  | | * ChangeIndication                                                  | 0x0002 | | 
|  | | * InPlaceIndicator                                                  | 0x0003 | | 
|  | | * GeneratedCommandList                                              | 0xFFF8 | | 
|  | | * AcceptedCommandList                                               | 0xFFF9 | | 
|  | | * EventList                                                         | 0xFFFA | | 
|  | | * AttributeList                                                     | 0xFFFB | | 
|  | | * FeatureMap                                                        | 0xFFFC | | 
|  | | * ClusterRevision                                                   | 0xFFFD | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Events:                                                             |        | | 
|  | \*----------------------------------------------------------------------------*/ | 
|  |  | 
|  | /* | 
|  | * Command ResetCondition | 
|  | */ | 
|  | class OzoneFilterMonitoringResetCondition : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | OzoneFilterMonitoringResetCondition(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("reset-condition", credsIssuerConfig) | 
|  | { | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000078) command (0x00000000) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000078, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000078) command (0x00000000) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000078, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::OzoneFilterMonitoring::Commands::ResetCondition::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /*----------------------------------------------------------------------------*\ | 
|  | | Cluster WaterTankMonitoring                                         | 0x0079 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Commands:                                                           |        | | 
|  | | * ResetCondition                                                    |   0x00 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Attributes:                                                         |        | | 
|  | | * Condition                                                         | 0x0000 | | 
|  | | * DegradationDirection                                              | 0x0001 | | 
|  | | * ChangeIndication                                                  | 0x0002 | | 
|  | | * InPlaceIndicator                                                  | 0x0003 | | 
|  | | * GeneratedCommandList                                              | 0xFFF8 | | 
|  | | * AcceptedCommandList                                               | 0xFFF9 | | 
|  | | * EventList                                                         | 0xFFFA | | 
|  | | * AttributeList                                                     | 0xFFFB | | 
|  | | * FeatureMap                                                        | 0xFFFC | | 
|  | | * ClusterRevision                                                   | 0xFFFD | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Events:                                                             |        | | 
|  | \*----------------------------------------------------------------------------*/ | 
|  |  | 
|  | /* | 
|  | * Command ResetCondition | 
|  | */ | 
|  | class WaterTankMonitoringResetCondition : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | WaterTankMonitoringResetCondition(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("reset-condition", credsIssuerConfig) | 
|  | { | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000079) command (0x00000000) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000079, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000079) command (0x00000000) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000079, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::WaterTankMonitoring::Commands::ResetCondition::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /*----------------------------------------------------------------------------*\ | 
|  | | Cluster FuelTankMonitoring                                          | 0x007A | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Commands:                                                           |        | | 
|  | | * ResetCondition                                                    |   0x00 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Attributes:                                                         |        | | 
|  | | * Condition                                                         | 0x0000 | | 
|  | | * DegradationDirection                                              | 0x0001 | | 
|  | | * ChangeIndication                                                  | 0x0002 | | 
|  | | * InPlaceIndicator                                                  | 0x0003 | | 
|  | | * GeneratedCommandList                                              | 0xFFF8 | | 
|  | | * AcceptedCommandList                                               | 0xFFF9 | | 
|  | | * EventList                                                         | 0xFFFA | | 
|  | | * AttributeList                                                     | 0xFFFB | | 
|  | | * FeatureMap                                                        | 0xFFFC | | 
|  | | * ClusterRevision                                                   | 0xFFFD | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Events:                                                             |        | | 
|  | \*----------------------------------------------------------------------------*/ | 
|  |  | 
|  | /* | 
|  | * Command ResetCondition | 
|  | */ | 
|  | class FuelTankMonitoringResetCondition : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | FuelTankMonitoringResetCondition(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("reset-condition", credsIssuerConfig) | 
|  | { | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x0000007A) command (0x00000000) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x0000007A, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x0000007A) command (0x00000000) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x0000007A, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::FuelTankMonitoring::Commands::ResetCondition::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /*----------------------------------------------------------------------------*\ | 
|  | | Cluster InkCartridgeMonitoring                                      | 0x007B | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Commands:                                                           |        | | 
|  | | * ResetCondition                                                    |   0x00 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Attributes:                                                         |        | | 
|  | | * Condition                                                         | 0x0000 | | 
|  | | * DegradationDirection                                              | 0x0001 | | 
|  | | * ChangeIndication                                                  | 0x0002 | | 
|  | | * InPlaceIndicator                                                  | 0x0003 | | 
|  | | * GeneratedCommandList                                              | 0xFFF8 | | 
|  | | * AcceptedCommandList                                               | 0xFFF9 | | 
|  | | * EventList                                                         | 0xFFFA | | 
|  | | * AttributeList                                                     | 0xFFFB | | 
|  | | * FeatureMap                                                        | 0xFFFC | | 
|  | | * ClusterRevision                                                   | 0xFFFD | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Events:                                                             |        | | 
|  | \*----------------------------------------------------------------------------*/ | 
|  |  | 
|  | /* | 
|  | * Command ResetCondition | 
|  | */ | 
|  | class InkCartridgeMonitoringResetCondition : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | InkCartridgeMonitoringResetCondition(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("reset-condition", credsIssuerConfig) | 
|  | { | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x0000007B) command (0x00000000) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x0000007B, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x0000007B) command (0x00000000) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x0000007B, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::InkCartridgeMonitoring::Commands::ResetCondition::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /*----------------------------------------------------------------------------*\ | 
|  | | Cluster TonerCartridgeMonitoring                                    | 0x007C | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Commands:                                                           |        | | 
|  | | * ResetCondition                                                    |   0x00 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Attributes:                                                         |        | | 
|  | | * Condition                                                         | 0x0000 | | 
|  | | * DegradationDirection                                              | 0x0001 | | 
|  | | * ChangeIndication                                                  | 0x0002 | | 
|  | | * InPlaceIndicator                                                  | 0x0003 | | 
|  | | * GeneratedCommandList                                              | 0xFFF8 | | 
|  | | * AcceptedCommandList                                               | 0xFFF9 | | 
|  | | * EventList                                                         | 0xFFFA | | 
|  | | * AttributeList                                                     | 0xFFFB | | 
|  | | * FeatureMap                                                        | 0xFFFC | | 
|  | | * ClusterRevision                                                   | 0xFFFD | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Events:                                                             |        | | 
|  | \*----------------------------------------------------------------------------*/ | 
|  |  | 
|  | /* | 
|  | * Command ResetCondition | 
|  | */ | 
|  | class TonerCartridgeMonitoringResetCondition : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | TonerCartridgeMonitoringResetCondition(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("reset-condition", credsIssuerConfig) | 
|  | { | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x0000007C) command (0x00000000) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x0000007C, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x0000007C) command (0x00000000) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x0000007C, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::TonerCartridgeMonitoring::Commands::ResetCondition::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /*----------------------------------------------------------------------------*\ | 
|  | | Cluster DoorLock                                                    | 0x0101 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Commands:                                                           |        | | 
|  | | * LockDoor                                                          |   0x00 | | 
|  | | * UnlockDoor                                                        |   0x01 | | 
|  | | * UnlockWithTimeout                                                 |   0x03 | | 
|  | | * SetWeekDaySchedule                                                |   0x0B | | 
|  | | * GetWeekDaySchedule                                                |   0x0C | | 
|  | | * ClearWeekDaySchedule                                              |   0x0D | | 
|  | | * SetYearDaySchedule                                                |   0x0E | | 
|  | | * GetYearDaySchedule                                                |   0x0F | | 
|  | | * ClearYearDaySchedule                                              |   0x10 | | 
|  | | * SetHolidaySchedule                                                |   0x11 | | 
|  | | * GetHolidaySchedule                                                |   0x12 | | 
|  | | * ClearHolidaySchedule                                              |   0x13 | | 
|  | | * SetUser                                                           |   0x1A | | 
|  | | * GetUser                                                           |   0x1B | | 
|  | | * ClearUser                                                         |   0x1D | | 
|  | | * SetCredential                                                     |   0x22 | | 
|  | | * GetCredentialStatus                                               |   0x24 | | 
|  | | * ClearCredential                                                   |   0x26 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Attributes:                                                         |        | | 
|  | | * LockState                                                         | 0x0000 | | 
|  | | * LockType                                                          | 0x0001 | | 
|  | | * ActuatorEnabled                                                   | 0x0002 | | 
|  | | * DoorState                                                         | 0x0003 | | 
|  | | * DoorOpenEvents                                                    | 0x0004 | | 
|  | | * DoorClosedEvents                                                  | 0x0005 | | 
|  | | * OpenPeriod                                                        | 0x0006 | | 
|  | | * NumberOfTotalUsersSupported                                       | 0x0011 | | 
|  | | * NumberOfPINUsersSupported                                         | 0x0012 | | 
|  | | * NumberOfRFIDUsersSupported                                        | 0x0013 | | 
|  | | * NumberOfWeekDaySchedulesSupportedPerUser                          | 0x0014 | | 
|  | | * NumberOfYearDaySchedulesSupportedPerUser                          | 0x0015 | | 
|  | | * NumberOfHolidaySchedulesSupported                                 | 0x0016 | | 
|  | | * MaxPINCodeLength                                                  | 0x0017 | | 
|  | | * MinPINCodeLength                                                  | 0x0018 | | 
|  | | * MaxRFIDCodeLength                                                 | 0x0019 | | 
|  | | * MinRFIDCodeLength                                                 | 0x001A | | 
|  | | * CredentialRulesSupport                                            | 0x001B | | 
|  | | * NumberOfCredentialsSupportedPerUser                               | 0x001C | | 
|  | | * Language                                                          | 0x0021 | | 
|  | | * LEDSettings                                                       | 0x0022 | | 
|  | | * AutoRelockTime                                                    | 0x0023 | | 
|  | | * SoundVolume                                                       | 0x0024 | | 
|  | | * OperatingMode                                                     | 0x0025 | | 
|  | | * SupportedOperatingModes                                           | 0x0026 | | 
|  | | * DefaultConfigurationRegister                                      | 0x0027 | | 
|  | | * EnableLocalProgramming                                            | 0x0028 | | 
|  | | * EnableOneTouchLocking                                             | 0x0029 | | 
|  | | * EnableInsideStatusLED                                             | 0x002A | | 
|  | | * EnablePrivacyModeButton                                           | 0x002B | | 
|  | | * LocalProgrammingFeatures                                          | 0x002C | | 
|  | | * WrongCodeEntryLimit                                               | 0x0030 | | 
|  | | * UserCodeTemporaryDisableTime                                      | 0x0031 | | 
|  | | * SendPINOverTheAir                                                 | 0x0032 | | 
|  | | * RequirePINforRemoteOperation                                      | 0x0033 | | 
|  | | * ExpiringUserTimeout                                               | 0x0035 | | 
|  | | * GeneratedCommandList                                              | 0xFFF8 | | 
|  | | * AcceptedCommandList                                               | 0xFFF9 | | 
|  | | * EventList                                                         | 0xFFFA | | 
|  | | * AttributeList                                                     | 0xFFFB | | 
|  | | * FeatureMap                                                        | 0xFFFC | | 
|  | | * ClusterRevision                                                   | 0xFFFD | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Events:                                                             |        | | 
|  | | * DoorLockAlarm                                                     | 0x0000 | | 
|  | | * DoorStateChange                                                   | 0x0001 | | 
|  | | * LockOperation                                                     | 0x0002 | | 
|  | | * LockOperationError                                                | 0x0003 | | 
|  | | * LockUserChange                                                    | 0x0004 | | 
|  | \*----------------------------------------------------------------------------*/ | 
|  |  | 
|  | /* | 
|  | * Command LockDoor | 
|  | */ | 
|  | class DoorLockLockDoor : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | DoorLockLockDoor(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("lock-door", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("PINCode", &mRequest.PINCode); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000101) command (0x00000000) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000101, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000101) command (0x00000000) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000101, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::DoorLock::Commands::LockDoor::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command UnlockDoor | 
|  | */ | 
|  | class DoorLockUnlockDoor : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | DoorLockUnlockDoor(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("unlock-door", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("PINCode", &mRequest.PINCode); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000101) command (0x00000001) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000101, 0x00000001, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000101) command (0x00000001) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000101, 0x00000001, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::DoorLock::Commands::UnlockDoor::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command UnlockWithTimeout | 
|  | */ | 
|  | class DoorLockUnlockWithTimeout : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | DoorLockUnlockWithTimeout(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("unlock-with-timeout", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("Timeout", 0, UINT16_MAX, &mRequest.timeout); | 
|  | AddArgument("PINCode", &mRequest.PINCode); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000101) command (0x00000003) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000101, 0x00000003, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000101) command (0x00000003) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000101, 0x00000003, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::DoorLock::Commands::UnlockWithTimeout::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command SetWeekDaySchedule | 
|  | */ | 
|  | class DoorLockSetWeekDaySchedule : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | DoorLockSetWeekDaySchedule(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("set-week-day-schedule", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("WeekDayIndex", 0, UINT8_MAX, &mRequest.weekDayIndex); | 
|  | AddArgument("UserIndex", 0, UINT16_MAX, &mRequest.userIndex); | 
|  | AddArgument("DaysMask", 0, UINT8_MAX, &mRequest.daysMask); | 
|  | AddArgument("StartHour", 0, UINT8_MAX, &mRequest.startHour); | 
|  | AddArgument("StartMinute", 0, UINT8_MAX, &mRequest.startMinute); | 
|  | AddArgument("EndHour", 0, UINT8_MAX, &mRequest.endHour); | 
|  | AddArgument("EndMinute", 0, UINT8_MAX, &mRequest.endMinute); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000101) command (0x0000000B) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000101, 0x0000000B, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000101) command (0x0000000B) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000101, 0x0000000B, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::DoorLock::Commands::SetWeekDaySchedule::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command GetWeekDaySchedule | 
|  | */ | 
|  | class DoorLockGetWeekDaySchedule : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | DoorLockGetWeekDaySchedule(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("get-week-day-schedule", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("WeekDayIndex", 0, UINT8_MAX, &mRequest.weekDayIndex); | 
|  | AddArgument("UserIndex", 0, UINT16_MAX, &mRequest.userIndex); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000101) command (0x0000000C) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000101, 0x0000000C, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000101) command (0x0000000C) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000101, 0x0000000C, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::DoorLock::Commands::GetWeekDaySchedule::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command ClearWeekDaySchedule | 
|  | */ | 
|  | class DoorLockClearWeekDaySchedule : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | DoorLockClearWeekDaySchedule(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("clear-week-day-schedule", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("WeekDayIndex", 0, UINT8_MAX, &mRequest.weekDayIndex); | 
|  | AddArgument("UserIndex", 0, UINT16_MAX, &mRequest.userIndex); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000101) command (0x0000000D) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000101, 0x0000000D, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000101) command (0x0000000D) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000101, 0x0000000D, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::DoorLock::Commands::ClearWeekDaySchedule::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command SetYearDaySchedule | 
|  | */ | 
|  | class DoorLockSetYearDaySchedule : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | DoorLockSetYearDaySchedule(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("set-year-day-schedule", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("YearDayIndex", 0, UINT8_MAX, &mRequest.yearDayIndex); | 
|  | AddArgument("UserIndex", 0, UINT16_MAX, &mRequest.userIndex); | 
|  | AddArgument("LocalStartTime", 0, UINT32_MAX, &mRequest.localStartTime); | 
|  | AddArgument("LocalEndTime", 0, UINT32_MAX, &mRequest.localEndTime); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000101) command (0x0000000E) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000101, 0x0000000E, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000101) command (0x0000000E) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000101, 0x0000000E, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::DoorLock::Commands::SetYearDaySchedule::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command GetYearDaySchedule | 
|  | */ | 
|  | class DoorLockGetYearDaySchedule : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | DoorLockGetYearDaySchedule(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("get-year-day-schedule", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("YearDayIndex", 0, UINT8_MAX, &mRequest.yearDayIndex); | 
|  | AddArgument("UserIndex", 0, UINT16_MAX, &mRequest.userIndex); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000101) command (0x0000000F) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000101, 0x0000000F, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000101) command (0x0000000F) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000101, 0x0000000F, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::DoorLock::Commands::GetYearDaySchedule::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command ClearYearDaySchedule | 
|  | */ | 
|  | class DoorLockClearYearDaySchedule : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | DoorLockClearYearDaySchedule(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("clear-year-day-schedule", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("YearDayIndex", 0, UINT8_MAX, &mRequest.yearDayIndex); | 
|  | AddArgument("UserIndex", 0, UINT16_MAX, &mRequest.userIndex); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000101) command (0x00000010) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000101, 0x00000010, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000101) command (0x00000010) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000101, 0x00000010, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::DoorLock::Commands::ClearYearDaySchedule::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command SetHolidaySchedule | 
|  | */ | 
|  | class DoorLockSetHolidaySchedule : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | DoorLockSetHolidaySchedule(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("set-holiday-schedule", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("HolidayIndex", 0, UINT8_MAX, &mRequest.holidayIndex); | 
|  | AddArgument("LocalStartTime", 0, UINT32_MAX, &mRequest.localStartTime); | 
|  | AddArgument("LocalEndTime", 0, UINT32_MAX, &mRequest.localEndTime); | 
|  | AddArgument("OperatingMode", 0, UINT8_MAX, &mRequest.operatingMode); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000101) command (0x00000011) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000101, 0x00000011, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000101) command (0x00000011) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000101, 0x00000011, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::DoorLock::Commands::SetHolidaySchedule::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command GetHolidaySchedule | 
|  | */ | 
|  | class DoorLockGetHolidaySchedule : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | DoorLockGetHolidaySchedule(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("get-holiday-schedule", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("HolidayIndex", 0, UINT8_MAX, &mRequest.holidayIndex); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000101) command (0x00000012) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000101, 0x00000012, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000101) command (0x00000012) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000101, 0x00000012, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::DoorLock::Commands::GetHolidaySchedule::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command ClearHolidaySchedule | 
|  | */ | 
|  | class DoorLockClearHolidaySchedule : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | DoorLockClearHolidaySchedule(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("clear-holiday-schedule", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("HolidayIndex", 0, UINT8_MAX, &mRequest.holidayIndex); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000101) command (0x00000013) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000101, 0x00000013, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000101) command (0x00000013) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000101, 0x00000013, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::DoorLock::Commands::ClearHolidaySchedule::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command SetUser | 
|  | */ | 
|  | class DoorLockSetUser : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | DoorLockSetUser(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("set-user", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("OperationType", 0, UINT8_MAX, &mRequest.operationType); | 
|  | AddArgument("UserIndex", 0, UINT16_MAX, &mRequest.userIndex); | 
|  | AddArgument("UserName", &mRequest.userName); | 
|  | AddArgument("UserUniqueID", 0, UINT32_MAX, &mRequest.userUniqueID); | 
|  | AddArgument("UserStatus", 0, UINT8_MAX, &mRequest.userStatus); | 
|  | AddArgument("UserType", 0, UINT8_MAX, &mRequest.userType); | 
|  | AddArgument("CredentialRule", 0, UINT8_MAX, &mRequest.credentialRule); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000101) command (0x0000001A) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000101, 0x0000001A, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000101) command (0x0000001A) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000101, 0x0000001A, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::DoorLock::Commands::SetUser::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command GetUser | 
|  | */ | 
|  | class DoorLockGetUser : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | DoorLockGetUser(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("get-user", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("UserIndex", 0, UINT16_MAX, &mRequest.userIndex); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000101) command (0x0000001B) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000101, 0x0000001B, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000101) command (0x0000001B) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000101, 0x0000001B, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::DoorLock::Commands::GetUser::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command ClearUser | 
|  | */ | 
|  | class DoorLockClearUser : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | DoorLockClearUser(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("clear-user", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("UserIndex", 0, UINT16_MAX, &mRequest.userIndex); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000101) command (0x0000001D) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000101, 0x0000001D, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000101) command (0x0000001D) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000101, 0x0000001D, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::DoorLock::Commands::ClearUser::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command SetCredential | 
|  | */ | 
|  | class DoorLockSetCredential : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | DoorLockSetCredential(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("set-credential", credsIssuerConfig), mComplex_Credential(&mRequest.credential) | 
|  | { | 
|  | AddArgument("OperationType", 0, UINT8_MAX, &mRequest.operationType); | 
|  | AddArgument("Credential", &mComplex_Credential); | 
|  | AddArgument("CredentialData", &mRequest.credentialData); | 
|  | AddArgument("UserIndex", 0, UINT16_MAX, &mRequest.userIndex); | 
|  | AddArgument("UserStatus", 0, UINT8_MAX, &mRequest.userStatus); | 
|  | AddArgument("UserType", 0, UINT8_MAX, &mRequest.userType); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000101) command (0x00000022) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000101, 0x00000022, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000101) command (0x00000022) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000101, 0x00000022, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::DoorLock::Commands::SetCredential::Type mRequest; | 
|  | TypedComplexArgument<chip::app::Clusters::DoorLock::Structs::CredentialStruct::Type> mComplex_Credential; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command GetCredentialStatus | 
|  | */ | 
|  | class DoorLockGetCredentialStatus : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | DoorLockGetCredentialStatus(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("get-credential-status", credsIssuerConfig), mComplex_Credential(&mRequest.credential) | 
|  | { | 
|  | AddArgument("Credential", &mComplex_Credential); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000101) command (0x00000024) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000101, 0x00000024, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000101) command (0x00000024) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000101, 0x00000024, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::DoorLock::Commands::GetCredentialStatus::Type mRequest; | 
|  | TypedComplexArgument<chip::app::Clusters::DoorLock::Structs::CredentialStruct::Type> mComplex_Credential; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command ClearCredential | 
|  | */ | 
|  | class DoorLockClearCredential : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | DoorLockClearCredential(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("clear-credential", credsIssuerConfig), mComplex_Credential(&mRequest.credential) | 
|  | { | 
|  | AddArgument("Credential", &mComplex_Credential); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000101) command (0x00000026) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000101, 0x00000026, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000101) command (0x00000026) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000101, 0x00000026, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::DoorLock::Commands::ClearCredential::Type mRequest; | 
|  | TypedComplexArgument<chip::app::DataModel::Nullable<chip::app::Clusters::DoorLock::Structs::CredentialStruct::Type>> | 
|  | mComplex_Credential; | 
|  | }; | 
|  |  | 
|  | /*----------------------------------------------------------------------------*\ | 
|  | | Cluster WindowCovering                                              | 0x0102 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Commands:                                                           |        | | 
|  | | * UpOrOpen                                                          |   0x00 | | 
|  | | * DownOrClose                                                       |   0x01 | | 
|  | | * StopMotion                                                        |   0x02 | | 
|  | | * GoToLiftValue                                                     |   0x04 | | 
|  | | * GoToLiftPercentage                                                |   0x05 | | 
|  | | * GoToTiltValue                                                     |   0x07 | | 
|  | | * GoToTiltPercentage                                                |   0x08 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Attributes:                                                         |        | | 
|  | | * Type                                                              | 0x0000 | | 
|  | | * PhysicalClosedLimitLift                                           | 0x0001 | | 
|  | | * PhysicalClosedLimitTilt                                           | 0x0002 | | 
|  | | * CurrentPositionLift                                               | 0x0003 | | 
|  | | * CurrentPositionTilt                                               | 0x0004 | | 
|  | | * NumberOfActuationsLift                                            | 0x0005 | | 
|  | | * NumberOfActuationsTilt                                            | 0x0006 | | 
|  | | * ConfigStatus                                                      | 0x0007 | | 
|  | | * CurrentPositionLiftPercentage                                     | 0x0008 | | 
|  | | * CurrentPositionTiltPercentage                                     | 0x0009 | | 
|  | | * OperationalStatus                                                 | 0x000A | | 
|  | | * TargetPositionLiftPercent100ths                                   | 0x000B | | 
|  | | * TargetPositionTiltPercent100ths                                   | 0x000C | | 
|  | | * EndProductType                                                    | 0x000D | | 
|  | | * CurrentPositionLiftPercent100ths                                  | 0x000E | | 
|  | | * CurrentPositionTiltPercent100ths                                  | 0x000F | | 
|  | | * InstalledOpenLimitLift                                            | 0x0010 | | 
|  | | * InstalledClosedLimitLift                                          | 0x0011 | | 
|  | | * InstalledOpenLimitTilt                                            | 0x0012 | | 
|  | | * InstalledClosedLimitTilt                                          | 0x0013 | | 
|  | | * Mode                                                              | 0x0017 | | 
|  | | * SafetyStatus                                                      | 0x001A | | 
|  | | * GeneratedCommandList                                              | 0xFFF8 | | 
|  | | * AcceptedCommandList                                               | 0xFFF9 | | 
|  | | * EventList                                                         | 0xFFFA | | 
|  | | * AttributeList                                                     | 0xFFFB | | 
|  | | * FeatureMap                                                        | 0xFFFC | | 
|  | | * ClusterRevision                                                   | 0xFFFD | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Events:                                                             |        | | 
|  | \*----------------------------------------------------------------------------*/ | 
|  |  | 
|  | /* | 
|  | * Command UpOrOpen | 
|  | */ | 
|  | class WindowCoveringUpOrOpen : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | WindowCoveringUpOrOpen(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("up-or-open", credsIssuerConfig) | 
|  | { | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000102) command (0x00000000) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000102, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000102) command (0x00000000) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000102, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::WindowCovering::Commands::UpOrOpen::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command DownOrClose | 
|  | */ | 
|  | class WindowCoveringDownOrClose : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | WindowCoveringDownOrClose(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("down-or-close", credsIssuerConfig) | 
|  | { | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000102) command (0x00000001) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000102, 0x00000001, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000102) command (0x00000001) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000102, 0x00000001, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::WindowCovering::Commands::DownOrClose::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command StopMotion | 
|  | */ | 
|  | class WindowCoveringStopMotion : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | WindowCoveringStopMotion(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("stop-motion", credsIssuerConfig) | 
|  | { | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000102) command (0x00000002) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000102, 0x00000002, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000102) command (0x00000002) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000102, 0x00000002, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::WindowCovering::Commands::StopMotion::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command GoToLiftValue | 
|  | */ | 
|  | class WindowCoveringGoToLiftValue : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | WindowCoveringGoToLiftValue(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("go-to-lift-value", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("LiftValue", 0, UINT16_MAX, &mRequest.liftValue); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000102) command (0x00000004) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000102, 0x00000004, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000102) command (0x00000004) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000102, 0x00000004, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::WindowCovering::Commands::GoToLiftValue::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command GoToLiftPercentage | 
|  | */ | 
|  | class WindowCoveringGoToLiftPercentage : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | WindowCoveringGoToLiftPercentage(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("go-to-lift-percentage", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("LiftPercent100thsValue", 0, UINT16_MAX, &mRequest.liftPercent100thsValue); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000102) command (0x00000005) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000102, 0x00000005, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000102) command (0x00000005) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000102, 0x00000005, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::WindowCovering::Commands::GoToLiftPercentage::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command GoToTiltValue | 
|  | */ | 
|  | class WindowCoveringGoToTiltValue : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | WindowCoveringGoToTiltValue(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("go-to-tilt-value", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("TiltValue", 0, UINT16_MAX, &mRequest.tiltValue); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000102) command (0x00000007) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000102, 0x00000007, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000102) command (0x00000007) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000102, 0x00000007, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::WindowCovering::Commands::GoToTiltValue::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command GoToTiltPercentage | 
|  | */ | 
|  | class WindowCoveringGoToTiltPercentage : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | WindowCoveringGoToTiltPercentage(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("go-to-tilt-percentage", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("TiltPercent100thsValue", 0, UINT16_MAX, &mRequest.tiltPercent100thsValue); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000102) command (0x00000008) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000102, 0x00000008, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000102) command (0x00000008) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000102, 0x00000008, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::WindowCovering::Commands::GoToTiltPercentage::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /*----------------------------------------------------------------------------*\ | 
|  | | Cluster BarrierControl                                              | 0x0103 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Commands:                                                           |        | | 
|  | | * BarrierControlGoToPercent                                         |   0x00 | | 
|  | | * BarrierControlStop                                                |   0x01 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Attributes:                                                         |        | | 
|  | | * BarrierMovingState                                                | 0x0001 | | 
|  | | * BarrierSafetyStatus                                               | 0x0002 | | 
|  | | * BarrierCapabilities                                               | 0x0003 | | 
|  | | * BarrierOpenEvents                                                 | 0x0004 | | 
|  | | * BarrierCloseEvents                                                | 0x0005 | | 
|  | | * BarrierCommandOpenEvents                                          | 0x0006 | | 
|  | | * BarrierCommandCloseEvents                                         | 0x0007 | | 
|  | | * BarrierOpenPeriod                                                 | 0x0008 | | 
|  | | * BarrierClosePeriod                                                | 0x0009 | | 
|  | | * BarrierPosition                                                   | 0x000A | | 
|  | | * GeneratedCommandList                                              | 0xFFF8 | | 
|  | | * AcceptedCommandList                                               | 0xFFF9 | | 
|  | | * EventList                                                         | 0xFFFA | | 
|  | | * AttributeList                                                     | 0xFFFB | | 
|  | | * FeatureMap                                                        | 0xFFFC | | 
|  | | * ClusterRevision                                                   | 0xFFFD | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Events:                                                             |        | | 
|  | \*----------------------------------------------------------------------------*/ | 
|  |  | 
|  | /* | 
|  | * Command BarrierControlGoToPercent | 
|  | */ | 
|  | class BarrierControlBarrierControlGoToPercent : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | BarrierControlBarrierControlGoToPercent(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("barrier-control-go-to-percent", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("PercentOpen", 0, UINT8_MAX, &mRequest.percentOpen); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000103) command (0x00000000) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000103, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000103) command (0x00000000) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000103, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::BarrierControl::Commands::BarrierControlGoToPercent::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command BarrierControlStop | 
|  | */ | 
|  | class BarrierControlBarrierControlStop : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | BarrierControlBarrierControlStop(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("barrier-control-stop", credsIssuerConfig) | 
|  | { | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000103) command (0x00000001) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000103, 0x00000001, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000103) command (0x00000001) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000103, 0x00000001, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::BarrierControl::Commands::BarrierControlStop::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /*----------------------------------------------------------------------------*\ | 
|  | | Cluster PumpConfigurationAndControl                                 | 0x0200 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Commands:                                                           |        | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Attributes:                                                         |        | | 
|  | | * MaxPressure                                                       | 0x0000 | | 
|  | | * MaxSpeed                                                          | 0x0001 | | 
|  | | * MaxFlow                                                           | 0x0002 | | 
|  | | * MinConstPressure                                                  | 0x0003 | | 
|  | | * MaxConstPressure                                                  | 0x0004 | | 
|  | | * MinCompPressure                                                   | 0x0005 | | 
|  | | * MaxCompPressure                                                   | 0x0006 | | 
|  | | * MinConstSpeed                                                     | 0x0007 | | 
|  | | * MaxConstSpeed                                                     | 0x0008 | | 
|  | | * MinConstFlow                                                      | 0x0009 | | 
|  | | * MaxConstFlow                                                      | 0x000A | | 
|  | | * MinConstTemp                                                      | 0x000B | | 
|  | | * MaxConstTemp                                                      | 0x000C | | 
|  | | * PumpStatus                                                        | 0x0010 | | 
|  | | * EffectiveOperationMode                                            | 0x0011 | | 
|  | | * EffectiveControlMode                                              | 0x0012 | | 
|  | | * Capacity                                                          | 0x0013 | | 
|  | | * Speed                                                             | 0x0014 | | 
|  | | * LifetimeRunningHours                                              | 0x0015 | | 
|  | | * Power                                                             | 0x0016 | | 
|  | | * LifetimeEnergyConsumed                                            | 0x0017 | | 
|  | | * OperationMode                                                     | 0x0020 | | 
|  | | * ControlMode                                                       | 0x0021 | | 
|  | | * GeneratedCommandList                                              | 0xFFF8 | | 
|  | | * AcceptedCommandList                                               | 0xFFF9 | | 
|  | | * EventList                                                         | 0xFFFA | | 
|  | | * AttributeList                                                     | 0xFFFB | | 
|  | | * FeatureMap                                                        | 0xFFFC | | 
|  | | * ClusterRevision                                                   | 0xFFFD | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Events:                                                             |        | | 
|  | | * SupplyVoltageLow                                                  | 0x0000 | | 
|  | | * SupplyVoltageHigh                                                 | 0x0001 | | 
|  | | * PowerMissingPhase                                                 | 0x0002 | | 
|  | | * SystemPressureLow                                                 | 0x0003 | | 
|  | | * SystemPressureHigh                                                | 0x0004 | | 
|  | | * DryRunning                                                        | 0x0005 | | 
|  | | * MotorTemperatureHigh                                              | 0x0006 | | 
|  | | * PumpMotorFatalFailure                                             | 0x0007 | | 
|  | | * ElectronicTemperatureHigh                                         | 0x0008 | | 
|  | | * PumpBlocked                                                       | 0x0009 | | 
|  | | * SensorFailure                                                     | 0x000A | | 
|  | | * ElectronicNonFatalFailure                                         | 0x000B | | 
|  | | * ElectronicFatalFailure                                            | 0x000C | | 
|  | | * GeneralFault                                                      | 0x000D | | 
|  | | * Leakage                                                           | 0x000E | | 
|  | | * AirDetection                                                      | 0x000F | | 
|  | | * TurbineOperation                                                  | 0x0010 | | 
|  | \*----------------------------------------------------------------------------*/ | 
|  |  | 
|  | /*----------------------------------------------------------------------------*\ | 
|  | | Cluster Thermostat                                                  | 0x0201 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Commands:                                                           |        | | 
|  | | * SetpointRaiseLower                                                |   0x00 | | 
|  | | * SetWeeklySchedule                                                 |   0x01 | | 
|  | | * GetWeeklySchedule                                                 |   0x02 | | 
|  | | * ClearWeeklySchedule                                               |   0x03 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Attributes:                                                         |        | | 
|  | | * LocalTemperature                                                  | 0x0000 | | 
|  | | * OutdoorTemperature                                                | 0x0001 | | 
|  | | * Occupancy                                                         | 0x0002 | | 
|  | | * AbsMinHeatSetpointLimit                                           | 0x0003 | | 
|  | | * AbsMaxHeatSetpointLimit                                           | 0x0004 | | 
|  | | * AbsMinCoolSetpointLimit                                           | 0x0005 | | 
|  | | * AbsMaxCoolSetpointLimit                                           | 0x0006 | | 
|  | | * PICoolingDemand                                                   | 0x0007 | | 
|  | | * PIHeatingDemand                                                   | 0x0008 | | 
|  | | * HVACSystemTypeConfiguration                                       | 0x0009 | | 
|  | | * LocalTemperatureCalibration                                       | 0x0010 | | 
|  | | * OccupiedCoolingSetpoint                                           | 0x0011 | | 
|  | | * OccupiedHeatingSetpoint                                           | 0x0012 | | 
|  | | * UnoccupiedCoolingSetpoint                                         | 0x0013 | | 
|  | | * UnoccupiedHeatingSetpoint                                         | 0x0014 | | 
|  | | * MinHeatSetpointLimit                                              | 0x0015 | | 
|  | | * MaxHeatSetpointLimit                                              | 0x0016 | | 
|  | | * MinCoolSetpointLimit                                              | 0x0017 | | 
|  | | * MaxCoolSetpointLimit                                              | 0x0018 | | 
|  | | * MinSetpointDeadBand                                               | 0x0019 | | 
|  | | * RemoteSensing                                                     | 0x001A | | 
|  | | * ControlSequenceOfOperation                                        | 0x001B | | 
|  | | * SystemMode                                                        | 0x001C | | 
|  | | * ThermostatRunningMode                                             | 0x001E | | 
|  | | * StartOfWeek                                                       | 0x0020 | | 
|  | | * NumberOfWeeklyTransitions                                         | 0x0021 | | 
|  | | * NumberOfDailyTransitions                                          | 0x0022 | | 
|  | | * TemperatureSetpointHold                                           | 0x0023 | | 
|  | | * TemperatureSetpointHoldDuration                                   | 0x0024 | | 
|  | | * ThermostatProgrammingOperationMode                                | 0x0025 | | 
|  | | * ThermostatRunningState                                            | 0x0029 | | 
|  | | * SetpointChangeSource                                              | 0x0030 | | 
|  | | * SetpointChangeAmount                                              | 0x0031 | | 
|  | | * SetpointChangeSourceTimestamp                                     | 0x0032 | | 
|  | | * OccupiedSetback                                                   | 0x0034 | | 
|  | | * OccupiedSetbackMin                                                | 0x0035 | | 
|  | | * OccupiedSetbackMax                                                | 0x0036 | | 
|  | | * UnoccupiedSetback                                                 | 0x0037 | | 
|  | | * UnoccupiedSetbackMin                                              | 0x0038 | | 
|  | | * UnoccupiedSetbackMax                                              | 0x0039 | | 
|  | | * EmergencyHeatDelta                                                | 0x003A | | 
|  | | * ACType                                                            | 0x0040 | | 
|  | | * ACCapacity                                                        | 0x0041 | | 
|  | | * ACRefrigerantType                                                 | 0x0042 | | 
|  | | * ACCompressorType                                                  | 0x0043 | | 
|  | | * ACErrorCode                                                       | 0x0044 | | 
|  | | * ACLouverPosition                                                  | 0x0045 | | 
|  | | * ACCoilTemperature                                                 | 0x0046 | | 
|  | | * ACCapacityformat                                                  | 0x0047 | | 
|  | | * GeneratedCommandList                                              | 0xFFF8 | | 
|  | | * AcceptedCommandList                                               | 0xFFF9 | | 
|  | | * EventList                                                         | 0xFFFA | | 
|  | | * AttributeList                                                     | 0xFFFB | | 
|  | | * FeatureMap                                                        | 0xFFFC | | 
|  | | * ClusterRevision                                                   | 0xFFFD | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Events:                                                             |        | | 
|  | \*----------------------------------------------------------------------------*/ | 
|  |  | 
|  | /* | 
|  | * Command SetpointRaiseLower | 
|  | */ | 
|  | class ThermostatSetpointRaiseLower : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | ThermostatSetpointRaiseLower(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("setpoint-raise-lower", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("Mode", 0, UINT8_MAX, &mRequest.mode); | 
|  | AddArgument("Amount", INT8_MIN, INT8_MAX, &mRequest.amount); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000201) command (0x00000000) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000201, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000201) command (0x00000000) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000201, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::Thermostat::Commands::SetpointRaiseLower::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command SetWeeklySchedule | 
|  | */ | 
|  | class ThermostatSetWeeklySchedule : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | ThermostatSetWeeklySchedule(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("set-weekly-schedule", credsIssuerConfig), mComplex_Transitions(&mRequest.transitions) | 
|  | { | 
|  | AddArgument("NumberOfTransitionsForSequence", 0, UINT8_MAX, &mRequest.numberOfTransitionsForSequence); | 
|  | AddArgument("DayOfWeekForSequence", 0, UINT8_MAX, &mRequest.dayOfWeekForSequence); | 
|  | AddArgument("ModeForSequence", 0, UINT8_MAX, &mRequest.modeForSequence); | 
|  | AddArgument("Transitions", &mComplex_Transitions); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000201) command (0x00000001) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000201, 0x00000001, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000201) command (0x00000001) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000201, 0x00000001, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::Thermostat::Commands::SetWeeklySchedule::Type mRequest; | 
|  | TypedComplexArgument< | 
|  | chip::app::DataModel::List<const chip::app::Clusters::Thermostat::Structs::ThermostatScheduleTransition::Type>> | 
|  | mComplex_Transitions; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command GetWeeklySchedule | 
|  | */ | 
|  | class ThermostatGetWeeklySchedule : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | ThermostatGetWeeklySchedule(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("get-weekly-schedule", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("DaysToReturn", 0, UINT8_MAX, &mRequest.daysToReturn); | 
|  | AddArgument("ModeToReturn", 0, UINT8_MAX, &mRequest.modeToReturn); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000201) command (0x00000002) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000201, 0x00000002, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000201) command (0x00000002) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000201, 0x00000002, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::Thermostat::Commands::GetWeeklySchedule::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command ClearWeeklySchedule | 
|  | */ | 
|  | class ThermostatClearWeeklySchedule : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | ThermostatClearWeeklySchedule(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("clear-weekly-schedule", credsIssuerConfig) | 
|  | { | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000201) command (0x00000003) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000201, 0x00000003, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000201) command (0x00000003) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000201, 0x00000003, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::Thermostat::Commands::ClearWeeklySchedule::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /*----------------------------------------------------------------------------*\ | 
|  | | Cluster FanControl                                                  | 0x0202 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Commands:                                                           |        | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Attributes:                                                         |        | | 
|  | | * FanMode                                                           | 0x0000 | | 
|  | | * FanModeSequence                                                   | 0x0001 | | 
|  | | * PercentSetting                                                    | 0x0002 | | 
|  | | * PercentCurrent                                                    | 0x0003 | | 
|  | | * SpeedMax                                                          | 0x0004 | | 
|  | | * SpeedSetting                                                      | 0x0005 | | 
|  | | * SpeedCurrent                                                      | 0x0006 | | 
|  | | * RockSupport                                                       | 0x0007 | | 
|  | | * RockSetting                                                       | 0x0008 | | 
|  | | * WindSupport                                                       | 0x0009 | | 
|  | | * WindSetting                                                       | 0x000A | | 
|  | | * GeneratedCommandList                                              | 0xFFF8 | | 
|  | | * AcceptedCommandList                                               | 0xFFF9 | | 
|  | | * EventList                                                         | 0xFFFA | | 
|  | | * AttributeList                                                     | 0xFFFB | | 
|  | | * FeatureMap                                                        | 0xFFFC | | 
|  | | * ClusterRevision                                                   | 0xFFFD | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Events:                                                             |        | | 
|  | \*----------------------------------------------------------------------------*/ | 
|  |  | 
|  | /*----------------------------------------------------------------------------*\ | 
|  | | Cluster ThermostatUserInterfaceConfiguration                        | 0x0204 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Commands:                                                           |        | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Attributes:                                                         |        | | 
|  | | * TemperatureDisplayMode                                            | 0x0000 | | 
|  | | * KeypadLockout                                                     | 0x0001 | | 
|  | | * ScheduleProgrammingVisibility                                     | 0x0002 | | 
|  | | * GeneratedCommandList                                              | 0xFFF8 | | 
|  | | * AcceptedCommandList                                               | 0xFFF9 | | 
|  | | * EventList                                                         | 0xFFFA | | 
|  | | * AttributeList                                                     | 0xFFFB | | 
|  | | * FeatureMap                                                        | 0xFFFC | | 
|  | | * ClusterRevision                                                   | 0xFFFD | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Events:                                                             |        | | 
|  | \*----------------------------------------------------------------------------*/ | 
|  |  | 
|  | /*----------------------------------------------------------------------------*\ | 
|  | | Cluster ColorControl                                                | 0x0300 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Commands:                                                           |        | | 
|  | | * MoveToHue                                                         |   0x00 | | 
|  | | * MoveHue                                                           |   0x01 | | 
|  | | * StepHue                                                           |   0x02 | | 
|  | | * MoveToSaturation                                                  |   0x03 | | 
|  | | * MoveSaturation                                                    |   0x04 | | 
|  | | * StepSaturation                                                    |   0x05 | | 
|  | | * MoveToHueAndSaturation                                            |   0x06 | | 
|  | | * MoveToColor                                                       |   0x07 | | 
|  | | * MoveColor                                                         |   0x08 | | 
|  | | * StepColor                                                         |   0x09 | | 
|  | | * MoveToColorTemperature                                            |   0x0A | | 
|  | | * EnhancedMoveToHue                                                 |   0x40 | | 
|  | | * EnhancedMoveHue                                                   |   0x41 | | 
|  | | * EnhancedStepHue                                                   |   0x42 | | 
|  | | * EnhancedMoveToHueAndSaturation                                    |   0x43 | | 
|  | | * ColorLoopSet                                                      |   0x44 | | 
|  | | * StopMoveStep                                                      |   0x47 | | 
|  | | * MoveColorTemperature                                              |   0x4B | | 
|  | | * StepColorTemperature                                              |   0x4C | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Attributes:                                                         |        | | 
|  | | * CurrentHue                                                        | 0x0000 | | 
|  | | * CurrentSaturation                                                 | 0x0001 | | 
|  | | * RemainingTime                                                     | 0x0002 | | 
|  | | * CurrentX                                                          | 0x0003 | | 
|  | | * CurrentY                                                          | 0x0004 | | 
|  | | * DriftCompensation                                                 | 0x0005 | | 
|  | | * CompensationText                                                  | 0x0006 | | 
|  | | * ColorTemperatureMireds                                            | 0x0007 | | 
|  | | * ColorMode                                                         | 0x0008 | | 
|  | | * Options                                                           | 0x000F | | 
|  | | * NumberOfPrimaries                                                 | 0x0010 | | 
|  | | * Primary1X                                                         | 0x0011 | | 
|  | | * Primary1Y                                                         | 0x0012 | | 
|  | | * Primary1Intensity                                                 | 0x0013 | | 
|  | | * Primary2X                                                         | 0x0015 | | 
|  | | * Primary2Y                                                         | 0x0016 | | 
|  | | * Primary2Intensity                                                 | 0x0017 | | 
|  | | * Primary3X                                                         | 0x0019 | | 
|  | | * Primary3Y                                                         | 0x001A | | 
|  | | * Primary3Intensity                                                 | 0x001B | | 
|  | | * Primary4X                                                         | 0x0020 | | 
|  | | * Primary4Y                                                         | 0x0021 | | 
|  | | * Primary4Intensity                                                 | 0x0022 | | 
|  | | * Primary5X                                                         | 0x0024 | | 
|  | | * Primary5Y                                                         | 0x0025 | | 
|  | | * Primary5Intensity                                                 | 0x0026 | | 
|  | | * Primary6X                                                         | 0x0028 | | 
|  | | * Primary6Y                                                         | 0x0029 | | 
|  | | * Primary6Intensity                                                 | 0x002A | | 
|  | | * WhitePointX                                                       | 0x0030 | | 
|  | | * WhitePointY                                                       | 0x0031 | | 
|  | | * ColorPointRX                                                      | 0x0032 | | 
|  | | * ColorPointRY                                                      | 0x0033 | | 
|  | | * ColorPointRIntensity                                              | 0x0034 | | 
|  | | * ColorPointGX                                                      | 0x0036 | | 
|  | | * ColorPointGY                                                      | 0x0037 | | 
|  | | * ColorPointGIntensity                                              | 0x0038 | | 
|  | | * ColorPointBX                                                      | 0x003A | | 
|  | | * ColorPointBY                                                      | 0x003B | | 
|  | | * ColorPointBIntensity                                              | 0x003C | | 
|  | | * EnhancedCurrentHue                                                | 0x4000 | | 
|  | | * EnhancedColorMode                                                 | 0x4001 | | 
|  | | * ColorLoopActive                                                   | 0x4002 | | 
|  | | * ColorLoopDirection                                                | 0x4003 | | 
|  | | * ColorLoopTime                                                     | 0x4004 | | 
|  | | * ColorLoopStartEnhancedHue                                         | 0x4005 | | 
|  | | * ColorLoopStoredEnhancedHue                                        | 0x4006 | | 
|  | | * ColorCapabilities                                                 | 0x400A | | 
|  | | * ColorTempPhysicalMinMireds                                        | 0x400B | | 
|  | | * ColorTempPhysicalMaxMireds                                        | 0x400C | | 
|  | | * CoupleColorTempToLevelMinMireds                                   | 0x400D | | 
|  | | * StartUpColorTemperatureMireds                                     | 0x4010 | | 
|  | | * GeneratedCommandList                                              | 0xFFF8 | | 
|  | | * AcceptedCommandList                                               | 0xFFF9 | | 
|  | | * EventList                                                         | 0xFFFA | | 
|  | | * AttributeList                                                     | 0xFFFB | | 
|  | | * FeatureMap                                                        | 0xFFFC | | 
|  | | * ClusterRevision                                                   | 0xFFFD | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Events:                                                             |        | | 
|  | \*----------------------------------------------------------------------------*/ | 
|  |  | 
|  | /* | 
|  | * Command MoveToHue | 
|  | */ | 
|  | class ColorControlMoveToHue : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | ColorControlMoveToHue(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("move-to-hue", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("Hue", 0, UINT8_MAX, &mRequest.hue); | 
|  | AddArgument("Direction", 0, UINT8_MAX, &mRequest.direction); | 
|  | AddArgument("TransitionTime", 0, UINT16_MAX, &mRequest.transitionTime); | 
|  | AddArgument("OptionsMask", 0, UINT8_MAX, &mRequest.optionsMask); | 
|  | AddArgument("OptionsOverride", 0, UINT8_MAX, &mRequest.optionsOverride); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000300) command (0x00000000) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000300, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000300) command (0x00000000) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000300, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::ColorControl::Commands::MoveToHue::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command MoveHue | 
|  | */ | 
|  | class ColorControlMoveHue : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | ColorControlMoveHue(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("move-hue", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("MoveMode", 0, UINT8_MAX, &mRequest.moveMode); | 
|  | AddArgument("Rate", 0, UINT8_MAX, &mRequest.rate); | 
|  | AddArgument("OptionsMask", 0, UINT8_MAX, &mRequest.optionsMask); | 
|  | AddArgument("OptionsOverride", 0, UINT8_MAX, &mRequest.optionsOverride); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000300) command (0x00000001) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000300, 0x00000001, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000300) command (0x00000001) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000300, 0x00000001, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::ColorControl::Commands::MoveHue::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command StepHue | 
|  | */ | 
|  | class ColorControlStepHue : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | ColorControlStepHue(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("step-hue", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("StepMode", 0, UINT8_MAX, &mRequest.stepMode); | 
|  | AddArgument("StepSize", 0, UINT8_MAX, &mRequest.stepSize); | 
|  | AddArgument("TransitionTime", 0, UINT8_MAX, &mRequest.transitionTime); | 
|  | AddArgument("OptionsMask", 0, UINT8_MAX, &mRequest.optionsMask); | 
|  | AddArgument("OptionsOverride", 0, UINT8_MAX, &mRequest.optionsOverride); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000300) command (0x00000002) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000300, 0x00000002, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000300) command (0x00000002) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000300, 0x00000002, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::ColorControl::Commands::StepHue::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command MoveToSaturation | 
|  | */ | 
|  | class ColorControlMoveToSaturation : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | ColorControlMoveToSaturation(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("move-to-saturation", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("Saturation", 0, UINT8_MAX, &mRequest.saturation); | 
|  | AddArgument("TransitionTime", 0, UINT16_MAX, &mRequest.transitionTime); | 
|  | AddArgument("OptionsMask", 0, UINT8_MAX, &mRequest.optionsMask); | 
|  | AddArgument("OptionsOverride", 0, UINT8_MAX, &mRequest.optionsOverride); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000300) command (0x00000003) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000300, 0x00000003, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000300) command (0x00000003) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000300, 0x00000003, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::ColorControl::Commands::MoveToSaturation::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command MoveSaturation | 
|  | */ | 
|  | class ColorControlMoveSaturation : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | ColorControlMoveSaturation(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("move-saturation", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("MoveMode", 0, UINT8_MAX, &mRequest.moveMode); | 
|  | AddArgument("Rate", 0, UINT8_MAX, &mRequest.rate); | 
|  | AddArgument("OptionsMask", 0, UINT8_MAX, &mRequest.optionsMask); | 
|  | AddArgument("OptionsOverride", 0, UINT8_MAX, &mRequest.optionsOverride); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000300) command (0x00000004) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000300, 0x00000004, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000300) command (0x00000004) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000300, 0x00000004, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::ColorControl::Commands::MoveSaturation::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command StepSaturation | 
|  | */ | 
|  | class ColorControlStepSaturation : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | ColorControlStepSaturation(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("step-saturation", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("StepMode", 0, UINT8_MAX, &mRequest.stepMode); | 
|  | AddArgument("StepSize", 0, UINT8_MAX, &mRequest.stepSize); | 
|  | AddArgument("TransitionTime", 0, UINT8_MAX, &mRequest.transitionTime); | 
|  | AddArgument("OptionsMask", 0, UINT8_MAX, &mRequest.optionsMask); | 
|  | AddArgument("OptionsOverride", 0, UINT8_MAX, &mRequest.optionsOverride); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000300) command (0x00000005) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000300, 0x00000005, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000300) command (0x00000005) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000300, 0x00000005, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::ColorControl::Commands::StepSaturation::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command MoveToHueAndSaturation | 
|  | */ | 
|  | class ColorControlMoveToHueAndSaturation : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | ColorControlMoveToHueAndSaturation(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("move-to-hue-and-saturation", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("Hue", 0, UINT8_MAX, &mRequest.hue); | 
|  | AddArgument("Saturation", 0, UINT8_MAX, &mRequest.saturation); | 
|  | AddArgument("TransitionTime", 0, UINT16_MAX, &mRequest.transitionTime); | 
|  | AddArgument("OptionsMask", 0, UINT8_MAX, &mRequest.optionsMask); | 
|  | AddArgument("OptionsOverride", 0, UINT8_MAX, &mRequest.optionsOverride); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000300) command (0x00000006) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000300, 0x00000006, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000300) command (0x00000006) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000300, 0x00000006, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::ColorControl::Commands::MoveToHueAndSaturation::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command MoveToColor | 
|  | */ | 
|  | class ColorControlMoveToColor : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | ColorControlMoveToColor(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("move-to-color", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("ColorX", 0, UINT16_MAX, &mRequest.colorX); | 
|  | AddArgument("ColorY", 0, UINT16_MAX, &mRequest.colorY); | 
|  | AddArgument("TransitionTime", 0, UINT16_MAX, &mRequest.transitionTime); | 
|  | AddArgument("OptionsMask", 0, UINT8_MAX, &mRequest.optionsMask); | 
|  | AddArgument("OptionsOverride", 0, UINT8_MAX, &mRequest.optionsOverride); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000300) command (0x00000007) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000300, 0x00000007, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000300) command (0x00000007) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000300, 0x00000007, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::ColorControl::Commands::MoveToColor::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command MoveColor | 
|  | */ | 
|  | class ColorControlMoveColor : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | ColorControlMoveColor(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("move-color", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("RateX", INT16_MIN, INT16_MAX, &mRequest.rateX); | 
|  | AddArgument("RateY", INT16_MIN, INT16_MAX, &mRequest.rateY); | 
|  | AddArgument("OptionsMask", 0, UINT8_MAX, &mRequest.optionsMask); | 
|  | AddArgument("OptionsOverride", 0, UINT8_MAX, &mRequest.optionsOverride); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000300) command (0x00000008) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000300, 0x00000008, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000300) command (0x00000008) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000300, 0x00000008, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::ColorControl::Commands::MoveColor::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command StepColor | 
|  | */ | 
|  | class ColorControlStepColor : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | ColorControlStepColor(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("step-color", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("StepX", INT16_MIN, INT16_MAX, &mRequest.stepX); | 
|  | AddArgument("StepY", INT16_MIN, INT16_MAX, &mRequest.stepY); | 
|  | AddArgument("TransitionTime", 0, UINT16_MAX, &mRequest.transitionTime); | 
|  | AddArgument("OptionsMask", 0, UINT8_MAX, &mRequest.optionsMask); | 
|  | AddArgument("OptionsOverride", 0, UINT8_MAX, &mRequest.optionsOverride); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000300) command (0x00000009) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000300, 0x00000009, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000300) command (0x00000009) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000300, 0x00000009, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::ColorControl::Commands::StepColor::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command MoveToColorTemperature | 
|  | */ | 
|  | class ColorControlMoveToColorTemperature : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | ColorControlMoveToColorTemperature(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("move-to-color-temperature", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("ColorTemperatureMireds", 0, UINT16_MAX, &mRequest.colorTemperatureMireds); | 
|  | AddArgument("TransitionTime", 0, UINT16_MAX, &mRequest.transitionTime); | 
|  | AddArgument("OptionsMask", 0, UINT8_MAX, &mRequest.optionsMask); | 
|  | AddArgument("OptionsOverride", 0, UINT8_MAX, &mRequest.optionsOverride); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000300) command (0x0000000A) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000300, 0x0000000A, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000300) command (0x0000000A) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000300, 0x0000000A, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::ColorControl::Commands::MoveToColorTemperature::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command EnhancedMoveToHue | 
|  | */ | 
|  | class ColorControlEnhancedMoveToHue : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | ColorControlEnhancedMoveToHue(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("enhanced-move-to-hue", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("EnhancedHue", 0, UINT16_MAX, &mRequest.enhancedHue); | 
|  | AddArgument("Direction", 0, UINT8_MAX, &mRequest.direction); | 
|  | AddArgument("TransitionTime", 0, UINT16_MAX, &mRequest.transitionTime); | 
|  | AddArgument("OptionsMask", 0, UINT8_MAX, &mRequest.optionsMask); | 
|  | AddArgument("OptionsOverride", 0, UINT8_MAX, &mRequest.optionsOverride); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000300) command (0x00000040) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000300, 0x00000040, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000300) command (0x00000040) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000300, 0x00000040, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::ColorControl::Commands::EnhancedMoveToHue::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command EnhancedMoveHue | 
|  | */ | 
|  | class ColorControlEnhancedMoveHue : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | ColorControlEnhancedMoveHue(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("enhanced-move-hue", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("MoveMode", 0, UINT8_MAX, &mRequest.moveMode); | 
|  | AddArgument("Rate", 0, UINT16_MAX, &mRequest.rate); | 
|  | AddArgument("OptionsMask", 0, UINT8_MAX, &mRequest.optionsMask); | 
|  | AddArgument("OptionsOverride", 0, UINT8_MAX, &mRequest.optionsOverride); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000300) command (0x00000041) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000300, 0x00000041, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000300) command (0x00000041) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000300, 0x00000041, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::ColorControl::Commands::EnhancedMoveHue::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command EnhancedStepHue | 
|  | */ | 
|  | class ColorControlEnhancedStepHue : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | ColorControlEnhancedStepHue(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("enhanced-step-hue", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("StepMode", 0, UINT8_MAX, &mRequest.stepMode); | 
|  | AddArgument("StepSize", 0, UINT16_MAX, &mRequest.stepSize); | 
|  | AddArgument("TransitionTime", 0, UINT16_MAX, &mRequest.transitionTime); | 
|  | AddArgument("OptionsMask", 0, UINT8_MAX, &mRequest.optionsMask); | 
|  | AddArgument("OptionsOverride", 0, UINT8_MAX, &mRequest.optionsOverride); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000300) command (0x00000042) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000300, 0x00000042, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000300) command (0x00000042) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000300, 0x00000042, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::ColorControl::Commands::EnhancedStepHue::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command EnhancedMoveToHueAndSaturation | 
|  | */ | 
|  | class ColorControlEnhancedMoveToHueAndSaturation : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | ColorControlEnhancedMoveToHueAndSaturation(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("enhanced-move-to-hue-and-saturation", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("EnhancedHue", 0, UINT16_MAX, &mRequest.enhancedHue); | 
|  | AddArgument("Saturation", 0, UINT8_MAX, &mRequest.saturation); | 
|  | AddArgument("TransitionTime", 0, UINT16_MAX, &mRequest.transitionTime); | 
|  | AddArgument("OptionsMask", 0, UINT8_MAX, &mRequest.optionsMask); | 
|  | AddArgument("OptionsOverride", 0, UINT8_MAX, &mRequest.optionsOverride); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000300) command (0x00000043) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000300, 0x00000043, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000300) command (0x00000043) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000300, 0x00000043, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::ColorControl::Commands::EnhancedMoveToHueAndSaturation::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command ColorLoopSet | 
|  | */ | 
|  | class ColorControlColorLoopSet : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | ColorControlColorLoopSet(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("color-loop-set", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("UpdateFlags", 0, UINT8_MAX, &mRequest.updateFlags); | 
|  | AddArgument("Action", 0, UINT8_MAX, &mRequest.action); | 
|  | AddArgument("Direction", 0, UINT8_MAX, &mRequest.direction); | 
|  | AddArgument("Time", 0, UINT16_MAX, &mRequest.time); | 
|  | AddArgument("StartHue", 0, UINT16_MAX, &mRequest.startHue); | 
|  | AddArgument("OptionsMask", 0, UINT8_MAX, &mRequest.optionsMask); | 
|  | AddArgument("OptionsOverride", 0, UINT8_MAX, &mRequest.optionsOverride); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000300) command (0x00000044) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000300, 0x00000044, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000300) command (0x00000044) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000300, 0x00000044, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::ColorControl::Commands::ColorLoopSet::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command StopMoveStep | 
|  | */ | 
|  | class ColorControlStopMoveStep : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | ColorControlStopMoveStep(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("stop-move-step", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("OptionsMask", 0, UINT8_MAX, &mRequest.optionsMask); | 
|  | AddArgument("OptionsOverride", 0, UINT8_MAX, &mRequest.optionsOverride); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000300) command (0x00000047) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000300, 0x00000047, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000300) command (0x00000047) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000300, 0x00000047, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::ColorControl::Commands::StopMoveStep::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command MoveColorTemperature | 
|  | */ | 
|  | class ColorControlMoveColorTemperature : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | ColorControlMoveColorTemperature(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("move-color-temperature", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("MoveMode", 0, UINT8_MAX, &mRequest.moveMode); | 
|  | AddArgument("Rate", 0, UINT16_MAX, &mRequest.rate); | 
|  | AddArgument("ColorTemperatureMinimumMireds", 0, UINT16_MAX, &mRequest.colorTemperatureMinimumMireds); | 
|  | AddArgument("ColorTemperatureMaximumMireds", 0, UINT16_MAX, &mRequest.colorTemperatureMaximumMireds); | 
|  | AddArgument("OptionsMask", 0, UINT8_MAX, &mRequest.optionsMask); | 
|  | AddArgument("OptionsOverride", 0, UINT8_MAX, &mRequest.optionsOverride); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000300) command (0x0000004B) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000300, 0x0000004B, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000300) command (0x0000004B) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000300, 0x0000004B, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::ColorControl::Commands::MoveColorTemperature::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command StepColorTemperature | 
|  | */ | 
|  | class ColorControlStepColorTemperature : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | ColorControlStepColorTemperature(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("step-color-temperature", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("StepMode", 0, UINT8_MAX, &mRequest.stepMode); | 
|  | AddArgument("StepSize", 0, UINT16_MAX, &mRequest.stepSize); | 
|  | AddArgument("TransitionTime", 0, UINT16_MAX, &mRequest.transitionTime); | 
|  | AddArgument("ColorTemperatureMinimumMireds", 0, UINT16_MAX, &mRequest.colorTemperatureMinimumMireds); | 
|  | AddArgument("ColorTemperatureMaximumMireds", 0, UINT16_MAX, &mRequest.colorTemperatureMaximumMireds); | 
|  | AddArgument("OptionsMask", 0, UINT8_MAX, &mRequest.optionsMask); | 
|  | AddArgument("OptionsOverride", 0, UINT8_MAX, &mRequest.optionsOverride); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000300) command (0x0000004C) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000300, 0x0000004C, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000300) command (0x0000004C) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000300, 0x0000004C, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::ColorControl::Commands::StepColorTemperature::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /*----------------------------------------------------------------------------*\ | 
|  | | Cluster BallastConfiguration                                        | 0x0301 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Commands:                                                           |        | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Attributes:                                                         |        | | 
|  | | * PhysicalMinLevel                                                  | 0x0000 | | 
|  | | * PhysicalMaxLevel                                                  | 0x0001 | | 
|  | | * BallastStatus                                                     | 0x0002 | | 
|  | | * MinLevel                                                          | 0x0010 | | 
|  | | * MaxLevel                                                          | 0x0011 | | 
|  | | * IntrinsicBallastFactor                                            | 0x0014 | | 
|  | | * BallastFactorAdjustment                                           | 0x0015 | | 
|  | | * LampQuantity                                                      | 0x0020 | | 
|  | | * LampType                                                          | 0x0030 | | 
|  | | * LampManufacturer                                                  | 0x0031 | | 
|  | | * LampRatedHours                                                    | 0x0032 | | 
|  | | * LampBurnHours                                                     | 0x0033 | | 
|  | | * LampAlarmMode                                                     | 0x0034 | | 
|  | | * LampBurnHoursTripPoint                                            | 0x0035 | | 
|  | | * GeneratedCommandList                                              | 0xFFF8 | | 
|  | | * AcceptedCommandList                                               | 0xFFF9 | | 
|  | | * EventList                                                         | 0xFFFA | | 
|  | | * AttributeList                                                     | 0xFFFB | | 
|  | | * FeatureMap                                                        | 0xFFFC | | 
|  | | * ClusterRevision                                                   | 0xFFFD | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Events:                                                             |        | | 
|  | \*----------------------------------------------------------------------------*/ | 
|  |  | 
|  | /*----------------------------------------------------------------------------*\ | 
|  | | Cluster IlluminanceMeasurement                                      | 0x0400 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Commands:                                                           |        | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Attributes:                                                         |        | | 
|  | | * MeasuredValue                                                     | 0x0000 | | 
|  | | * MinMeasuredValue                                                  | 0x0001 | | 
|  | | * MaxMeasuredValue                                                  | 0x0002 | | 
|  | | * Tolerance                                                         | 0x0003 | | 
|  | | * LightSensorType                                                   | 0x0004 | | 
|  | | * GeneratedCommandList                                              | 0xFFF8 | | 
|  | | * AcceptedCommandList                                               | 0xFFF9 | | 
|  | | * EventList                                                         | 0xFFFA | | 
|  | | * AttributeList                                                     | 0xFFFB | | 
|  | | * FeatureMap                                                        | 0xFFFC | | 
|  | | * ClusterRevision                                                   | 0xFFFD | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Events:                                                             |        | | 
|  | \*----------------------------------------------------------------------------*/ | 
|  |  | 
|  | /*----------------------------------------------------------------------------*\ | 
|  | | Cluster TemperatureMeasurement                                      | 0x0402 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Commands:                                                           |        | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Attributes:                                                         |        | | 
|  | | * MeasuredValue                                                     | 0x0000 | | 
|  | | * MinMeasuredValue                                                  | 0x0001 | | 
|  | | * MaxMeasuredValue                                                  | 0x0002 | | 
|  | | * Tolerance                                                         | 0x0003 | | 
|  | | * GeneratedCommandList                                              | 0xFFF8 | | 
|  | | * AcceptedCommandList                                               | 0xFFF9 | | 
|  | | * EventList                                                         | 0xFFFA | | 
|  | | * AttributeList                                                     | 0xFFFB | | 
|  | | * FeatureMap                                                        | 0xFFFC | | 
|  | | * ClusterRevision                                                   | 0xFFFD | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Events:                                                             |        | | 
|  | \*----------------------------------------------------------------------------*/ | 
|  |  | 
|  | /*----------------------------------------------------------------------------*\ | 
|  | | Cluster PressureMeasurement                                         | 0x0403 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Commands:                                                           |        | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Attributes:                                                         |        | | 
|  | | * MeasuredValue                                                     | 0x0000 | | 
|  | | * MinMeasuredValue                                                  | 0x0001 | | 
|  | | * MaxMeasuredValue                                                  | 0x0002 | | 
|  | | * Tolerance                                                         | 0x0003 | | 
|  | | * ScaledValue                                                       | 0x0010 | | 
|  | | * MinScaledValue                                                    | 0x0011 | | 
|  | | * MaxScaledValue                                                    | 0x0012 | | 
|  | | * ScaledTolerance                                                   | 0x0013 | | 
|  | | * Scale                                                             | 0x0014 | | 
|  | | * GeneratedCommandList                                              | 0xFFF8 | | 
|  | | * AcceptedCommandList                                               | 0xFFF9 | | 
|  | | * EventList                                                         | 0xFFFA | | 
|  | | * AttributeList                                                     | 0xFFFB | | 
|  | | * FeatureMap                                                        | 0xFFFC | | 
|  | | * ClusterRevision                                                   | 0xFFFD | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Events:                                                             |        | | 
|  | \*----------------------------------------------------------------------------*/ | 
|  |  | 
|  | /*----------------------------------------------------------------------------*\ | 
|  | | Cluster FlowMeasurement                                             | 0x0404 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Commands:                                                           |        | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Attributes:                                                         |        | | 
|  | | * MeasuredValue                                                     | 0x0000 | | 
|  | | * MinMeasuredValue                                                  | 0x0001 | | 
|  | | * MaxMeasuredValue                                                  | 0x0002 | | 
|  | | * Tolerance                                                         | 0x0003 | | 
|  | | * GeneratedCommandList                                              | 0xFFF8 | | 
|  | | * AcceptedCommandList                                               | 0xFFF9 | | 
|  | | * EventList                                                         | 0xFFFA | | 
|  | | * AttributeList                                                     | 0xFFFB | | 
|  | | * FeatureMap                                                        | 0xFFFC | | 
|  | | * ClusterRevision                                                   | 0xFFFD | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Events:                                                             |        | | 
|  | \*----------------------------------------------------------------------------*/ | 
|  |  | 
|  | /*----------------------------------------------------------------------------*\ | 
|  | | Cluster RelativeHumidityMeasurement                                 | 0x0405 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Commands:                                                           |        | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Attributes:                                                         |        | | 
|  | | * MeasuredValue                                                     | 0x0000 | | 
|  | | * MinMeasuredValue                                                  | 0x0001 | | 
|  | | * MaxMeasuredValue                                                  | 0x0002 | | 
|  | | * Tolerance                                                         | 0x0003 | | 
|  | | * GeneratedCommandList                                              | 0xFFF8 | | 
|  | | * AcceptedCommandList                                               | 0xFFF9 | | 
|  | | * EventList                                                         | 0xFFFA | | 
|  | | * AttributeList                                                     | 0xFFFB | | 
|  | | * FeatureMap                                                        | 0xFFFC | | 
|  | | * ClusterRevision                                                   | 0xFFFD | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Events:                                                             |        | | 
|  | \*----------------------------------------------------------------------------*/ | 
|  |  | 
|  | /*----------------------------------------------------------------------------*\ | 
|  | | Cluster OccupancySensing                                            | 0x0406 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Commands:                                                           |        | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Attributes:                                                         |        | | 
|  | | * Occupancy                                                         | 0x0000 | | 
|  | | * OccupancySensorType                                               | 0x0001 | | 
|  | | * OccupancySensorTypeBitmap                                         | 0x0002 | | 
|  | | * PIROccupiedToUnoccupiedDelay                                      | 0x0010 | | 
|  | | * PIRUnoccupiedToOccupiedDelay                                      | 0x0011 | | 
|  | | * PIRUnoccupiedToOccupiedThreshold                                  | 0x0012 | | 
|  | | * UltrasonicOccupiedToUnoccupiedDelay                               | 0x0020 | | 
|  | | * UltrasonicUnoccupiedToOccupiedDelay                               | 0x0021 | | 
|  | | * UltrasonicUnoccupiedToOccupiedThreshold                           | 0x0022 | | 
|  | | * PhysicalContactOccupiedToUnoccupiedDelay                          | 0x0030 | | 
|  | | * PhysicalContactUnoccupiedToOccupiedDelay                          | 0x0031 | | 
|  | | * PhysicalContactUnoccupiedToOccupiedThreshold                      | 0x0032 | | 
|  | | * GeneratedCommandList                                              | 0xFFF8 | | 
|  | | * AcceptedCommandList                                               | 0xFFF9 | | 
|  | | * EventList                                                         | 0xFFFA | | 
|  | | * AttributeList                                                     | 0xFFFB | | 
|  | | * FeatureMap                                                        | 0xFFFC | | 
|  | | * ClusterRevision                                                   | 0xFFFD | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Events:                                                             |        | | 
|  | \*----------------------------------------------------------------------------*/ | 
|  |  | 
|  | /*----------------------------------------------------------------------------*\ | 
|  | | Cluster WakeOnLan                                                   | 0x0503 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Commands:                                                           |        | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Attributes:                                                         |        | | 
|  | | * MACAddress                                                        | 0x0000 | | 
|  | | * GeneratedCommandList                                              | 0xFFF8 | | 
|  | | * AcceptedCommandList                                               | 0xFFF9 | | 
|  | | * EventList                                                         | 0xFFFA | | 
|  | | * AttributeList                                                     | 0xFFFB | | 
|  | | * FeatureMap                                                        | 0xFFFC | | 
|  | | * ClusterRevision                                                   | 0xFFFD | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Events:                                                             |        | | 
|  | \*----------------------------------------------------------------------------*/ | 
|  |  | 
|  | /*----------------------------------------------------------------------------*\ | 
|  | | Cluster Channel                                                     | 0x0504 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Commands:                                                           |        | | 
|  | | * ChangeChannel                                                     |   0x00 | | 
|  | | * ChangeChannelByNumber                                             |   0x02 | | 
|  | | * SkipChannel                                                       |   0x03 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Attributes:                                                         |        | | 
|  | | * ChannelList                                                       | 0x0000 | | 
|  | | * Lineup                                                            | 0x0001 | | 
|  | | * CurrentChannel                                                    | 0x0002 | | 
|  | | * GeneratedCommandList                                              | 0xFFF8 | | 
|  | | * AcceptedCommandList                                               | 0xFFF9 | | 
|  | | * EventList                                                         | 0xFFFA | | 
|  | | * AttributeList                                                     | 0xFFFB | | 
|  | | * FeatureMap                                                        | 0xFFFC | | 
|  | | * ClusterRevision                                                   | 0xFFFD | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Events:                                                             |        | | 
|  | \*----------------------------------------------------------------------------*/ | 
|  |  | 
|  | /* | 
|  | * Command ChangeChannel | 
|  | */ | 
|  | class ChannelChangeChannel : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | ChannelChangeChannel(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("change-channel", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("Match", &mRequest.match); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000504) command (0x00000000) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000504, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000504) command (0x00000000) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000504, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::Channel::Commands::ChangeChannel::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command ChangeChannelByNumber | 
|  | */ | 
|  | class ChannelChangeChannelByNumber : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | ChannelChangeChannelByNumber(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("change-channel-by-number", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("MajorNumber", 0, UINT16_MAX, &mRequest.majorNumber); | 
|  | AddArgument("MinorNumber", 0, UINT16_MAX, &mRequest.minorNumber); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000504) command (0x00000002) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000504, 0x00000002, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000504) command (0x00000002) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000504, 0x00000002, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::Channel::Commands::ChangeChannelByNumber::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command SkipChannel | 
|  | */ | 
|  | class ChannelSkipChannel : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | ChannelSkipChannel(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("skip-channel", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("Count", 0, UINT16_MAX, &mRequest.count); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000504) command (0x00000003) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000504, 0x00000003, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000504) command (0x00000003) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000504, 0x00000003, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::Channel::Commands::SkipChannel::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /*----------------------------------------------------------------------------*\ | 
|  | | Cluster TargetNavigator                                             | 0x0505 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Commands:                                                           |        | | 
|  | | * NavigateTarget                                                    |   0x00 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Attributes:                                                         |        | | 
|  | | * TargetList                                                        | 0x0000 | | 
|  | | * CurrentTarget                                                     | 0x0001 | | 
|  | | * GeneratedCommandList                                              | 0xFFF8 | | 
|  | | * AcceptedCommandList                                               | 0xFFF9 | | 
|  | | * EventList                                                         | 0xFFFA | | 
|  | | * AttributeList                                                     | 0xFFFB | | 
|  | | * FeatureMap                                                        | 0xFFFC | | 
|  | | * ClusterRevision                                                   | 0xFFFD | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Events:                                                             |        | | 
|  | \*----------------------------------------------------------------------------*/ | 
|  |  | 
|  | /* | 
|  | * Command NavigateTarget | 
|  | */ | 
|  | class TargetNavigatorNavigateTarget : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | TargetNavigatorNavigateTarget(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("navigate-target", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("Target", 0, UINT8_MAX, &mRequest.target); | 
|  | AddArgument("Data", &mRequest.data); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000505) command (0x00000000) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000505, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000505) command (0x00000000) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000505, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::TargetNavigator::Commands::NavigateTarget::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /*----------------------------------------------------------------------------*\ | 
|  | | Cluster MediaPlayback                                               | 0x0506 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Commands:                                                           |        | | 
|  | | * Play                                                              |   0x00 | | 
|  | | * Pause                                                             |   0x01 | | 
|  | | * Stop                                                              |   0x02 | | 
|  | | * StartOver                                                         |   0x03 | | 
|  | | * Previous                                                          |   0x04 | | 
|  | | * Next                                                              |   0x05 | | 
|  | | * Rewind                                                            |   0x06 | | 
|  | | * FastForward                                                       |   0x07 | | 
|  | | * SkipForward                                                       |   0x08 | | 
|  | | * SkipBackward                                                      |   0x09 | | 
|  | | * Seek                                                              |   0x0B | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Attributes:                                                         |        | | 
|  | | * CurrentState                                                      | 0x0000 | | 
|  | | * StartTime                                                         | 0x0001 | | 
|  | | * Duration                                                          | 0x0002 | | 
|  | | * SampledPosition                                                   | 0x0003 | | 
|  | | * PlaybackSpeed                                                     | 0x0004 | | 
|  | | * SeekRangeEnd                                                      | 0x0005 | | 
|  | | * SeekRangeStart                                                    | 0x0006 | | 
|  | | * GeneratedCommandList                                              | 0xFFF8 | | 
|  | | * AcceptedCommandList                                               | 0xFFF9 | | 
|  | | * EventList                                                         | 0xFFFA | | 
|  | | * AttributeList                                                     | 0xFFFB | | 
|  | | * FeatureMap                                                        | 0xFFFC | | 
|  | | * ClusterRevision                                                   | 0xFFFD | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Events:                                                             |        | | 
|  | \*----------------------------------------------------------------------------*/ | 
|  |  | 
|  | /* | 
|  | * Command Play | 
|  | */ | 
|  | class MediaPlaybackPlay : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | MediaPlaybackPlay(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("play", credsIssuerConfig) | 
|  | { | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000506) command (0x00000000) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000506, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000506) command (0x00000000) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000506, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::MediaPlayback::Commands::Play::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command Pause | 
|  | */ | 
|  | class MediaPlaybackPause : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | MediaPlaybackPause(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("pause", credsIssuerConfig) | 
|  | { | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000506) command (0x00000001) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000506, 0x00000001, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000506) command (0x00000001) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000506, 0x00000001, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::MediaPlayback::Commands::Pause::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command Stop | 
|  | */ | 
|  | class MediaPlaybackStop : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | MediaPlaybackStop(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("stop", credsIssuerConfig) | 
|  | { | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000506) command (0x00000002) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000506, 0x00000002, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000506) command (0x00000002) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000506, 0x00000002, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::MediaPlayback::Commands::Stop::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command StartOver | 
|  | */ | 
|  | class MediaPlaybackStartOver : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | MediaPlaybackStartOver(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("start-over", credsIssuerConfig) | 
|  | { | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000506) command (0x00000003) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000506, 0x00000003, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000506) command (0x00000003) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000506, 0x00000003, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::MediaPlayback::Commands::StartOver::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command Previous | 
|  | */ | 
|  | class MediaPlaybackPrevious : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | MediaPlaybackPrevious(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("previous", credsIssuerConfig) | 
|  | { | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000506) command (0x00000004) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000506, 0x00000004, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000506) command (0x00000004) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000506, 0x00000004, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::MediaPlayback::Commands::Previous::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command Next | 
|  | */ | 
|  | class MediaPlaybackNext : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | MediaPlaybackNext(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("next", credsIssuerConfig) | 
|  | { | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000506) command (0x00000005) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000506, 0x00000005, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000506) command (0x00000005) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000506, 0x00000005, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::MediaPlayback::Commands::Next::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command Rewind | 
|  | */ | 
|  | class MediaPlaybackRewind : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | MediaPlaybackRewind(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("rewind", credsIssuerConfig) | 
|  | { | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000506) command (0x00000006) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000506, 0x00000006, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000506) command (0x00000006) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000506, 0x00000006, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::MediaPlayback::Commands::Rewind::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command FastForward | 
|  | */ | 
|  | class MediaPlaybackFastForward : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | MediaPlaybackFastForward(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("fast-forward", credsIssuerConfig) | 
|  | { | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000506) command (0x00000007) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000506, 0x00000007, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000506) command (0x00000007) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000506, 0x00000007, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::MediaPlayback::Commands::FastForward::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command SkipForward | 
|  | */ | 
|  | class MediaPlaybackSkipForward : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | MediaPlaybackSkipForward(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("skip-forward", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("DeltaPositionMilliseconds", 0, UINT64_MAX, &mRequest.deltaPositionMilliseconds); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000506) command (0x00000008) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000506, 0x00000008, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000506) command (0x00000008) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000506, 0x00000008, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::MediaPlayback::Commands::SkipForward::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command SkipBackward | 
|  | */ | 
|  | class MediaPlaybackSkipBackward : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | MediaPlaybackSkipBackward(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("skip-backward", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("DeltaPositionMilliseconds", 0, UINT64_MAX, &mRequest.deltaPositionMilliseconds); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000506) command (0x00000009) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000506, 0x00000009, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000506) command (0x00000009) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000506, 0x00000009, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::MediaPlayback::Commands::SkipBackward::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command Seek | 
|  | */ | 
|  | class MediaPlaybackSeek : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | MediaPlaybackSeek(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("seek", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("Position", 0, UINT64_MAX, &mRequest.position); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000506) command (0x0000000B) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000506, 0x0000000B, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000506) command (0x0000000B) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000506, 0x0000000B, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::MediaPlayback::Commands::Seek::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /*----------------------------------------------------------------------------*\ | 
|  | | Cluster MediaInput                                                  | 0x0507 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Commands:                                                           |        | | 
|  | | * SelectInput                                                       |   0x00 | | 
|  | | * ShowInputStatus                                                   |   0x01 | | 
|  | | * HideInputStatus                                                   |   0x02 | | 
|  | | * RenameInput                                                       |   0x03 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Attributes:                                                         |        | | 
|  | | * InputList                                                         | 0x0000 | | 
|  | | * CurrentInput                                                      | 0x0001 | | 
|  | | * GeneratedCommandList                                              | 0xFFF8 | | 
|  | | * AcceptedCommandList                                               | 0xFFF9 | | 
|  | | * EventList                                                         | 0xFFFA | | 
|  | | * AttributeList                                                     | 0xFFFB | | 
|  | | * FeatureMap                                                        | 0xFFFC | | 
|  | | * ClusterRevision                                                   | 0xFFFD | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Events:                                                             |        | | 
|  | \*----------------------------------------------------------------------------*/ | 
|  |  | 
|  | /* | 
|  | * Command SelectInput | 
|  | */ | 
|  | class MediaInputSelectInput : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | MediaInputSelectInput(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("select-input", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("Index", 0, UINT8_MAX, &mRequest.index); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000507) command (0x00000000) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000507, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000507) command (0x00000000) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000507, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::MediaInput::Commands::SelectInput::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command ShowInputStatus | 
|  | */ | 
|  | class MediaInputShowInputStatus : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | MediaInputShowInputStatus(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("show-input-status", credsIssuerConfig) | 
|  | { | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000507) command (0x00000001) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000507, 0x00000001, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000507) command (0x00000001) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000507, 0x00000001, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::MediaInput::Commands::ShowInputStatus::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command HideInputStatus | 
|  | */ | 
|  | class MediaInputHideInputStatus : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | MediaInputHideInputStatus(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("hide-input-status", credsIssuerConfig) | 
|  | { | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000507) command (0x00000002) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000507, 0x00000002, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000507) command (0x00000002) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000507, 0x00000002, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::MediaInput::Commands::HideInputStatus::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command RenameInput | 
|  | */ | 
|  | class MediaInputRenameInput : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | MediaInputRenameInput(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("rename-input", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("Index", 0, UINT8_MAX, &mRequest.index); | 
|  | AddArgument("Name", &mRequest.name); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000507) command (0x00000003) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000507, 0x00000003, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000507) command (0x00000003) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000507, 0x00000003, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::MediaInput::Commands::RenameInput::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /*----------------------------------------------------------------------------*\ | 
|  | | Cluster LowPower                                                    | 0x0508 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Commands:                                                           |        | | 
|  | | * Sleep                                                             |   0x00 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Attributes:                                                         |        | | 
|  | | * GeneratedCommandList                                              | 0xFFF8 | | 
|  | | * AcceptedCommandList                                               | 0xFFF9 | | 
|  | | * EventList                                                         | 0xFFFA | | 
|  | | * AttributeList                                                     | 0xFFFB | | 
|  | | * FeatureMap                                                        | 0xFFFC | | 
|  | | * ClusterRevision                                                   | 0xFFFD | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Events:                                                             |        | | 
|  | \*----------------------------------------------------------------------------*/ | 
|  |  | 
|  | /* | 
|  | * Command Sleep | 
|  | */ | 
|  | class LowPowerSleep : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | LowPowerSleep(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("sleep", credsIssuerConfig) | 
|  | { | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000508) command (0x00000000) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000508, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000508) command (0x00000000) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000508, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::LowPower::Commands::Sleep::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /*----------------------------------------------------------------------------*\ | 
|  | | Cluster KeypadInput                                                 | 0x0509 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Commands:                                                           |        | | 
|  | | * SendKey                                                           |   0x00 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Attributes:                                                         |        | | 
|  | | * GeneratedCommandList                                              | 0xFFF8 | | 
|  | | * AcceptedCommandList                                               | 0xFFF9 | | 
|  | | * EventList                                                         | 0xFFFA | | 
|  | | * AttributeList                                                     | 0xFFFB | | 
|  | | * FeatureMap                                                        | 0xFFFC | | 
|  | | * ClusterRevision                                                   | 0xFFFD | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Events:                                                             |        | | 
|  | \*----------------------------------------------------------------------------*/ | 
|  |  | 
|  | /* | 
|  | * Command SendKey | 
|  | */ | 
|  | class KeypadInputSendKey : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | KeypadInputSendKey(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("send-key", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("KeyCode", 0, UINT8_MAX, &mRequest.keyCode); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000509) command (0x00000000) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000509, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000509) command (0x00000000) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000509, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::KeypadInput::Commands::SendKey::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /*----------------------------------------------------------------------------*\ | 
|  | | Cluster ContentLauncher                                             | 0x050A | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Commands:                                                           |        | | 
|  | | * LaunchContent                                                     |   0x00 | | 
|  | | * LaunchURL                                                         |   0x01 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Attributes:                                                         |        | | 
|  | | * AcceptHeader                                                      | 0x0000 | | 
|  | | * SupportedStreamingProtocols                                       | 0x0001 | | 
|  | | * GeneratedCommandList                                              | 0xFFF8 | | 
|  | | * AcceptedCommandList                                               | 0xFFF9 | | 
|  | | * EventList                                                         | 0xFFFA | | 
|  | | * AttributeList                                                     | 0xFFFB | | 
|  | | * FeatureMap                                                        | 0xFFFC | | 
|  | | * ClusterRevision                                                   | 0xFFFD | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Events:                                                             |        | | 
|  | \*----------------------------------------------------------------------------*/ | 
|  |  | 
|  | /* | 
|  | * Command LaunchContent | 
|  | */ | 
|  | class ContentLauncherLaunchContent : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | ContentLauncherLaunchContent(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("launch-content", credsIssuerConfig), mComplex_Search(&mRequest.search) | 
|  | { | 
|  | AddArgument("Search", &mComplex_Search); | 
|  | AddArgument("AutoPlay", 0, 1, &mRequest.autoPlay); | 
|  | AddArgument("Data", &mRequest.data); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x0000050A) command (0x00000000) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x0000050A, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x0000050A) command (0x00000000) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x0000050A, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::ContentLauncher::Commands::LaunchContent::Type mRequest; | 
|  | TypedComplexArgument<chip::app::Clusters::ContentLauncher::Structs::ContentSearchStruct::Type> mComplex_Search; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command LaunchURL | 
|  | */ | 
|  | class ContentLauncherLaunchURL : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | ContentLauncherLaunchURL(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("launch-url", credsIssuerConfig), mComplex_BrandingInformation(&mRequest.brandingInformation) | 
|  | { | 
|  | AddArgument("ContentURL", &mRequest.contentURL); | 
|  | AddArgument("DisplayString", &mRequest.displayString); | 
|  | AddArgument("BrandingInformation", &mComplex_BrandingInformation); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x0000050A) command (0x00000001) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x0000050A, 0x00000001, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x0000050A) command (0x00000001) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x0000050A, 0x00000001, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::ContentLauncher::Commands::LaunchURL::Type mRequest; | 
|  | TypedComplexArgument<chip::Optional<chip::app::Clusters::ContentLauncher::Structs::BrandingInformationStruct::Type>> | 
|  | mComplex_BrandingInformation; | 
|  | }; | 
|  |  | 
|  | /*----------------------------------------------------------------------------*\ | 
|  | | Cluster AudioOutput                                                 | 0x050B | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Commands:                                                           |        | | 
|  | | * SelectOutput                                                      |   0x00 | | 
|  | | * RenameOutput                                                      |   0x01 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Attributes:                                                         |        | | 
|  | | * OutputList                                                        | 0x0000 | | 
|  | | * CurrentOutput                                                     | 0x0001 | | 
|  | | * GeneratedCommandList                                              | 0xFFF8 | | 
|  | | * AcceptedCommandList                                               | 0xFFF9 | | 
|  | | * EventList                                                         | 0xFFFA | | 
|  | | * AttributeList                                                     | 0xFFFB | | 
|  | | * FeatureMap                                                        | 0xFFFC | | 
|  | | * ClusterRevision                                                   | 0xFFFD | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Events:                                                             |        | | 
|  | \*----------------------------------------------------------------------------*/ | 
|  |  | 
|  | /* | 
|  | * Command SelectOutput | 
|  | */ | 
|  | class AudioOutputSelectOutput : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | AudioOutputSelectOutput(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("select-output", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("Index", 0, UINT8_MAX, &mRequest.index); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x0000050B) command (0x00000000) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x0000050B, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x0000050B) command (0x00000000) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x0000050B, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::AudioOutput::Commands::SelectOutput::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command RenameOutput | 
|  | */ | 
|  | class AudioOutputRenameOutput : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | AudioOutputRenameOutput(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("rename-output", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("Index", 0, UINT8_MAX, &mRequest.index); | 
|  | AddArgument("Name", &mRequest.name); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x0000050B) command (0x00000001) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x0000050B, 0x00000001, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x0000050B) command (0x00000001) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x0000050B, 0x00000001, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::AudioOutput::Commands::RenameOutput::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /*----------------------------------------------------------------------------*\ | 
|  | | Cluster ApplicationLauncher                                         | 0x050C | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Commands:                                                           |        | | 
|  | | * LaunchApp                                                         |   0x00 | | 
|  | | * StopApp                                                           |   0x01 | | 
|  | | * HideApp                                                           |   0x02 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Attributes:                                                         |        | | 
|  | | * CatalogList                                                       | 0x0000 | | 
|  | | * CurrentApp                                                        | 0x0001 | | 
|  | | * GeneratedCommandList                                              | 0xFFF8 | | 
|  | | * AcceptedCommandList                                               | 0xFFF9 | | 
|  | | * EventList                                                         | 0xFFFA | | 
|  | | * AttributeList                                                     | 0xFFFB | | 
|  | | * FeatureMap                                                        | 0xFFFC | | 
|  | | * ClusterRevision                                                   | 0xFFFD | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Events:                                                             |        | | 
|  | \*----------------------------------------------------------------------------*/ | 
|  |  | 
|  | /* | 
|  | * Command LaunchApp | 
|  | */ | 
|  | class ApplicationLauncherLaunchApp : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | ApplicationLauncherLaunchApp(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("launch-app", credsIssuerConfig), mComplex_Application(&mRequest.application) | 
|  | { | 
|  | AddArgument("Application", &mComplex_Application); | 
|  | AddArgument("Data", &mRequest.data); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x0000050C) command (0x00000000) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x0000050C, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x0000050C) command (0x00000000) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x0000050C, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::ApplicationLauncher::Commands::LaunchApp::Type mRequest; | 
|  | TypedComplexArgument<chip::Optional<chip::app::Clusters::ApplicationLauncher::Structs::ApplicationStruct::Type>> | 
|  | mComplex_Application; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command StopApp | 
|  | */ | 
|  | class ApplicationLauncherStopApp : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | ApplicationLauncherStopApp(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("stop-app", credsIssuerConfig), mComplex_Application(&mRequest.application) | 
|  | { | 
|  | AddArgument("Application", &mComplex_Application); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x0000050C) command (0x00000001) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x0000050C, 0x00000001, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x0000050C) command (0x00000001) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x0000050C, 0x00000001, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::ApplicationLauncher::Commands::StopApp::Type mRequest; | 
|  | TypedComplexArgument<chip::Optional<chip::app::Clusters::ApplicationLauncher::Structs::ApplicationStruct::Type>> | 
|  | mComplex_Application; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command HideApp | 
|  | */ | 
|  | class ApplicationLauncherHideApp : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | ApplicationLauncherHideApp(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("hide-app", credsIssuerConfig), mComplex_Application(&mRequest.application) | 
|  | { | 
|  | AddArgument("Application", &mComplex_Application); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x0000050C) command (0x00000002) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x0000050C, 0x00000002, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x0000050C) command (0x00000002) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x0000050C, 0x00000002, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::ApplicationLauncher::Commands::HideApp::Type mRequest; | 
|  | TypedComplexArgument<chip::Optional<chip::app::Clusters::ApplicationLauncher::Structs::ApplicationStruct::Type>> | 
|  | mComplex_Application; | 
|  | }; | 
|  |  | 
|  | /*----------------------------------------------------------------------------*\ | 
|  | | Cluster ApplicationBasic                                            | 0x050D | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Commands:                                                           |        | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Attributes:                                                         |        | | 
|  | | * VendorName                                                        | 0x0000 | | 
|  | | * VendorID                                                          | 0x0001 | | 
|  | | * ApplicationName                                                   | 0x0002 | | 
|  | | * ProductID                                                         | 0x0003 | | 
|  | | * Application                                                       | 0x0004 | | 
|  | | * Status                                                            | 0x0005 | | 
|  | | * ApplicationVersion                                                | 0x0006 | | 
|  | | * AllowedVendorList                                                 | 0x0007 | | 
|  | | * GeneratedCommandList                                              | 0xFFF8 | | 
|  | | * AcceptedCommandList                                               | 0xFFF9 | | 
|  | | * EventList                                                         | 0xFFFA | | 
|  | | * AttributeList                                                     | 0xFFFB | | 
|  | | * FeatureMap                                                        | 0xFFFC | | 
|  | | * ClusterRevision                                                   | 0xFFFD | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Events:                                                             |        | | 
|  | \*----------------------------------------------------------------------------*/ | 
|  |  | 
|  | /*----------------------------------------------------------------------------*\ | 
|  | | Cluster AccountLogin                                                | 0x050E | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Commands:                                                           |        | | 
|  | | * GetSetupPIN                                                       |   0x00 | | 
|  | | * Login                                                             |   0x02 | | 
|  | | * Logout                                                            |   0x03 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Attributes:                                                         |        | | 
|  | | * GeneratedCommandList                                              | 0xFFF8 | | 
|  | | * AcceptedCommandList                                               | 0xFFF9 | | 
|  | | * EventList                                                         | 0xFFFA | | 
|  | | * AttributeList                                                     | 0xFFFB | | 
|  | | * FeatureMap                                                        | 0xFFFC | | 
|  | | * ClusterRevision                                                   | 0xFFFD | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Events:                                                             |        | | 
|  | \*----------------------------------------------------------------------------*/ | 
|  |  | 
|  | /* | 
|  | * Command GetSetupPIN | 
|  | */ | 
|  | class AccountLoginGetSetupPIN : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | AccountLoginGetSetupPIN(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("get-setup-pin", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("TempAccountIdentifier", &mRequest.tempAccountIdentifier); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x0000050E) command (0x00000000) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x0000050E, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x0000050E) command (0x00000000) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x0000050E, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::AccountLogin::Commands::GetSetupPIN::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command Login | 
|  | */ | 
|  | class AccountLoginLogin : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | AccountLoginLogin(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("login", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("TempAccountIdentifier", &mRequest.tempAccountIdentifier); | 
|  | AddArgument("SetupPIN", &mRequest.setupPIN); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x0000050E) command (0x00000002) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x0000050E, 0x00000002, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x0000050E) command (0x00000002) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x0000050E, 0x00000002, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::AccountLogin::Commands::Login::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command Logout | 
|  | */ | 
|  | class AccountLoginLogout : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | AccountLoginLogout(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("logout", credsIssuerConfig) | 
|  | { | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x0000050E) command (0x00000003) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x0000050E, 0x00000003, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x0000050E) command (0x00000003) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x0000050E, 0x00000003, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::AccountLogin::Commands::Logout::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /*----------------------------------------------------------------------------*\ | 
|  | | Cluster ElectricalMeasurement                                       | 0x0B04 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Commands:                                                           |        | | 
|  | | * GetProfileInfoCommand                                             |   0x00 | | 
|  | | * GetMeasurementProfileCommand                                      |   0x01 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Attributes:                                                         |        | | 
|  | | * MeasurementType                                                   | 0x0000 | | 
|  | | * DcVoltage                                                         | 0x0100 | | 
|  | | * DcVoltageMin                                                      | 0x0101 | | 
|  | | * DcVoltageMax                                                      | 0x0102 | | 
|  | | * DcCurrent                                                         | 0x0103 | | 
|  | | * DcCurrentMin                                                      | 0x0104 | | 
|  | | * DcCurrentMax                                                      | 0x0105 | | 
|  | | * DcPower                                                           | 0x0106 | | 
|  | | * DcPowerMin                                                        | 0x0107 | | 
|  | | * DcPowerMax                                                        | 0x0108 | | 
|  | | * DcVoltageMultiplier                                               | 0x0200 | | 
|  | | * DcVoltageDivisor                                                  | 0x0201 | | 
|  | | * DcCurrentMultiplier                                               | 0x0202 | | 
|  | | * DcCurrentDivisor                                                  | 0x0203 | | 
|  | | * DcPowerMultiplier                                                 | 0x0204 | | 
|  | | * DcPowerDivisor                                                    | 0x0205 | | 
|  | | * AcFrequency                                                       | 0x0300 | | 
|  | | * AcFrequencyMin                                                    | 0x0301 | | 
|  | | * AcFrequencyMax                                                    | 0x0302 | | 
|  | | * NeutralCurrent                                                    | 0x0303 | | 
|  | | * TotalActivePower                                                  | 0x0304 | | 
|  | | * TotalReactivePower                                                | 0x0305 | | 
|  | | * TotalApparentPower                                                | 0x0306 | | 
|  | | * Measured1stHarmonicCurrent                                        | 0x0307 | | 
|  | | * Measured3rdHarmonicCurrent                                        | 0x0308 | | 
|  | | * Measured5thHarmonicCurrent                                        | 0x0309 | | 
|  | | * Measured7thHarmonicCurrent                                        | 0x030A | | 
|  | | * Measured9thHarmonicCurrent                                        | 0x030B | | 
|  | | * Measured11thHarmonicCurrent                                       | 0x030C | | 
|  | | * MeasuredPhase1stHarmonicCurrent                                   | 0x030D | | 
|  | | * MeasuredPhase3rdHarmonicCurrent                                   | 0x030E | | 
|  | | * MeasuredPhase5thHarmonicCurrent                                   | 0x030F | | 
|  | | * MeasuredPhase7thHarmonicCurrent                                   | 0x0310 | | 
|  | | * MeasuredPhase9thHarmonicCurrent                                   | 0x0311 | | 
|  | | * MeasuredPhase11thHarmonicCurrent                                  | 0x0312 | | 
|  | | * AcFrequencyMultiplier                                             | 0x0400 | | 
|  | | * AcFrequencyDivisor                                                | 0x0401 | | 
|  | | * PowerMultiplier                                                   | 0x0402 | | 
|  | | * PowerDivisor                                                      | 0x0403 | | 
|  | | * HarmonicCurrentMultiplier                                         | 0x0404 | | 
|  | | * PhaseHarmonicCurrentMultiplier                                    | 0x0405 | | 
|  | | * InstantaneousVoltage                                              | 0x0500 | | 
|  | | * InstantaneousLineCurrent                                          | 0x0501 | | 
|  | | * InstantaneousActiveCurrent                                        | 0x0502 | | 
|  | | * InstantaneousReactiveCurrent                                      | 0x0503 | | 
|  | | * InstantaneousPower                                                | 0x0504 | | 
|  | | * RmsVoltage                                                        | 0x0505 | | 
|  | | * RmsVoltageMin                                                     | 0x0506 | | 
|  | | * RmsVoltageMax                                                     | 0x0507 | | 
|  | | * RmsCurrent                                                        | 0x0508 | | 
|  | | * RmsCurrentMin                                                     | 0x0509 | | 
|  | | * RmsCurrentMax                                                     | 0x050A | | 
|  | | * ActivePower                                                       | 0x050B | | 
|  | | * ActivePowerMin                                                    | 0x050C | | 
|  | | * ActivePowerMax                                                    | 0x050D | | 
|  | | * ReactivePower                                                     | 0x050E | | 
|  | | * ApparentPower                                                     | 0x050F | | 
|  | | * PowerFactor                                                       | 0x0510 | | 
|  | | * AverageRmsVoltageMeasurementPeriod                                | 0x0511 | | 
|  | | * AverageRmsUnderVoltageCounter                                     | 0x0513 | | 
|  | | * RmsExtremeOverVoltagePeriod                                       | 0x0514 | | 
|  | | * RmsExtremeUnderVoltagePeriod                                      | 0x0515 | | 
|  | | * RmsVoltageSagPeriod                                               | 0x0516 | | 
|  | | * RmsVoltageSwellPeriod                                             | 0x0517 | | 
|  | | * AcVoltageMultiplier                                               | 0x0600 | | 
|  | | * AcVoltageDivisor                                                  | 0x0601 | | 
|  | | * AcCurrentMultiplier                                               | 0x0602 | | 
|  | | * AcCurrentDivisor                                                  | 0x0603 | | 
|  | | * AcPowerMultiplier                                                 | 0x0604 | | 
|  | | * AcPowerDivisor                                                    | 0x0605 | | 
|  | | * OverloadAlarmsMask                                                | 0x0700 | | 
|  | | * VoltageOverload                                                   | 0x0701 | | 
|  | | * CurrentOverload                                                   | 0x0702 | | 
|  | | * AcOverloadAlarmsMask                                              | 0x0800 | | 
|  | | * AcVoltageOverload                                                 | 0x0801 | | 
|  | | * AcCurrentOverload                                                 | 0x0802 | | 
|  | | * AcActivePowerOverload                                             | 0x0803 | | 
|  | | * AcReactivePowerOverload                                           | 0x0804 | | 
|  | | * AverageRmsOverVoltage                                             | 0x0805 | | 
|  | | * AverageRmsUnderVoltage                                            | 0x0806 | | 
|  | | * RmsExtremeOverVoltage                                             | 0x0807 | | 
|  | | * RmsExtremeUnderVoltage                                            | 0x0808 | | 
|  | | * RmsVoltageSag                                                     | 0x0809 | | 
|  | | * RmsVoltageSwell                                                   | 0x080A | | 
|  | | * LineCurrentPhaseB                                                 | 0x0901 | | 
|  | | * ActiveCurrentPhaseB                                               | 0x0902 | | 
|  | | * ReactiveCurrentPhaseB                                             | 0x0903 | | 
|  | | * RmsVoltagePhaseB                                                  | 0x0905 | | 
|  | | * RmsVoltageMinPhaseB                                               | 0x0906 | | 
|  | | * RmsVoltageMaxPhaseB                                               | 0x0907 | | 
|  | | * RmsCurrentPhaseB                                                  | 0x0908 | | 
|  | | * RmsCurrentMinPhaseB                                               | 0x0909 | | 
|  | | * RmsCurrentMaxPhaseB                                               | 0x090A | | 
|  | | * ActivePowerPhaseB                                                 | 0x090B | | 
|  | | * ActivePowerMinPhaseB                                              | 0x090C | | 
|  | | * ActivePowerMaxPhaseB                                              | 0x090D | | 
|  | | * ReactivePowerPhaseB                                               | 0x090E | | 
|  | | * ApparentPowerPhaseB                                               | 0x090F | | 
|  | | * PowerFactorPhaseB                                                 | 0x0910 | | 
|  | | * AverageRmsVoltageMeasurementPeriodPhaseB                          | 0x0911 | | 
|  | | * AverageRmsOverVoltageCounterPhaseB                                | 0x0912 | | 
|  | | * AverageRmsUnderVoltageCounterPhaseB                               | 0x0913 | | 
|  | | * RmsExtremeOverVoltagePeriodPhaseB                                 | 0x0914 | | 
|  | | * RmsExtremeUnderVoltagePeriodPhaseB                                | 0x0915 | | 
|  | | * RmsVoltageSagPeriodPhaseB                                         | 0x0916 | | 
|  | | * RmsVoltageSwellPeriodPhaseB                                       | 0x0917 | | 
|  | | * LineCurrentPhaseC                                                 | 0x0A01 | | 
|  | | * ActiveCurrentPhaseC                                               | 0x0A02 | | 
|  | | * ReactiveCurrentPhaseC                                             | 0x0A03 | | 
|  | | * RmsVoltagePhaseC                                                  | 0x0A05 | | 
|  | | * RmsVoltageMinPhaseC                                               | 0x0A06 | | 
|  | | * RmsVoltageMaxPhaseC                                               | 0x0A07 | | 
|  | | * RmsCurrentPhaseC                                                  | 0x0A08 | | 
|  | | * RmsCurrentMinPhaseC                                               | 0x0A09 | | 
|  | | * RmsCurrentMaxPhaseC                                               | 0x0A0A | | 
|  | | * ActivePowerPhaseC                                                 | 0x0A0B | | 
|  | | * ActivePowerMinPhaseC                                              | 0x0A0C | | 
|  | | * ActivePowerMaxPhaseC                                              | 0x0A0D | | 
|  | | * ReactivePowerPhaseC                                               | 0x0A0E | | 
|  | | * ApparentPowerPhaseC                                               | 0x0A0F | | 
|  | | * PowerFactorPhaseC                                                 | 0x0A10 | | 
|  | | * AverageRmsVoltageMeasurementPeriodPhaseC                          | 0x0A11 | | 
|  | | * AverageRmsOverVoltageCounterPhaseC                                | 0x0A12 | | 
|  | | * AverageRmsUnderVoltageCounterPhaseC                               | 0x0A13 | | 
|  | | * RmsExtremeOverVoltagePeriodPhaseC                                 | 0x0A14 | | 
|  | | * RmsExtremeUnderVoltagePeriodPhaseC                                | 0x0A15 | | 
|  | | * RmsVoltageSagPeriodPhaseC                                         | 0x0A16 | | 
|  | | * RmsVoltageSwellPeriodPhaseC                                       | 0x0A17 | | 
|  | | * GeneratedCommandList                                              | 0xFFF8 | | 
|  | | * AcceptedCommandList                                               | 0xFFF9 | | 
|  | | * EventList                                                         | 0xFFFA | | 
|  | | * AttributeList                                                     | 0xFFFB | | 
|  | | * FeatureMap                                                        | 0xFFFC | | 
|  | | * ClusterRevision                                                   | 0xFFFD | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Events:                                                             |        | | 
|  | \*----------------------------------------------------------------------------*/ | 
|  |  | 
|  | /* | 
|  | * Command GetProfileInfoCommand | 
|  | */ | 
|  | class ElectricalMeasurementGetProfileInfoCommand : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | ElectricalMeasurementGetProfileInfoCommand(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("get-profile-info-command", credsIssuerConfig) | 
|  | { | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000B04) command (0x00000000) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000B04, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000B04) command (0x00000000) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000B04, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::ElectricalMeasurement::Commands::GetProfileInfoCommand::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command GetMeasurementProfileCommand | 
|  | */ | 
|  | class ElectricalMeasurementGetMeasurementProfileCommand : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | ElectricalMeasurementGetMeasurementProfileCommand(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("get-measurement-profile-command", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("AttributeId", 0, UINT16_MAX, &mRequest.attributeId); | 
|  | AddArgument("StartTime", 0, UINT32_MAX, &mRequest.startTime); | 
|  | AddArgument("NumberOfIntervals", 0, UINT8_MAX, &mRequest.numberOfIntervals); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000B04) command (0x00000001) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00000B04, 0x00000001, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00000B04) command (0x00000001) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00000B04, 0x00000001, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::ElectricalMeasurement::Commands::GetMeasurementProfileCommand::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /*----------------------------------------------------------------------------*\ | 
|  | | Cluster ClientMonitoring                                            | 0x1046 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Commands:                                                           |        | | 
|  | | * RegisterClientMonitoring                                          |   0x00 | | 
|  | | * UnregisterClientMonitoring                                        |   0x02 | | 
|  | | * StayAwakeRequest                                                  |   0x03 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Attributes:                                                         |        | | 
|  | | * IdleModeInterval                                                  | 0x0000 | | 
|  | | * ActiveModeInterval                                                | 0x0001 | | 
|  | | * ActiveModeThreshold                                               | 0x0002 | | 
|  | | * ExpectedClients                                                   | 0x0003 | | 
|  | | * ICDCounter                                                        | 0x0004 | | 
|  | | * GeneratedCommandList                                              | 0xFFF8 | | 
|  | | * AcceptedCommandList                                               | 0xFFF9 | | 
|  | | * EventList                                                         | 0xFFFA | | 
|  | | * AttributeList                                                     | 0xFFFB | | 
|  | | * FeatureMap                                                        | 0xFFFC | | 
|  | | * ClusterRevision                                                   | 0xFFFD | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Events:                                                             |        | | 
|  | \*----------------------------------------------------------------------------*/ | 
|  |  | 
|  | /* | 
|  | * Command RegisterClientMonitoring | 
|  | */ | 
|  | class ClientMonitoringRegisterClientMonitoring : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | ClientMonitoringRegisterClientMonitoring(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("register-client-monitoring", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("ClientNodeID", 0, UINT64_MAX, &mRequest.clientNodeID); | 
|  | AddArgument("Key", &mRequest.key); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00001046) command (0x00000000) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00001046, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00001046) command (0x00000000) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00001046, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::ClientMonitoring::Commands::RegisterClientMonitoring::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command UnregisterClientMonitoring | 
|  | */ | 
|  | class ClientMonitoringUnregisterClientMonitoring : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | ClientMonitoringUnregisterClientMonitoring(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("unregister-client-monitoring", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("ClientNodeID", 0, UINT64_MAX, &mRequest.clientNodeID); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00001046) command (0x00000002) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00001046, 0x00000002, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00001046) command (0x00000002) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00001046, 0x00000002, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::ClientMonitoring::Commands::UnregisterClientMonitoring::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command StayAwakeRequest | 
|  | */ | 
|  | class ClientMonitoringStayAwakeRequest : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | ClientMonitoringStayAwakeRequest(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("stay-awake-request", credsIssuerConfig) | 
|  | { | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00001046) command (0x00000003) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0x00001046, 0x00000003, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0x00001046) command (0x00000003) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0x00001046, 0x00000003, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::ClientMonitoring::Commands::StayAwakeRequest::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /*----------------------------------------------------------------------------*\ | 
|  | | Cluster UnitTesting                                                 | 0xFFF1FC05| | 
|  | |------------------------------------------------------------------------------| | 
|  | | Commands:                                                           |        | | 
|  | | * Test                                                              |   0x00 | | 
|  | | * TestNotHandled                                                    |   0x01 | | 
|  | | * TestSpecific                                                      |   0x02 | | 
|  | | * TestUnknownCommand                                                |   0x03 | | 
|  | | * TestAddArguments                                                  |   0x04 | | 
|  | | * TestSimpleArgumentRequest                                         |   0x05 | | 
|  | | * TestStructArrayArgumentRequest                                    |   0x06 | | 
|  | | * TestStructArgumentRequest                                         |   0x07 | | 
|  | | * TestNestedStructArgumentRequest                                   |   0x08 | | 
|  | | * TestListStructArgumentRequest                                     |   0x09 | | 
|  | | * TestListInt8UArgumentRequest                                      |   0x0A | | 
|  | | * TestNestedStructListArgumentRequest                               |   0x0B | | 
|  | | * TestListNestedStructListArgumentRequest                           |   0x0C | | 
|  | | * TestListInt8UReverseRequest                                       |   0x0D | | 
|  | | * TestEnumsRequest                                                  |   0x0E | | 
|  | | * TestNullableOptionalRequest                                       |   0x0F | | 
|  | | * TestComplexNullableOptionalRequest                                |   0x10 | | 
|  | | * SimpleStructEchoRequest                                           |   0x11 | | 
|  | | * TimedInvokeRequest                                                |   0x12 | | 
|  | | * TestSimpleOptionalArgumentRequest                                 |   0x13 | | 
|  | | * TestEmitTestEventRequest                                          |   0x14 | | 
|  | | * TestEmitTestFabricScopedEventRequest                              |   0x15 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Attributes:                                                         |        | | 
|  | | * Boolean                                                           | 0x0000 | | 
|  | | * Bitmap8                                                           | 0x0001 | | 
|  | | * Bitmap16                                                          | 0x0002 | | 
|  | | * Bitmap32                                                          | 0x0003 | | 
|  | | * Bitmap64                                                          | 0x0004 | | 
|  | | * Int8u                                                             | 0x0005 | | 
|  | | * Int16u                                                            | 0x0006 | | 
|  | | * Int24u                                                            | 0x0007 | | 
|  | | * Int32u                                                            | 0x0008 | | 
|  | | * Int40u                                                            | 0x0009 | | 
|  | | * Int48u                                                            | 0x000A | | 
|  | | * Int56u                                                            | 0x000B | | 
|  | | * Int64u                                                            | 0x000C | | 
|  | | * Int8s                                                             | 0x000D | | 
|  | | * Int16s                                                            | 0x000E | | 
|  | | * Int24s                                                            | 0x000F | | 
|  | | * Int32s                                                            | 0x0010 | | 
|  | | * Int40s                                                            | 0x0011 | | 
|  | | * Int48s                                                            | 0x0012 | | 
|  | | * Int56s                                                            | 0x0013 | | 
|  | | * Int64s                                                            | 0x0014 | | 
|  | | * Enum8                                                             | 0x0015 | | 
|  | | * Enum16                                                            | 0x0016 | | 
|  | | * FloatSingle                                                       | 0x0017 | | 
|  | | * FloatDouble                                                       | 0x0018 | | 
|  | | * OctetString                                                       | 0x0019 | | 
|  | | * ListInt8u                                                         | 0x001A | | 
|  | | * ListOctetString                                                   | 0x001B | | 
|  | | * ListStructOctetString                                             | 0x001C | | 
|  | | * LongOctetString                                                   | 0x001D | | 
|  | | * CharString                                                        | 0x001E | | 
|  | | * LongCharString                                                    | 0x001F | | 
|  | | * EpochUs                                                           | 0x0020 | | 
|  | | * EpochS                                                            | 0x0021 | | 
|  | | * VendorId                                                          | 0x0022 | | 
|  | | * ListNullablesAndOptionalsStruct                                   | 0x0023 | | 
|  | | * EnumAttr                                                          | 0x0024 | | 
|  | | * StructAttr                                                        | 0x0025 | | 
|  | | * RangeRestrictedInt8u                                              | 0x0026 | | 
|  | | * RangeRestrictedInt8s                                              | 0x0027 | | 
|  | | * RangeRestrictedInt16u                                             | 0x0028 | | 
|  | | * RangeRestrictedInt16s                                             | 0x0029 | | 
|  | | * ListLongOctetString                                               | 0x002A | | 
|  | | * ListFabricScoped                                                  | 0x002B | | 
|  | | * TimedWriteBoolean                                                 | 0x0030 | | 
|  | | * GeneralErrorBoolean                                               | 0x0031 | | 
|  | | * ClusterErrorBoolean                                               | 0x0032 | | 
|  | | * Unsupported                                                       | 0x00FF | | 
|  | | * NullableBoolean                                                   | 0x4000 | | 
|  | | * NullableBitmap8                                                   | 0x4001 | | 
|  | | * NullableBitmap16                                                  | 0x4002 | | 
|  | | * NullableBitmap32                                                  | 0x4003 | | 
|  | | * NullableBitmap64                                                  | 0x4004 | | 
|  | | * NullableInt8u                                                     | 0x4005 | | 
|  | | * NullableInt16u                                                    | 0x4006 | | 
|  | | * NullableInt24u                                                    | 0x4007 | | 
|  | | * NullableInt32u                                                    | 0x4008 | | 
|  | | * NullableInt40u                                                    | 0x4009 | | 
|  | | * NullableInt48u                                                    | 0x400A | | 
|  | | * NullableInt56u                                                    | 0x400B | | 
|  | | * NullableInt64u                                                    | 0x400C | | 
|  | | * NullableInt8s                                                     | 0x400D | | 
|  | | * NullableInt16s                                                    | 0x400E | | 
|  | | * NullableInt24s                                                    | 0x400F | | 
|  | | * NullableInt32s                                                    | 0x4010 | | 
|  | | * NullableInt40s                                                    | 0x4011 | | 
|  | | * NullableInt48s                                                    | 0x4012 | | 
|  | | * NullableInt56s                                                    | 0x4013 | | 
|  | | * NullableInt64s                                                    | 0x4014 | | 
|  | | * NullableEnum8                                                     | 0x4015 | | 
|  | | * NullableEnum16                                                    | 0x4016 | | 
|  | | * NullableFloatSingle                                               | 0x4017 | | 
|  | | * NullableFloatDouble                                               | 0x4018 | | 
|  | | * NullableOctetString                                               | 0x4019 | | 
|  | | * NullableCharString                                                | 0x401E | | 
|  | | * NullableEnumAttr                                                  | 0x4024 | | 
|  | | * NullableStruct                                                    | 0x4025 | | 
|  | | * NullableRangeRestrictedInt8u                                      | 0x4026 | | 
|  | | * NullableRangeRestrictedInt8s                                      | 0x4027 | | 
|  | | * NullableRangeRestrictedInt16u                                     | 0x4028 | | 
|  | | * NullableRangeRestrictedInt16s                                     | 0x4029 | | 
|  | | * WriteOnlyInt8u                                                    | 0x402A | | 
|  | | * GeneratedCommandList                                              | 0xFFF8 | | 
|  | | * AcceptedCommandList                                               | 0xFFF9 | | 
|  | | * EventList                                                         | 0xFFFA | | 
|  | | * AttributeList                                                     | 0xFFFB | | 
|  | | * FeatureMap                                                        | 0xFFFC | | 
|  | | * ClusterRevision                                                   | 0xFFFD | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Events:                                                             |        | | 
|  | | * TestEvent                                                         | 0x0001 | | 
|  | | * TestFabricScopedEvent                                             | 0x0002 | | 
|  | \*----------------------------------------------------------------------------*/ | 
|  |  | 
|  | /* | 
|  | * Command Test | 
|  | */ | 
|  | class UnitTestingTest : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | UnitTestingTest(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("test", credsIssuerConfig) | 
|  | { | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0xFFF1FC05) command (0x00000000) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0xFFF1FC05, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0xFFF1FC05) command (0x00000000) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0xFFF1FC05, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::UnitTesting::Commands::Test::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command TestNotHandled | 
|  | */ | 
|  | class UnitTestingTestNotHandled : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | UnitTestingTestNotHandled(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("test-not-handled", credsIssuerConfig) | 
|  | { | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0xFFF1FC05) command (0x00000001) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0xFFF1FC05, 0x00000001, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0xFFF1FC05) command (0x00000001) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0xFFF1FC05, 0x00000001, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::UnitTesting::Commands::TestNotHandled::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command TestSpecific | 
|  | */ | 
|  | class UnitTestingTestSpecific : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | UnitTestingTestSpecific(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("test-specific", credsIssuerConfig) | 
|  | { | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0xFFF1FC05) command (0x00000002) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0xFFF1FC05, 0x00000002, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0xFFF1FC05) command (0x00000002) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0xFFF1FC05, 0x00000002, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::UnitTesting::Commands::TestSpecific::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command TestUnknownCommand | 
|  | */ | 
|  | class UnitTestingTestUnknownCommand : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | UnitTestingTestUnknownCommand(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("test-unknown-command", credsIssuerConfig) | 
|  | { | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0xFFF1FC05) command (0x00000003) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0xFFF1FC05, 0x00000003, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0xFFF1FC05) command (0x00000003) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0xFFF1FC05, 0x00000003, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::UnitTesting::Commands::TestUnknownCommand::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command TestAddArguments | 
|  | */ | 
|  | class UnitTestingTestAddArguments : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | UnitTestingTestAddArguments(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("test-add-arguments", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("Arg1", 0, UINT8_MAX, &mRequest.arg1); | 
|  | AddArgument("Arg2", 0, UINT8_MAX, &mRequest.arg2); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0xFFF1FC05) command (0x00000004) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0xFFF1FC05, 0x00000004, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0xFFF1FC05) command (0x00000004) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0xFFF1FC05, 0x00000004, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::UnitTesting::Commands::TestAddArguments::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command TestSimpleArgumentRequest | 
|  | */ | 
|  | class UnitTestingTestSimpleArgumentRequest : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | UnitTestingTestSimpleArgumentRequest(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("test-simple-argument-request", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("Arg1", 0, 1, &mRequest.arg1); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0xFFF1FC05) command (0x00000005) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0xFFF1FC05, 0x00000005, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0xFFF1FC05) command (0x00000005) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0xFFF1FC05, 0x00000005, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::UnitTesting::Commands::TestSimpleArgumentRequest::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command TestStructArrayArgumentRequest | 
|  | */ | 
|  | class UnitTestingTestStructArrayArgumentRequest : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | UnitTestingTestStructArrayArgumentRequest(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("test-struct-array-argument-request", credsIssuerConfig), mComplex_Arg1(&mRequest.arg1), | 
|  | mComplex_Arg2(&mRequest.arg2), mComplex_Arg3(&mRequest.arg3), mComplex_Arg4(&mRequest.arg4) | 
|  | { | 
|  | AddArgument("Arg1", &mComplex_Arg1); | 
|  | AddArgument("Arg2", &mComplex_Arg2); | 
|  | AddArgument("Arg3", &mComplex_Arg3); | 
|  | AddArgument("Arg4", &mComplex_Arg4); | 
|  | AddArgument("Arg5", 0, UINT8_MAX, &mRequest.arg5); | 
|  | AddArgument("Arg6", 0, 1, &mRequest.arg6); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0xFFF1FC05) command (0x00000006) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0xFFF1FC05, 0x00000006, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0xFFF1FC05) command (0x00000006) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0xFFF1FC05, 0x00000006, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::UnitTesting::Commands::TestStructArrayArgumentRequest::Type mRequest; | 
|  | TypedComplexArgument<chip::app::DataModel::List<const chip::app::Clusters::UnitTesting::Structs::NestedStructList::Type>> | 
|  | mComplex_Arg1; | 
|  | TypedComplexArgument<chip::app::DataModel::List<const chip::app::Clusters::UnitTesting::Structs::SimpleStruct::Type>> | 
|  | mComplex_Arg2; | 
|  | TypedComplexArgument<chip::app::DataModel::List<const chip::app::Clusters::UnitTesting::SimpleEnum>> mComplex_Arg3; | 
|  | TypedComplexArgument<chip::app::DataModel::List<const bool>> mComplex_Arg4; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command TestStructArgumentRequest | 
|  | */ | 
|  | class UnitTestingTestStructArgumentRequest : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | UnitTestingTestStructArgumentRequest(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("test-struct-argument-request", credsIssuerConfig), mComplex_Arg1(&mRequest.arg1) | 
|  | { | 
|  | AddArgument("Arg1", &mComplex_Arg1); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0xFFF1FC05) command (0x00000007) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0xFFF1FC05, 0x00000007, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0xFFF1FC05) command (0x00000007) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0xFFF1FC05, 0x00000007, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::UnitTesting::Commands::TestStructArgumentRequest::Type mRequest; | 
|  | TypedComplexArgument<chip::app::Clusters::UnitTesting::Structs::SimpleStruct::Type> mComplex_Arg1; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command TestNestedStructArgumentRequest | 
|  | */ | 
|  | class UnitTestingTestNestedStructArgumentRequest : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | UnitTestingTestNestedStructArgumentRequest(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("test-nested-struct-argument-request", credsIssuerConfig), mComplex_Arg1(&mRequest.arg1) | 
|  | { | 
|  | AddArgument("Arg1", &mComplex_Arg1); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0xFFF1FC05) command (0x00000008) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0xFFF1FC05, 0x00000008, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0xFFF1FC05) command (0x00000008) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0xFFF1FC05, 0x00000008, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::UnitTesting::Commands::TestNestedStructArgumentRequest::Type mRequest; | 
|  | TypedComplexArgument<chip::app::Clusters::UnitTesting::Structs::NestedStruct::Type> mComplex_Arg1; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command TestListStructArgumentRequest | 
|  | */ | 
|  | class UnitTestingTestListStructArgumentRequest : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | UnitTestingTestListStructArgumentRequest(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("test-list-struct-argument-request", credsIssuerConfig), mComplex_Arg1(&mRequest.arg1) | 
|  | { | 
|  | AddArgument("Arg1", &mComplex_Arg1); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0xFFF1FC05) command (0x00000009) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0xFFF1FC05, 0x00000009, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0xFFF1FC05) command (0x00000009) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0xFFF1FC05, 0x00000009, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::UnitTesting::Commands::TestListStructArgumentRequest::Type mRequest; | 
|  | TypedComplexArgument<chip::app::DataModel::List<const chip::app::Clusters::UnitTesting::Structs::SimpleStruct::Type>> | 
|  | mComplex_Arg1; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command TestListInt8UArgumentRequest | 
|  | */ | 
|  | class UnitTestingTestListInt8UArgumentRequest : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | UnitTestingTestListInt8UArgumentRequest(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("test-list-int8uargument-request", credsIssuerConfig), mComplex_Arg1(&mRequest.arg1) | 
|  | { | 
|  | AddArgument("Arg1", &mComplex_Arg1); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0xFFF1FC05) command (0x0000000A) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0xFFF1FC05, 0x0000000A, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0xFFF1FC05) command (0x0000000A) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0xFFF1FC05, 0x0000000A, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::UnitTesting::Commands::TestListInt8UArgumentRequest::Type mRequest; | 
|  | TypedComplexArgument<chip::app::DataModel::List<const uint8_t>> mComplex_Arg1; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command TestNestedStructListArgumentRequest | 
|  | */ | 
|  | class UnitTestingTestNestedStructListArgumentRequest : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | UnitTestingTestNestedStructListArgumentRequest(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("test-nested-struct-list-argument-request", credsIssuerConfig), mComplex_Arg1(&mRequest.arg1) | 
|  | { | 
|  | AddArgument("Arg1", &mComplex_Arg1); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0xFFF1FC05) command (0x0000000B) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0xFFF1FC05, 0x0000000B, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0xFFF1FC05) command (0x0000000B) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0xFFF1FC05, 0x0000000B, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::UnitTesting::Commands::TestNestedStructListArgumentRequest::Type mRequest; | 
|  | TypedComplexArgument<chip::app::Clusters::UnitTesting::Structs::NestedStructList::Type> mComplex_Arg1; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command TestListNestedStructListArgumentRequest | 
|  | */ | 
|  | class UnitTestingTestListNestedStructListArgumentRequest : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | UnitTestingTestListNestedStructListArgumentRequest(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("test-list-nested-struct-list-argument-request", credsIssuerConfig), mComplex_Arg1(&mRequest.arg1) | 
|  | { | 
|  | AddArgument("Arg1", &mComplex_Arg1); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0xFFF1FC05) command (0x0000000C) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0xFFF1FC05, 0x0000000C, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0xFFF1FC05) command (0x0000000C) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0xFFF1FC05, 0x0000000C, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::UnitTesting::Commands::TestListNestedStructListArgumentRequest::Type mRequest; | 
|  | TypedComplexArgument<chip::app::DataModel::List<const chip::app::Clusters::UnitTesting::Structs::NestedStructList::Type>> | 
|  | mComplex_Arg1; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command TestListInt8UReverseRequest | 
|  | */ | 
|  | class UnitTestingTestListInt8UReverseRequest : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | UnitTestingTestListInt8UReverseRequest(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("test-list-int8ureverse-request", credsIssuerConfig), mComplex_Arg1(&mRequest.arg1) | 
|  | { | 
|  | AddArgument("Arg1", &mComplex_Arg1); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0xFFF1FC05) command (0x0000000D) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0xFFF1FC05, 0x0000000D, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0xFFF1FC05) command (0x0000000D) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0xFFF1FC05, 0x0000000D, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::UnitTesting::Commands::TestListInt8UReverseRequest::Type mRequest; | 
|  | TypedComplexArgument<chip::app::DataModel::List<const uint8_t>> mComplex_Arg1; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command TestEnumsRequest | 
|  | */ | 
|  | class UnitTestingTestEnumsRequest : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | UnitTestingTestEnumsRequest(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("test-enums-request", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("Arg1", 0, UINT16_MAX, &mRequest.arg1); | 
|  | AddArgument("Arg2", 0, UINT8_MAX, &mRequest.arg2); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0xFFF1FC05) command (0x0000000E) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0xFFF1FC05, 0x0000000E, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0xFFF1FC05) command (0x0000000E) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0xFFF1FC05, 0x0000000E, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::UnitTesting::Commands::TestEnumsRequest::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command TestNullableOptionalRequest | 
|  | */ | 
|  | class UnitTestingTestNullableOptionalRequest : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | UnitTestingTestNullableOptionalRequest(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("test-nullable-optional-request", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("Arg1", 0, UINT8_MAX, &mRequest.arg1); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0xFFF1FC05) command (0x0000000F) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0xFFF1FC05, 0x0000000F, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0xFFF1FC05) command (0x0000000F) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0xFFF1FC05, 0x0000000F, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::UnitTesting::Commands::TestNullableOptionalRequest::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command TestComplexNullableOptionalRequest | 
|  | */ | 
|  | class UnitTestingTestComplexNullableOptionalRequest : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | UnitTestingTestComplexNullableOptionalRequest(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("test-complex-nullable-optional-request", credsIssuerConfig), | 
|  | mComplex_NullableStruct(&mRequest.nullableStruct), mComplex_OptionalStruct(&mRequest.optionalStruct), | 
|  | mComplex_NullableOptionalStruct(&mRequest.nullableOptionalStruct), mComplex_NullableList(&mRequest.nullableList), | 
|  | mComplex_OptionalList(&mRequest.optionalList), mComplex_NullableOptionalList(&mRequest.nullableOptionalList) | 
|  | { | 
|  | AddArgument("NullableInt", 0, UINT16_MAX, &mRequest.nullableInt); | 
|  | AddArgument("OptionalInt", 0, UINT16_MAX, &mRequest.optionalInt); | 
|  | AddArgument("NullableOptionalInt", 0, UINT16_MAX, &mRequest.nullableOptionalInt); | 
|  | AddArgument("NullableString", &mRequest.nullableString); | 
|  | AddArgument("OptionalString", &mRequest.optionalString); | 
|  | AddArgument("NullableOptionalString", &mRequest.nullableOptionalString); | 
|  | AddArgument("NullableStruct", &mComplex_NullableStruct); | 
|  | AddArgument("OptionalStruct", &mComplex_OptionalStruct); | 
|  | AddArgument("NullableOptionalStruct", &mComplex_NullableOptionalStruct); | 
|  | AddArgument("NullableList", &mComplex_NullableList); | 
|  | AddArgument("OptionalList", &mComplex_OptionalList); | 
|  | AddArgument("NullableOptionalList", &mComplex_NullableOptionalList); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0xFFF1FC05) command (0x00000010) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0xFFF1FC05, 0x00000010, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0xFFF1FC05) command (0x00000010) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0xFFF1FC05, 0x00000010, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::UnitTesting::Commands::TestComplexNullableOptionalRequest::Type mRequest; | 
|  | TypedComplexArgument<chip::app::DataModel::Nullable<chip::app::Clusters::UnitTesting::Structs::SimpleStruct::Type>> | 
|  | mComplex_NullableStruct; | 
|  | TypedComplexArgument<chip::Optional<chip::app::Clusters::UnitTesting::Structs::SimpleStruct::Type>> mComplex_OptionalStruct; | 
|  | TypedComplexArgument< | 
|  | chip::Optional<chip::app::DataModel::Nullable<chip::app::Clusters::UnitTesting::Structs::SimpleStruct::Type>>> | 
|  | mComplex_NullableOptionalStruct; | 
|  | TypedComplexArgument< | 
|  | chip::app::DataModel::Nullable<chip::app::DataModel::List<const chip::app::Clusters::UnitTesting::SimpleEnum>>> | 
|  | mComplex_NullableList; | 
|  | TypedComplexArgument<chip::Optional<chip::app::DataModel::List<const chip::app::Clusters::UnitTesting::SimpleEnum>>> | 
|  | mComplex_OptionalList; | 
|  | TypedComplexArgument<chip::Optional< | 
|  | chip::app::DataModel::Nullable<chip::app::DataModel::List<const chip::app::Clusters::UnitTesting::SimpleEnum>>>> | 
|  | mComplex_NullableOptionalList; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command SimpleStructEchoRequest | 
|  | */ | 
|  | class UnitTestingSimpleStructEchoRequest : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | UnitTestingSimpleStructEchoRequest(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("simple-struct-echo-request", credsIssuerConfig), mComplex_Arg1(&mRequest.arg1) | 
|  | { | 
|  | AddArgument("Arg1", &mComplex_Arg1); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0xFFF1FC05) command (0x00000011) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0xFFF1FC05, 0x00000011, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0xFFF1FC05) command (0x00000011) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0xFFF1FC05, 0x00000011, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::UnitTesting::Commands::SimpleStructEchoRequest::Type mRequest; | 
|  | TypedComplexArgument<chip::app::Clusters::UnitTesting::Structs::SimpleStruct::Type> mComplex_Arg1; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command TimedInvokeRequest | 
|  | */ | 
|  | class UnitTestingTimedInvokeRequest : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | UnitTestingTimedInvokeRequest(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("timed-invoke-request", credsIssuerConfig) | 
|  | { | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0xFFF1FC05) command (0x00000012) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0xFFF1FC05, 0x00000012, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0xFFF1FC05) command (0x00000012) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0xFFF1FC05, 0x00000012, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::UnitTesting::Commands::TimedInvokeRequest::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command TestSimpleOptionalArgumentRequest | 
|  | */ | 
|  | class UnitTestingTestSimpleOptionalArgumentRequest : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | UnitTestingTestSimpleOptionalArgumentRequest(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("test-simple-optional-argument-request", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("Arg1", 0, 1, &mRequest.arg1); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0xFFF1FC05) command (0x00000013) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0xFFF1FC05, 0x00000013, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0xFFF1FC05) command (0x00000013) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0xFFF1FC05, 0x00000013, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::UnitTesting::Commands::TestSimpleOptionalArgumentRequest::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command TestEmitTestEventRequest | 
|  | */ | 
|  | class UnitTestingTestEmitTestEventRequest : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | UnitTestingTestEmitTestEventRequest(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("test-emit-test-event-request", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("Arg1", 0, UINT8_MAX, &mRequest.arg1); | 
|  | AddArgument("Arg2", 0, UINT8_MAX, &mRequest.arg2); | 
|  | AddArgument("Arg3", 0, 1, &mRequest.arg3); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0xFFF1FC05) command (0x00000014) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0xFFF1FC05, 0x00000014, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0xFFF1FC05) command (0x00000014) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0xFFF1FC05, 0x00000014, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::UnitTesting::Commands::TestEmitTestEventRequest::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command TestEmitTestFabricScopedEventRequest | 
|  | */ | 
|  | class UnitTestingTestEmitTestFabricScopedEventRequest : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | UnitTestingTestEmitTestFabricScopedEventRequest(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("test-emit-test-fabric-scoped-event-request", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("Arg1", 0, UINT8_MAX, &mRequest.arg1); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0xFFF1FC05) command (0x00000015) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0xFFF1FC05, 0x00000015, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0xFFF1FC05) command (0x00000015) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0xFFF1FC05, 0x00000015, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::UnitTesting::Commands::TestEmitTestFabricScopedEventRequest::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /*----------------------------------------------------------------------------*\ | 
|  | | Cluster FaultInjection                                              | 0xFFF1FC06| | 
|  | |------------------------------------------------------------------------------| | 
|  | | Commands:                                                           |        | | 
|  | | * FailAtFault                                                       |   0x00 | | 
|  | | * FailRandomlyAtFault                                               |   0x01 | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Attributes:                                                         |        | | 
|  | | * GeneratedCommandList                                              | 0xFFF8 | | 
|  | | * AcceptedCommandList                                               | 0xFFF9 | | 
|  | | * EventList                                                         | 0xFFFA | | 
|  | | * AttributeList                                                     | 0xFFFB | | 
|  | | * FeatureMap                                                        | 0xFFFC | | 
|  | | * ClusterRevision                                                   | 0xFFFD | | 
|  | |------------------------------------------------------------------------------| | 
|  | | Events:                                                             |        | | 
|  | \*----------------------------------------------------------------------------*/ | 
|  |  | 
|  | /* | 
|  | * Command FailAtFault | 
|  | */ | 
|  | class FaultInjectionFailAtFault : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | FaultInjectionFailAtFault(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("fail-at-fault", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("Type", 0, UINT8_MAX, &mRequest.type); | 
|  | AddArgument("Id", 0, UINT32_MAX, &mRequest.id); | 
|  | AddArgument("NumCallsToSkip", 0, UINT32_MAX, &mRequest.numCallsToSkip); | 
|  | AddArgument("NumCallsToFail", 0, UINT32_MAX, &mRequest.numCallsToFail); | 
|  | AddArgument("TakeMutex", 0, 1, &mRequest.takeMutex); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0xFFF1FC06) command (0x00000000) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0xFFF1FC06, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0xFFF1FC06) command (0x00000000) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0xFFF1FC06, 0x00000000, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::FaultInjection::Commands::FailAtFault::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Command FailRandomlyAtFault | 
|  | */ | 
|  | class FaultInjectionFailRandomlyAtFault : public ClusterCommand | 
|  | { | 
|  | public: | 
|  | FaultInjectionFailRandomlyAtFault(CredentialIssuerCommands * credsIssuerConfig) : | 
|  | ClusterCommand("fail-randomly-at-fault", credsIssuerConfig) | 
|  | { | 
|  | AddArgument("Type", 0, UINT8_MAX, &mRequest.type); | 
|  | AddArgument("Id", 0, UINT32_MAX, &mRequest.id); | 
|  | AddArgument("Percentage", 0, UINT8_MAX, &mRequest.percentage); | 
|  | ClusterCommand::AddArguments(); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0xFFF1FC06) command (0x00000001) on endpoint %u", endpointIds.at(0)); | 
|  |  | 
|  | return ClusterCommand::SendCommand(device, endpointIds.at(0), 0xFFF1FC06, 0x00000001, mRequest); | 
|  | } | 
|  |  | 
|  | CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override | 
|  | { | 
|  | ChipLogProgress(chipTool, "Sending cluster (0xFFF1FC06) command (0x00000001) on Group %u", groupId); | 
|  |  | 
|  | return ClusterCommand::SendGroupCommand(groupId, fabricIndex, 0xFFF1FC06, 0x00000001, mRequest); | 
|  | } | 
|  |  | 
|  | private: | 
|  | chip::app::Clusters::FaultInjection::Commands::FailRandomlyAtFault::Type mRequest; | 
|  | }; | 
|  |  | 
|  | /*----------------------------------------------------------------------------*\ | 
|  | | Register all Clusters commands                                               | | 
|  | \*----------------------------------------------------------------------------*/ | 
|  | void registerClusterIdentify(Commands & commands, CredentialIssuerCommands * credsIssuerConfig) | 
|  | { | 
|  | using namespace chip::app::Clusters::Identify; | 
|  |  | 
|  | const char * clusterName = "Identify"; | 
|  |  | 
|  | commands_list clusterCommands = { | 
|  | // | 
|  | // Commands | 
|  | // | 
|  | make_unique<ClusterCommand>(Id, credsIssuerConfig),    // | 
|  | make_unique<IdentifyIdentify>(credsIssuerConfig),      // | 
|  | make_unique<IdentifyTriggerEffect>(credsIssuerConfig), // | 
|  | // | 
|  | // Attributes | 
|  | // | 
|  | make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<ReadAttribute>(Id, "identify-time", Attributes::IdentifyTime::Id, credsIssuerConfig),                  // | 
|  | make_unique<ReadAttribute>(Id, "identify-type", Attributes::IdentifyType::Id, credsIssuerConfig),                  // | 
|  | make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "identify-time", 0, UINT16_MAX, Attributes::IdentifyTime::Id, | 
|  | WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "identify-type", 0, UINT8_MAX, Attributes::IdentifyType::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>( | 
|  | Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>( | 
|  | Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig),                                // | 
|  | make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<SubscribeAttribute>(Id, "identify-time", Attributes::IdentifyTime::Id, credsIssuerConfig),                  // | 
|  | make_unique<SubscribeAttribute>(Id, "identify-type", Attributes::IdentifyType::Id, credsIssuerConfig),                  // | 
|  | make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | // | 
|  | // Events | 
|  | // | 
|  | make_unique<ReadEvent>(Id, credsIssuerConfig),      // | 
|  | make_unique<SubscribeEvent>(Id, credsIssuerConfig), // | 
|  | }; | 
|  |  | 
|  | commands.Register(clusterName, clusterCommands); | 
|  | } | 
|  | void registerClusterGroups(Commands & commands, CredentialIssuerCommands * credsIssuerConfig) | 
|  | { | 
|  | using namespace chip::app::Clusters::Groups; | 
|  |  | 
|  | const char * clusterName = "Groups"; | 
|  |  | 
|  | commands_list clusterCommands = { | 
|  | // | 
|  | // Commands | 
|  | // | 
|  | make_unique<ClusterCommand>(Id, credsIssuerConfig),          // | 
|  | make_unique<GroupsAddGroup>(credsIssuerConfig),              // | 
|  | make_unique<GroupsViewGroup>(credsIssuerConfig),             // | 
|  | make_unique<GroupsGetGroupMembership>(credsIssuerConfig),    // | 
|  | make_unique<GroupsRemoveGroup>(credsIssuerConfig),           // | 
|  | make_unique<GroupsRemoveAllGroups>(credsIssuerConfig),       // | 
|  | make_unique<GroupsAddGroupIfIdentifying>(credsIssuerConfig), // | 
|  | // | 
|  | // Attributes | 
|  | // | 
|  | make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<ReadAttribute>(Id, "name-support", Attributes::NameSupport::Id, credsIssuerConfig),                    // | 
|  | make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "name-support", 0, UINT8_MAX, Attributes::NameSupport::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>( | 
|  | Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>( | 
|  | Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig),                                // | 
|  | make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<SubscribeAttribute>(Id, "name-support", Attributes::NameSupport::Id, credsIssuerConfig),                    // | 
|  | make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | // | 
|  | // Events | 
|  | // | 
|  | make_unique<ReadEvent>(Id, credsIssuerConfig),      // | 
|  | make_unique<SubscribeEvent>(Id, credsIssuerConfig), // | 
|  | }; | 
|  |  | 
|  | commands.Register(clusterName, clusterCommands); | 
|  | } | 
|  | void registerClusterScenes(Commands & commands, CredentialIssuerCommands * credsIssuerConfig) | 
|  | { | 
|  | using namespace chip::app::Clusters::Scenes; | 
|  |  | 
|  | const char * clusterName = "Scenes"; | 
|  |  | 
|  | commands_list clusterCommands = { | 
|  | // | 
|  | // Commands | 
|  | // | 
|  | make_unique<ClusterCommand>(Id, credsIssuerConfig),       // | 
|  | make_unique<ScenesAddScene>(credsIssuerConfig),           // | 
|  | make_unique<ScenesViewScene>(credsIssuerConfig),          // | 
|  | make_unique<ScenesRemoveScene>(credsIssuerConfig),        // | 
|  | make_unique<ScenesRemoveAllScenes>(credsIssuerConfig),    // | 
|  | make_unique<ScenesStoreScene>(credsIssuerConfig),         // | 
|  | make_unique<ScenesRecallScene>(credsIssuerConfig),        // | 
|  | make_unique<ScenesGetSceneMembership>(credsIssuerConfig), // | 
|  | make_unique<ScenesEnhancedAddScene>(credsIssuerConfig),   // | 
|  | make_unique<ScenesEnhancedViewScene>(credsIssuerConfig),  // | 
|  | make_unique<ScenesCopyScene>(credsIssuerConfig),          // | 
|  | // | 
|  | // Attributes | 
|  | // | 
|  | make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<ReadAttribute>(Id, "scene-count", Attributes::SceneCount::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "current-scene", Attributes::CurrentScene::Id, credsIssuerConfig),                  // | 
|  | make_unique<ReadAttribute>(Id, "current-group", Attributes::CurrentGroup::Id, credsIssuerConfig),                  // | 
|  | make_unique<ReadAttribute>(Id, "scene-valid", Attributes::SceneValid::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "name-support", Attributes::NameSupport::Id, credsIssuerConfig),                    // | 
|  | make_unique<ReadAttribute>(Id, "last-configured-by", Attributes::LastConfiguredBy::Id, credsIssuerConfig),         // | 
|  | make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "scene-count", 0, UINT8_MAX, Attributes::SceneCount::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "current-scene", 0, UINT8_MAX, Attributes::CurrentScene::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::GroupId>>(Id, "current-group", 0, UINT16_MAX, Attributes::CurrentGroup::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<bool>>(Id, "scene-valid", 0, 1, Attributes::SceneValid::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "name-support", 0, UINT8_MAX, Attributes::NameSupport::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<chip::NodeId>>>( | 
|  | Id, "last-configured-by", 0, UINT64_MAX, Attributes::LastConfiguredBy::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>( | 
|  | Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>( | 
|  | Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig),                                // | 
|  | make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<SubscribeAttribute>(Id, "scene-count", Attributes::SceneCount::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "current-scene", Attributes::CurrentScene::Id, credsIssuerConfig),                  // | 
|  | make_unique<SubscribeAttribute>(Id, "current-group", Attributes::CurrentGroup::Id, credsIssuerConfig),                  // | 
|  | make_unique<SubscribeAttribute>(Id, "scene-valid", Attributes::SceneValid::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "name-support", Attributes::NameSupport::Id, credsIssuerConfig),                    // | 
|  | make_unique<SubscribeAttribute>(Id, "last-configured-by", Attributes::LastConfiguredBy::Id, credsIssuerConfig),         // | 
|  | make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | // | 
|  | // Events | 
|  | // | 
|  | make_unique<ReadEvent>(Id, credsIssuerConfig),      // | 
|  | make_unique<SubscribeEvent>(Id, credsIssuerConfig), // | 
|  | }; | 
|  |  | 
|  | commands.Register(clusterName, clusterCommands); | 
|  | } | 
|  | void registerClusterOnOff(Commands & commands, CredentialIssuerCommands * credsIssuerConfig) | 
|  | { | 
|  | using namespace chip::app::Clusters::OnOff; | 
|  |  | 
|  | const char * clusterName = "OnOff"; | 
|  |  | 
|  | commands_list clusterCommands = { | 
|  | // | 
|  | // Commands | 
|  | // | 
|  | make_unique<ClusterCommand>(Id, credsIssuerConfig),           // | 
|  | make_unique<OnOffOff>(credsIssuerConfig),                     // | 
|  | make_unique<OnOffOn>(credsIssuerConfig),                      // | 
|  | make_unique<OnOffToggle>(credsIssuerConfig),                  // | 
|  | make_unique<OnOffOffWithEffect>(credsIssuerConfig),           // | 
|  | make_unique<OnOffOnWithRecallGlobalScene>(credsIssuerConfig), // | 
|  | make_unique<OnOffOnWithTimedOff>(credsIssuerConfig),          // | 
|  | // | 
|  | // Attributes | 
|  | // | 
|  | make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<ReadAttribute>(Id, "on-off", Attributes::OnOff::Id, credsIssuerConfig),                                // | 
|  | make_unique<ReadAttribute>(Id, "global-scene-control", Attributes::GlobalSceneControl::Id, credsIssuerConfig),     // | 
|  | make_unique<ReadAttribute>(Id, "on-time", Attributes::OnTime::Id, credsIssuerConfig),                              // | 
|  | make_unique<ReadAttribute>(Id, "off-wait-time", Attributes::OffWaitTime::Id, credsIssuerConfig),                   // | 
|  | make_unique<ReadAttribute>(Id, "start-up-on-off", Attributes::StartUpOnOff::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              // | 
|  | make_unique<WriteAttribute<bool>>(Id, "on-off", 0, 1, Attributes::OnOff::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<bool>>(Id, "global-scene-control", 0, 1, Attributes::GlobalSceneControl::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "on-time", 0, UINT16_MAX, Attributes::OnTime::Id, WriteCommandType::kWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "off-wait-time", 0, UINT16_MAX, Attributes::OffWaitTime::Id, | 
|  | WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<chip::app::Clusters::OnOff::OnOffStartUpOnOff>>>( | 
|  | Id, "start-up-on-off", 0, UINT8_MAX, Attributes::StartUpOnOff::Id, WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>( | 
|  | Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>( | 
|  | Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig),                                // | 
|  | make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<SubscribeAttribute>(Id, "on-off", Attributes::OnOff::Id, credsIssuerConfig),                                // | 
|  | make_unique<SubscribeAttribute>(Id, "global-scene-control", Attributes::GlobalSceneControl::Id, credsIssuerConfig),     // | 
|  | make_unique<SubscribeAttribute>(Id, "on-time", Attributes::OnTime::Id, credsIssuerConfig),                              // | 
|  | make_unique<SubscribeAttribute>(Id, "off-wait-time", Attributes::OffWaitTime::Id, credsIssuerConfig),                   // | 
|  | make_unique<SubscribeAttribute>(Id, "start-up-on-off", Attributes::StartUpOnOff::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | // | 
|  | // Events | 
|  | // | 
|  | make_unique<ReadEvent>(Id, credsIssuerConfig),      // | 
|  | make_unique<SubscribeEvent>(Id, credsIssuerConfig), // | 
|  | }; | 
|  |  | 
|  | commands.Register(clusterName, clusterCommands); | 
|  | } | 
|  | void registerClusterOnOffSwitchConfiguration(Commands & commands, CredentialIssuerCommands * credsIssuerConfig) | 
|  | { | 
|  | using namespace chip::app::Clusters::OnOffSwitchConfiguration; | 
|  |  | 
|  | const char * clusterName = "OnOffSwitchConfiguration"; | 
|  |  | 
|  | commands_list clusterCommands = { | 
|  | // | 
|  | // Commands | 
|  | // | 
|  | make_unique<ClusterCommand>(Id, credsIssuerConfig), // | 
|  | // | 
|  | // Attributes | 
|  | // | 
|  | make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<ReadAttribute>(Id, "switch-type", Attributes::SwitchType::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "switch-actions", Attributes::SwitchActions::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "switch-type", 0, UINT8_MAX, Attributes::SwitchType::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "switch-actions", 0, UINT8_MAX, Attributes::SwitchActions::Id, | 
|  | WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>( | 
|  | Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>( | 
|  | Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig),                                // | 
|  | make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<SubscribeAttribute>(Id, "switch-type", Attributes::SwitchType::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "switch-actions", Attributes::SwitchActions::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | // | 
|  | // Events | 
|  | // | 
|  | make_unique<ReadEvent>(Id, credsIssuerConfig),      // | 
|  | make_unique<SubscribeEvent>(Id, credsIssuerConfig), // | 
|  | }; | 
|  |  | 
|  | commands.Register(clusterName, clusterCommands); | 
|  | } | 
|  | void registerClusterLevelControl(Commands & commands, CredentialIssuerCommands * credsIssuerConfig) | 
|  | { | 
|  | using namespace chip::app::Clusters::LevelControl; | 
|  |  | 
|  | const char * clusterName = "LevelControl"; | 
|  |  | 
|  | commands_list clusterCommands = { | 
|  | // | 
|  | // Commands | 
|  | // | 
|  | make_unique<ClusterCommand>(Id, credsIssuerConfig),                 // | 
|  | make_unique<LevelControlMoveToLevel>(credsIssuerConfig),            // | 
|  | make_unique<LevelControlMove>(credsIssuerConfig),                   // | 
|  | make_unique<LevelControlStep>(credsIssuerConfig),                   // | 
|  | make_unique<LevelControlStop>(credsIssuerConfig),                   // | 
|  | make_unique<LevelControlMoveToLevelWithOnOff>(credsIssuerConfig),   // | 
|  | make_unique<LevelControlMoveWithOnOff>(credsIssuerConfig),          // | 
|  | make_unique<LevelControlStepWithOnOff>(credsIssuerConfig),          // | 
|  | make_unique<LevelControlStopWithOnOff>(credsIssuerConfig),          // | 
|  | make_unique<LevelControlMoveToClosestFrequency>(credsIssuerConfig), // | 
|  | // | 
|  | // Attributes | 
|  | // | 
|  | make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<ReadAttribute>(Id, "current-level", Attributes::CurrentLevel::Id, credsIssuerConfig),                  // | 
|  | make_unique<ReadAttribute>(Id, "remaining-time", Attributes::RemainingTime::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "min-level", Attributes::MinLevel::Id, credsIssuerConfig),                          // | 
|  | make_unique<ReadAttribute>(Id, "max-level", Attributes::MaxLevel::Id, credsIssuerConfig),                          // | 
|  | make_unique<ReadAttribute>(Id, "current-frequency", Attributes::CurrentFrequency::Id, credsIssuerConfig),          // | 
|  | make_unique<ReadAttribute>(Id, "min-frequency", Attributes::MinFrequency::Id, credsIssuerConfig),                  // | 
|  | make_unique<ReadAttribute>(Id, "max-frequency", Attributes::MaxFrequency::Id, credsIssuerConfig),                  // | 
|  | make_unique<ReadAttribute>(Id, "options", Attributes::Options::Id, credsIssuerConfig),                             // | 
|  | make_unique<ReadAttribute>(Id, "on-off-transition-time", Attributes::OnOffTransitionTime::Id, credsIssuerConfig),  // | 
|  | make_unique<ReadAttribute>(Id, "on-level", Attributes::OnLevel::Id, credsIssuerConfig),                            // | 
|  | make_unique<ReadAttribute>(Id, "on-transition-time", Attributes::OnTransitionTime::Id, credsIssuerConfig),         // | 
|  | make_unique<ReadAttribute>(Id, "off-transition-time", Attributes::OffTransitionTime::Id, credsIssuerConfig),       // | 
|  | make_unique<ReadAttribute>(Id, "default-move-rate", Attributes::DefaultMoveRate::Id, credsIssuerConfig),           // | 
|  | make_unique<ReadAttribute>(Id, "start-up-current-level", Attributes::StartUpCurrentLevel::Id, credsIssuerConfig),  // | 
|  | make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint8_t>>>( | 
|  | Id, "current-level", 0, UINT8_MAX, Attributes::CurrentLevel::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "remaining-time", 0, UINT16_MAX, Attributes::RemainingTime::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "min-level", 0, UINT8_MAX, Attributes::MinLevel::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "max-level", 0, UINT8_MAX, Attributes::MaxLevel::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "current-frequency", 0, UINT16_MAX, Attributes::CurrentFrequency::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "min-frequency", 0, UINT16_MAX, Attributes::MinFrequency::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "max-frequency", 0, UINT16_MAX, Attributes::MaxFrequency::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::BitMask<chip::app::Clusters::LevelControl::LevelControlOptions>>>( | 
|  | Id, "options", 0, UINT8_MAX, Attributes::Options::Id, WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "on-off-transition-time", 0, UINT16_MAX, Attributes::OnOffTransitionTime::Id, | 
|  | WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint8_t>>>(Id, "on-level", 0, UINT8_MAX, Attributes::OnLevel::Id, | 
|  | WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint16_t>>>(Id, "on-transition-time", 0, UINT16_MAX, | 
|  | Attributes::OnTransitionTime::Id, | 
|  | WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint16_t>>>(Id, "off-transition-time", 0, UINT16_MAX, | 
|  | Attributes::OffTransitionTime::Id, | 
|  | WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint8_t>>>( | 
|  | Id, "default-move-rate", 0, UINT8_MAX, Attributes::DefaultMoveRate::Id, WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint8_t>>>(Id, "start-up-current-level", 0, UINT8_MAX, | 
|  | Attributes::StartUpCurrentLevel::Id, | 
|  | WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>( | 
|  | Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>( | 
|  | Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig),                                // | 
|  | make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<SubscribeAttribute>(Id, "current-level", Attributes::CurrentLevel::Id, credsIssuerConfig),                  // | 
|  | make_unique<SubscribeAttribute>(Id, "remaining-time", Attributes::RemainingTime::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "min-level", Attributes::MinLevel::Id, credsIssuerConfig),                          // | 
|  | make_unique<SubscribeAttribute>(Id, "max-level", Attributes::MaxLevel::Id, credsIssuerConfig),                          // | 
|  | make_unique<SubscribeAttribute>(Id, "current-frequency", Attributes::CurrentFrequency::Id, credsIssuerConfig),          // | 
|  | make_unique<SubscribeAttribute>(Id, "min-frequency", Attributes::MinFrequency::Id, credsIssuerConfig),                  // | 
|  | make_unique<SubscribeAttribute>(Id, "max-frequency", Attributes::MaxFrequency::Id, credsIssuerConfig),                  // | 
|  | make_unique<SubscribeAttribute>(Id, "options", Attributes::Options::Id, credsIssuerConfig),                             // | 
|  | make_unique<SubscribeAttribute>(Id, "on-off-transition-time", Attributes::OnOffTransitionTime::Id, credsIssuerConfig),  // | 
|  | make_unique<SubscribeAttribute>(Id, "on-level", Attributes::OnLevel::Id, credsIssuerConfig),                            // | 
|  | make_unique<SubscribeAttribute>(Id, "on-transition-time", Attributes::OnTransitionTime::Id, credsIssuerConfig),         // | 
|  | make_unique<SubscribeAttribute>(Id, "off-transition-time", Attributes::OffTransitionTime::Id, credsIssuerConfig),       // | 
|  | make_unique<SubscribeAttribute>(Id, "default-move-rate", Attributes::DefaultMoveRate::Id, credsIssuerConfig),           // | 
|  | make_unique<SubscribeAttribute>(Id, "start-up-current-level", Attributes::StartUpCurrentLevel::Id, credsIssuerConfig),  // | 
|  | make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | // | 
|  | // Events | 
|  | // | 
|  | make_unique<ReadEvent>(Id, credsIssuerConfig),      // | 
|  | make_unique<SubscribeEvent>(Id, credsIssuerConfig), // | 
|  | }; | 
|  |  | 
|  | commands.Register(clusterName, clusterCommands); | 
|  | } | 
|  | void registerClusterBinaryInputBasic(Commands & commands, CredentialIssuerCommands * credsIssuerConfig) | 
|  | { | 
|  | using namespace chip::app::Clusters::BinaryInputBasic; | 
|  |  | 
|  | const char * clusterName = "BinaryInputBasic"; | 
|  |  | 
|  | commands_list clusterCommands = { | 
|  | // | 
|  | // Commands | 
|  | // | 
|  | make_unique<ClusterCommand>(Id, credsIssuerConfig), // | 
|  | // | 
|  | // Attributes | 
|  | // | 
|  | make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<ReadAttribute>(Id, "active-text", Attributes::ActiveText::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "description", Attributes::Description::Id, credsIssuerConfig),                     // | 
|  | make_unique<ReadAttribute>(Id, "inactive-text", Attributes::InactiveText::Id, credsIssuerConfig),                  // | 
|  | make_unique<ReadAttribute>(Id, "out-of-service", Attributes::OutOfService::Id, credsIssuerConfig),                 // | 
|  | make_unique<ReadAttribute>(Id, "polarity", Attributes::Polarity::Id, credsIssuerConfig),                           // | 
|  | make_unique<ReadAttribute>(Id, "present-value", Attributes::PresentValue::Id, credsIssuerConfig),                  // | 
|  | make_unique<ReadAttribute>(Id, "reliability", Attributes::Reliability::Id, credsIssuerConfig),                     // | 
|  | make_unique<ReadAttribute>(Id, "status-flags", Attributes::StatusFlags::Id, credsIssuerConfig),                    // | 
|  | make_unique<ReadAttribute>(Id, "application-type", Attributes::ApplicationType::Id, credsIssuerConfig),            // | 
|  | make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              // | 
|  | make_unique<WriteAttribute<chip::CharSpan>>(Id, "active-text", Attributes::ActiveText::Id, WriteCommandType::kWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::CharSpan>>(Id, "description", Attributes::Description::Id, WriteCommandType::kWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::CharSpan>>(Id, "inactive-text", Attributes::InactiveText::Id, WriteCommandType::kWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<bool>>(Id, "out-of-service", 0, 1, Attributes::OutOfService::Id, WriteCommandType::kWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "polarity", 0, UINT8_MAX, Attributes::Polarity::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<bool>>(Id, "present-value", 0, 1, Attributes::PresentValue::Id, WriteCommandType::kWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "reliability", 0, UINT8_MAX, Attributes::Reliability::Id, WriteCommandType::kWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "status-flags", 0, UINT8_MAX, Attributes::StatusFlags::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "application-type", 0, UINT32_MAX, Attributes::ApplicationType::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>( | 
|  | Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>( | 
|  | Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig),                                // | 
|  | make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<SubscribeAttribute>(Id, "active-text", Attributes::ActiveText::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "description", Attributes::Description::Id, credsIssuerConfig),                     // | 
|  | make_unique<SubscribeAttribute>(Id, "inactive-text", Attributes::InactiveText::Id, credsIssuerConfig),                  // | 
|  | make_unique<SubscribeAttribute>(Id, "out-of-service", Attributes::OutOfService::Id, credsIssuerConfig),                 // | 
|  | make_unique<SubscribeAttribute>(Id, "polarity", Attributes::Polarity::Id, credsIssuerConfig),                           // | 
|  | make_unique<SubscribeAttribute>(Id, "present-value", Attributes::PresentValue::Id, credsIssuerConfig),                  // | 
|  | make_unique<SubscribeAttribute>(Id, "reliability", Attributes::Reliability::Id, credsIssuerConfig),                     // | 
|  | make_unique<SubscribeAttribute>(Id, "status-flags", Attributes::StatusFlags::Id, credsIssuerConfig),                    // | 
|  | make_unique<SubscribeAttribute>(Id, "application-type", Attributes::ApplicationType::Id, credsIssuerConfig),            // | 
|  | make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | // | 
|  | // Events | 
|  | // | 
|  | make_unique<ReadEvent>(Id, credsIssuerConfig),      // | 
|  | make_unique<SubscribeEvent>(Id, credsIssuerConfig), // | 
|  | }; | 
|  |  | 
|  | commands.Register(clusterName, clusterCommands); | 
|  | } | 
|  | void registerClusterPulseWidthModulation(Commands & commands, CredentialIssuerCommands * credsIssuerConfig) | 
|  | { | 
|  | using namespace chip::app::Clusters::PulseWidthModulation; | 
|  |  | 
|  | const char * clusterName = "PulseWidthModulation"; | 
|  |  | 
|  | commands_list clusterCommands = { | 
|  | // | 
|  | // Commands | 
|  | // | 
|  | make_unique<ClusterCommand>(Id, credsIssuerConfig), // | 
|  | // | 
|  | // Attributes | 
|  | // | 
|  | make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>( | 
|  | Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>( | 
|  | Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig),                                // | 
|  | make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | // | 
|  | // Events | 
|  | // | 
|  | make_unique<ReadEvent>(Id, credsIssuerConfig),      // | 
|  | make_unique<SubscribeEvent>(Id, credsIssuerConfig), // | 
|  | }; | 
|  |  | 
|  | commands.Register(clusterName, clusterCommands); | 
|  | } | 
|  | void registerClusterDescriptor(Commands & commands, CredentialIssuerCommands * credsIssuerConfig) | 
|  | { | 
|  | using namespace chip::app::Clusters::Descriptor; | 
|  |  | 
|  | const char * clusterName = "Descriptor"; | 
|  |  | 
|  | commands_list clusterCommands = { | 
|  | // | 
|  | // Commands | 
|  | // | 
|  | make_unique<ClusterCommand>(Id, credsIssuerConfig), // | 
|  | // | 
|  | // Attributes | 
|  | // | 
|  | make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<ReadAttribute>(Id, "device-type-list", Attributes::DeviceTypeList::Id, credsIssuerConfig),             // | 
|  | make_unique<ReadAttribute>(Id, "server-list", Attributes::ServerList::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "client-list", Attributes::ClientList::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "parts-list", Attributes::PartsList::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              // | 
|  | make_unique<WriteAttributeAsComplex< | 
|  | chip::app::DataModel::List<const chip::app::Clusters::Descriptor::Structs::DeviceTypeStruct::Type>>>( | 
|  | Id, "device-type-list", Attributes::DeviceTypeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::ClusterId>>>( | 
|  | Id, "server-list", Attributes::ServerList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::ClusterId>>>( | 
|  | Id, "client-list", Attributes::ClientList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EndpointId>>>( | 
|  | Id, "parts-list", Attributes::PartsList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>( | 
|  | Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>( | 
|  | Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig),                                // | 
|  | make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<SubscribeAttribute>(Id, "device-type-list", Attributes::DeviceTypeList::Id, credsIssuerConfig),             // | 
|  | make_unique<SubscribeAttribute>(Id, "server-list", Attributes::ServerList::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "client-list", Attributes::ClientList::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "parts-list", Attributes::PartsList::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | // | 
|  | // Events | 
|  | // | 
|  | make_unique<ReadEvent>(Id, credsIssuerConfig),      // | 
|  | make_unique<SubscribeEvent>(Id, credsIssuerConfig), // | 
|  | }; | 
|  |  | 
|  | commands.Register(clusterName, clusterCommands); | 
|  | } | 
|  | void registerClusterBinding(Commands & commands, CredentialIssuerCommands * credsIssuerConfig) | 
|  | { | 
|  | using namespace chip::app::Clusters::Binding; | 
|  |  | 
|  | const char * clusterName = "Binding"; | 
|  |  | 
|  | commands_list clusterCommands = { | 
|  | // | 
|  | // Commands | 
|  | // | 
|  | make_unique<ClusterCommand>(Id, credsIssuerConfig), // | 
|  | // | 
|  | // Attributes | 
|  | // | 
|  | make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<ReadAttribute>(Id, "binding", Attributes::Binding::Id, credsIssuerConfig),                             // | 
|  | make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              // | 
|  | make_unique< | 
|  | WriteAttributeAsComplex<chip::app::DataModel::List<const chip::app::Clusters::Binding::Structs::TargetStruct::Type>>>( | 
|  | Id, "binding", Attributes::Binding::Id, WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>( | 
|  | Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>( | 
|  | Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig),                                // | 
|  | make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<SubscribeAttribute>(Id, "binding", Attributes::Binding::Id, credsIssuerConfig),                             // | 
|  | make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | // | 
|  | // Events | 
|  | // | 
|  | make_unique<ReadEvent>(Id, credsIssuerConfig),      // | 
|  | make_unique<SubscribeEvent>(Id, credsIssuerConfig), // | 
|  | }; | 
|  |  | 
|  | commands.Register(clusterName, clusterCommands); | 
|  | } | 
|  | void registerClusterAccessControl(Commands & commands, CredentialIssuerCommands * credsIssuerConfig) | 
|  | { | 
|  | using namespace chip::app::Clusters::AccessControl; | 
|  |  | 
|  | const char * clusterName = "AccessControl"; | 
|  |  | 
|  | commands_list clusterCommands = { | 
|  | // | 
|  | // Commands | 
|  | // | 
|  | make_unique<ClusterCommand>(Id, credsIssuerConfig), // | 
|  | // | 
|  | // Attributes | 
|  | // | 
|  | make_unique<ReadAttribute>(Id, credsIssuerConfig),                                         // | 
|  | make_unique<ReadAttribute>(Id, "acl", Attributes::Acl::Id, credsIssuerConfig),             // | 
|  | make_unique<ReadAttribute>(Id, "extension", Attributes::Extension::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "subjects-per-access-control-entry", Attributes::SubjectsPerAccessControlEntry::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "targets-per-access-control-entry", Attributes::TargetsPerAccessControlEntry::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "access-control-entries-per-fabric", Attributes::AccessControlEntriesPerFabric::Id, | 
|  | credsIssuerConfig),                                                                     // | 
|  | make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              // | 
|  | make_unique<WriteAttributeAsComplex< | 
|  | chip::app::DataModel::List<const chip::app::Clusters::AccessControl::Structs::AccessControlEntryStruct::Type>>>( | 
|  | Id, "acl", Attributes::Acl::Id, WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex< | 
|  | chip::app::DataModel::List<const chip::app::Clusters::AccessControl::Structs::AccessControlExtensionStruct::Type>>>( | 
|  | Id, "extension", Attributes::Extension::Id, WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "subjects-per-access-control-entry", 0, UINT16_MAX, | 
|  | Attributes::SubjectsPerAccessControlEntry::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "targets-per-access-control-entry", 0, UINT16_MAX, | 
|  | Attributes::TargetsPerAccessControlEntry::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "access-control-entries-per-fabric", 0, UINT16_MAX, | 
|  | Attributes::AccessControlEntriesPerFabric::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>( | 
|  | Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>( | 
|  | Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig),        // | 
|  | make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                         // | 
|  | make_unique<SubscribeAttribute>(Id, "acl", Attributes::Acl::Id, credsIssuerConfig),             // | 
|  | make_unique<SubscribeAttribute>(Id, "extension", Attributes::Extension::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "subjects-per-access-control-entry", Attributes::SubjectsPerAccessControlEntry::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "targets-per-access-control-entry", Attributes::TargetsPerAccessControlEntry::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "access-control-entries-per-fabric", Attributes::AccessControlEntriesPerFabric::Id, | 
|  | credsIssuerConfig),                                                                     // | 
|  | make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | // | 
|  | // Events | 
|  | // | 
|  | make_unique<ReadEvent>(Id, credsIssuerConfig),                                                                        // | 
|  | make_unique<ReadEvent>(Id, "access-control-entry-changed", Events::AccessControlEntryChanged::Id, credsIssuerConfig), // | 
|  | make_unique<ReadEvent>(Id, "access-control-extension-changed", Events::AccessControlExtensionChanged::Id, | 
|  | credsIssuerConfig),          // | 
|  | make_unique<SubscribeEvent>(Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeEvent>(Id, "access-control-entry-changed", Events::AccessControlEntryChanged::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<SubscribeEvent>(Id, "access-control-extension-changed", Events::AccessControlExtensionChanged::Id, | 
|  | credsIssuerConfig), // | 
|  | }; | 
|  |  | 
|  | commands.Register(clusterName, clusterCommands); | 
|  | } | 
|  | void registerClusterActions(Commands & commands, CredentialIssuerCommands * credsIssuerConfig) | 
|  | { | 
|  | using namespace chip::app::Clusters::Actions; | 
|  |  | 
|  | const char * clusterName = "Actions"; | 
|  |  | 
|  | commands_list clusterCommands = { | 
|  | // | 
|  | // Commands | 
|  | // | 
|  | make_unique<ClusterCommand>(Id, credsIssuerConfig),                 // | 
|  | make_unique<ActionsInstantAction>(credsIssuerConfig),               // | 
|  | make_unique<ActionsInstantActionWithTransition>(credsIssuerConfig), // | 
|  | make_unique<ActionsStartAction>(credsIssuerConfig),                 // | 
|  | make_unique<ActionsStartActionWithDuration>(credsIssuerConfig),     // | 
|  | make_unique<ActionsStopAction>(credsIssuerConfig),                  // | 
|  | make_unique<ActionsPauseAction>(credsIssuerConfig),                 // | 
|  | make_unique<ActionsPauseActionWithDuration>(credsIssuerConfig),     // | 
|  | make_unique<ActionsResumeAction>(credsIssuerConfig),                // | 
|  | make_unique<ActionsEnableAction>(credsIssuerConfig),                // | 
|  | make_unique<ActionsEnableActionWithDuration>(credsIssuerConfig),    // | 
|  | make_unique<ActionsDisableAction>(credsIssuerConfig),               // | 
|  | make_unique<ActionsDisableActionWithDuration>(credsIssuerConfig),   // | 
|  | // | 
|  | // Attributes | 
|  | // | 
|  | make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<ReadAttribute>(Id, "action-list", Attributes::ActionList::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "endpoint-lists", Attributes::EndpointLists::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "setup-url", Attributes::SetupURL::Id, credsIssuerConfig),                          // | 
|  | make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              // | 
|  | make_unique< | 
|  | WriteAttributeAsComplex<chip::app::DataModel::List<const chip::app::Clusters::Actions::Structs::ActionStruct::Type>>>( | 
|  | Id, "action-list", Attributes::ActionList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex< | 
|  | chip::app::DataModel::List<const chip::app::Clusters::Actions::Structs::EndpointListStruct::Type>>>( | 
|  | Id, "endpoint-lists", Attributes::EndpointLists::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::CharSpan>>(Id, "setup-url", Attributes::SetupURL::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>( | 
|  | Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>( | 
|  | Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig),                                // | 
|  | make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<SubscribeAttribute>(Id, "action-list", Attributes::ActionList::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "endpoint-lists", Attributes::EndpointLists::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "setup-url", Attributes::SetupURL::Id, credsIssuerConfig),                          // | 
|  | make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | // | 
|  | // Events | 
|  | // | 
|  | make_unique<ReadEvent>(Id, credsIssuerConfig),                                                 // | 
|  | make_unique<ReadEvent>(Id, "state-changed", Events::StateChanged::Id, credsIssuerConfig),      // | 
|  | make_unique<ReadEvent>(Id, "action-failed", Events::ActionFailed::Id, credsIssuerConfig),      // | 
|  | make_unique<SubscribeEvent>(Id, credsIssuerConfig),                                            // | 
|  | make_unique<SubscribeEvent>(Id, "state-changed", Events::StateChanged::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeEvent>(Id, "action-failed", Events::ActionFailed::Id, credsIssuerConfig), // | 
|  | }; | 
|  |  | 
|  | commands.Register(clusterName, clusterCommands); | 
|  | } | 
|  | void registerClusterBasicInformation(Commands & commands, CredentialIssuerCommands * credsIssuerConfig) | 
|  | { | 
|  | using namespace chip::app::Clusters::BasicInformation; | 
|  |  | 
|  | const char * clusterName = "BasicInformation"; | 
|  |  | 
|  | commands_list clusterCommands = { | 
|  | // | 
|  | // Commands | 
|  | // | 
|  | make_unique<ClusterCommand>(Id, credsIssuerConfig),              // | 
|  | make_unique<BasicInformationMfgSpecificPing>(credsIssuerConfig), // | 
|  | // | 
|  | // Attributes | 
|  | // | 
|  | make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                   // | 
|  | make_unique<ReadAttribute>(Id, "data-model-revision", Attributes::DataModelRevision::Id, credsIssuerConfig),         // | 
|  | make_unique<ReadAttribute>(Id, "vendor-name", Attributes::VendorName::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "vendor-id", Attributes::VendorID::Id, credsIssuerConfig),                            // | 
|  | make_unique<ReadAttribute>(Id, "product-name", Attributes::ProductName::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "product-id", Attributes::ProductID::Id, credsIssuerConfig),                          // | 
|  | make_unique<ReadAttribute>(Id, "node-label", Attributes::NodeLabel::Id, credsIssuerConfig),                          // | 
|  | make_unique<ReadAttribute>(Id, "location", Attributes::Location::Id, credsIssuerConfig),                             // | 
|  | make_unique<ReadAttribute>(Id, "hardware-version", Attributes::HardwareVersion::Id, credsIssuerConfig),              // | 
|  | make_unique<ReadAttribute>(Id, "hardware-version-string", Attributes::HardwareVersionString::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "software-version", Attributes::SoftwareVersion::Id, credsIssuerConfig),              // | 
|  | make_unique<ReadAttribute>(Id, "software-version-string", Attributes::SoftwareVersionString::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "manufacturing-date", Attributes::ManufacturingDate::Id, credsIssuerConfig),          // | 
|  | make_unique<ReadAttribute>(Id, "part-number", Attributes::PartNumber::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "product-url", Attributes::ProductURL::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "product-label", Attributes::ProductLabel::Id, credsIssuerConfig),                    // | 
|  | make_unique<ReadAttribute>(Id, "serial-number", Attributes::SerialNumber::Id, credsIssuerConfig),                    // | 
|  | make_unique<ReadAttribute>(Id, "local-config-disabled", Attributes::LocalConfigDisabled::Id, credsIssuerConfig),     // | 
|  | make_unique<ReadAttribute>(Id, "reachable", Attributes::Reachable::Id, credsIssuerConfig),                           // | 
|  | make_unique<ReadAttribute>(Id, "unique-id", Attributes::UniqueID::Id, credsIssuerConfig),                            // | 
|  | make_unique<ReadAttribute>(Id, "capability-minima", Attributes::CapabilityMinima::Id, credsIssuerConfig),            // | 
|  | make_unique<ReadAttribute>(Id, "product-appearance", Attributes::ProductAppearance::Id, credsIssuerConfig),          // | 
|  | make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),     // | 
|  | make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                          // | 
|  | make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                  // | 
|  | make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),              // | 
|  | make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                                // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "data-model-revision", 0, UINT16_MAX, Attributes::DataModelRevision::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::CharSpan>>(Id, "vendor-name", Attributes::VendorName::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::VendorId>>(Id, "vendor-id", 0, UINT16_MAX, Attributes::VendorID::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::CharSpan>>(Id, "product-name", Attributes::ProductName::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "product-id", 0, UINT16_MAX, Attributes::ProductID::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::CharSpan>>(Id, "node-label", Attributes::NodeLabel::Id, WriteCommandType::kWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::CharSpan>>(Id, "location", Attributes::Location::Id, WriteCommandType::kWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "hardware-version", 0, UINT16_MAX, Attributes::HardwareVersion::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::CharSpan>>(Id, "hardware-version-string", Attributes::HardwareVersionString::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "software-version", 0, UINT32_MAX, Attributes::SoftwareVersion::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::CharSpan>>(Id, "software-version-string", Attributes::SoftwareVersionString::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::CharSpan>>(Id, "manufacturing-date", Attributes::ManufacturingDate::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::CharSpan>>(Id, "part-number", Attributes::PartNumber::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::CharSpan>>(Id, "product-url", Attributes::ProductURL::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::CharSpan>>(Id, "product-label", Attributes::ProductLabel::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::CharSpan>>(Id, "serial-number", Attributes::SerialNumber::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<bool>>(Id, "local-config-disabled", 0, 1, Attributes::LocalConfigDisabled::Id, | 
|  | WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<bool>>(Id, "reachable", 0, 1, Attributes::Reachable::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::CharSpan>>(Id, "unique-id", Attributes::UniqueID::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::Clusters::BasicInformation::Structs::CapabilityMinimaStruct::Type>>( | 
|  | Id, "capability-minima", Attributes::CapabilityMinima::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::Clusters::BasicInformation::Structs::ProductAppearanceStruct::Type>>( | 
|  | Id, "product-appearance", Attributes::ProductAppearance::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>( | 
|  | Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>( | 
|  | Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig),                                  // | 
|  | make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                                   // | 
|  | make_unique<SubscribeAttribute>(Id, "data-model-revision", Attributes::DataModelRevision::Id, credsIssuerConfig),         // | 
|  | make_unique<SubscribeAttribute>(Id, "vendor-name", Attributes::VendorName::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "vendor-id", Attributes::VendorID::Id, credsIssuerConfig),                            // | 
|  | make_unique<SubscribeAttribute>(Id, "product-name", Attributes::ProductName::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "product-id", Attributes::ProductID::Id, credsIssuerConfig),                          // | 
|  | make_unique<SubscribeAttribute>(Id, "node-label", Attributes::NodeLabel::Id, credsIssuerConfig),                          // | 
|  | make_unique<SubscribeAttribute>(Id, "location", Attributes::Location::Id, credsIssuerConfig),                             // | 
|  | make_unique<SubscribeAttribute>(Id, "hardware-version", Attributes::HardwareVersion::Id, credsIssuerConfig),              // | 
|  | make_unique<SubscribeAttribute>(Id, "hardware-version-string", Attributes::HardwareVersionString::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "software-version", Attributes::SoftwareVersion::Id, credsIssuerConfig),              // | 
|  | make_unique<SubscribeAttribute>(Id, "software-version-string", Attributes::SoftwareVersionString::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "manufacturing-date", Attributes::ManufacturingDate::Id, credsIssuerConfig),          // | 
|  | make_unique<SubscribeAttribute>(Id, "part-number", Attributes::PartNumber::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "product-url", Attributes::ProductURL::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "product-label", Attributes::ProductLabel::Id, credsIssuerConfig),                    // | 
|  | make_unique<SubscribeAttribute>(Id, "serial-number", Attributes::SerialNumber::Id, credsIssuerConfig),                    // | 
|  | make_unique<SubscribeAttribute>(Id, "local-config-disabled", Attributes::LocalConfigDisabled::Id, credsIssuerConfig),     // | 
|  | make_unique<SubscribeAttribute>(Id, "reachable", Attributes::Reachable::Id, credsIssuerConfig),                           // | 
|  | make_unique<SubscribeAttribute>(Id, "unique-id", Attributes::UniqueID::Id, credsIssuerConfig),                            // | 
|  | make_unique<SubscribeAttribute>(Id, "capability-minima", Attributes::CapabilityMinima::Id, credsIssuerConfig),            // | 
|  | make_unique<SubscribeAttribute>(Id, "product-appearance", Attributes::ProductAppearance::Id, credsIssuerConfig),          // | 
|  | make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),     // | 
|  | make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                          // | 
|  | make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                  // | 
|  | make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),              // | 
|  | // | 
|  | // Events | 
|  | // | 
|  | make_unique<ReadEvent>(Id, credsIssuerConfig),                                                         // | 
|  | make_unique<ReadEvent>(Id, "start-up", Events::StartUp::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadEvent>(Id, "shut-down", Events::ShutDown::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadEvent>(Id, "leave", Events::Leave::Id, credsIssuerConfig),                             // | 
|  | make_unique<ReadEvent>(Id, "reachable-changed", Events::ReachableChanged::Id, credsIssuerConfig),      // | 
|  | make_unique<SubscribeEvent>(Id, credsIssuerConfig),                                                    // | 
|  | make_unique<SubscribeEvent>(Id, "start-up", Events::StartUp::Id, credsIssuerConfig),                   // | 
|  | make_unique<SubscribeEvent>(Id, "shut-down", Events::ShutDown::Id, credsIssuerConfig),                 // | 
|  | make_unique<SubscribeEvent>(Id, "leave", Events::Leave::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeEvent>(Id, "reachable-changed", Events::ReachableChanged::Id, credsIssuerConfig), // | 
|  | }; | 
|  |  | 
|  | commands.Register(clusterName, clusterCommands); | 
|  | } | 
|  | void registerClusterOtaSoftwareUpdateProvider(Commands & commands, CredentialIssuerCommands * credsIssuerConfig) | 
|  | { | 
|  | using namespace chip::app::Clusters::OtaSoftwareUpdateProvider; | 
|  |  | 
|  | const char * clusterName = "OtaSoftwareUpdateProvider"; | 
|  |  | 
|  | commands_list clusterCommands = { | 
|  | // | 
|  | // Commands | 
|  | // | 
|  | make_unique<ClusterCommand>(Id, credsIssuerConfig),                           // | 
|  | make_unique<OtaSoftwareUpdateProviderQueryImage>(credsIssuerConfig),          // | 
|  | make_unique<OtaSoftwareUpdateProviderApplyUpdateRequest>(credsIssuerConfig),  // | 
|  | make_unique<OtaSoftwareUpdateProviderNotifyUpdateApplied>(credsIssuerConfig), // | 
|  | // | 
|  | // Attributes | 
|  | // | 
|  | make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>( | 
|  | Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>( | 
|  | Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig),                                // | 
|  | make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | // | 
|  | // Events | 
|  | // | 
|  | make_unique<ReadEvent>(Id, credsIssuerConfig),      // | 
|  | make_unique<SubscribeEvent>(Id, credsIssuerConfig), // | 
|  | }; | 
|  |  | 
|  | commands.Register(clusterName, clusterCommands); | 
|  | } | 
|  | void registerClusterOtaSoftwareUpdateRequestor(Commands & commands, CredentialIssuerCommands * credsIssuerConfig) | 
|  | { | 
|  | using namespace chip::app::Clusters::OtaSoftwareUpdateRequestor; | 
|  |  | 
|  | const char * clusterName = "OtaSoftwareUpdateRequestor"; | 
|  |  | 
|  | commands_list clusterCommands = { | 
|  | // | 
|  | // Commands | 
|  | // | 
|  | make_unique<ClusterCommand>(Id, credsIssuerConfig),                            // | 
|  | make_unique<OtaSoftwareUpdateRequestorAnnounceOTAProvider>(credsIssuerConfig), // | 
|  | // | 
|  | // Attributes | 
|  | // | 
|  | make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<ReadAttribute>(Id, "default-otaproviders", Attributes::DefaultOTAProviders::Id, credsIssuerConfig),    // | 
|  | make_unique<ReadAttribute>(Id, "update-possible", Attributes::UpdatePossible::Id, credsIssuerConfig),              // | 
|  | make_unique<ReadAttribute>(Id, "update-state", Attributes::UpdateState::Id, credsIssuerConfig),                    // | 
|  | make_unique<ReadAttribute>(Id, "update-state-progress", Attributes::UpdateStateProgress::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              // | 
|  | make_unique<WriteAttributeAsComplex< | 
|  | chip::app::DataModel::List<const chip::app::Clusters::OtaSoftwareUpdateRequestor::Structs::ProviderLocation::Type>>>( | 
|  | Id, "default-otaproviders", Attributes::DefaultOTAProviders::Id, WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<bool>>(Id, "update-possible", 0, 1, Attributes::UpdatePossible::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::Clusters::OtaSoftwareUpdateRequestor::OTAUpdateStateEnum>>( | 
|  | Id, "update-state", 0, UINT8_MAX, Attributes::UpdateState::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint8_t>>>(Id, "update-state-progress", 0, UINT8_MAX, | 
|  | Attributes::UpdateStateProgress::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>( | 
|  | Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>( | 
|  | Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig),                                // | 
|  | make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<SubscribeAttribute>(Id, "default-otaproviders", Attributes::DefaultOTAProviders::Id, credsIssuerConfig),    // | 
|  | make_unique<SubscribeAttribute>(Id, "update-possible", Attributes::UpdatePossible::Id, credsIssuerConfig),              // | 
|  | make_unique<SubscribeAttribute>(Id, "update-state", Attributes::UpdateState::Id, credsIssuerConfig),                    // | 
|  | make_unique<SubscribeAttribute>(Id, "update-state-progress", Attributes::UpdateStateProgress::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | // | 
|  | // Events | 
|  | // | 
|  | make_unique<ReadEvent>(Id, credsIssuerConfig),                                                       // | 
|  | make_unique<ReadEvent>(Id, "state-transition", Events::StateTransition::Id, credsIssuerConfig),      // | 
|  | make_unique<ReadEvent>(Id, "version-applied", Events::VersionApplied::Id, credsIssuerConfig),        // | 
|  | make_unique<ReadEvent>(Id, "download-error", Events::DownloadError::Id, credsIssuerConfig),          // | 
|  | make_unique<SubscribeEvent>(Id, credsIssuerConfig),                                                  // | 
|  | make_unique<SubscribeEvent>(Id, "state-transition", Events::StateTransition::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeEvent>(Id, "version-applied", Events::VersionApplied::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeEvent>(Id, "download-error", Events::DownloadError::Id, credsIssuerConfig),     // | 
|  | }; | 
|  |  | 
|  | commands.Register(clusterName, clusterCommands); | 
|  | } | 
|  | void registerClusterLocalizationConfiguration(Commands & commands, CredentialIssuerCommands * credsIssuerConfig) | 
|  | { | 
|  | using namespace chip::app::Clusters::LocalizationConfiguration; | 
|  |  | 
|  | const char * clusterName = "LocalizationConfiguration"; | 
|  |  | 
|  | commands_list clusterCommands = { | 
|  | // | 
|  | // Commands | 
|  | // | 
|  | make_unique<ClusterCommand>(Id, credsIssuerConfig), // | 
|  | // | 
|  | // Attributes | 
|  | // | 
|  | make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<ReadAttribute>(Id, "active-locale", Attributes::ActiveLocale::Id, credsIssuerConfig),                  // | 
|  | make_unique<ReadAttribute>(Id, "supported-locales", Attributes::SupportedLocales::Id, credsIssuerConfig),          // | 
|  | make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              // | 
|  | make_unique<WriteAttribute<chip::CharSpan>>(Id, "active-locale", Attributes::ActiveLocale::Id, WriteCommandType::kWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CharSpan>>>( | 
|  | Id, "supported-locales", Attributes::SupportedLocales::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>( | 
|  | Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>( | 
|  | Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig),                                // | 
|  | make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<SubscribeAttribute>(Id, "active-locale", Attributes::ActiveLocale::Id, credsIssuerConfig),                  // | 
|  | make_unique<SubscribeAttribute>(Id, "supported-locales", Attributes::SupportedLocales::Id, credsIssuerConfig),          // | 
|  | make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | // | 
|  | // Events | 
|  | // | 
|  | make_unique<ReadEvent>(Id, credsIssuerConfig),      // | 
|  | make_unique<SubscribeEvent>(Id, credsIssuerConfig), // | 
|  | }; | 
|  |  | 
|  | commands.Register(clusterName, clusterCommands); | 
|  | } | 
|  | void registerClusterTimeFormatLocalization(Commands & commands, CredentialIssuerCommands * credsIssuerConfig) | 
|  | { | 
|  | using namespace chip::app::Clusters::TimeFormatLocalization; | 
|  |  | 
|  | const char * clusterName = "TimeFormatLocalization"; | 
|  |  | 
|  | commands_list clusterCommands = { | 
|  | // | 
|  | // Commands | 
|  | // | 
|  | make_unique<ClusterCommand>(Id, credsIssuerConfig), // | 
|  | // | 
|  | // Attributes | 
|  | // | 
|  | make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                     // | 
|  | make_unique<ReadAttribute>(Id, "hour-format", Attributes::HourFormat::Id, credsIssuerConfig),                          // | 
|  | make_unique<ReadAttribute>(Id, "active-calendar-type", Attributes::ActiveCalendarType::Id, credsIssuerConfig),         // | 
|  | make_unique<ReadAttribute>(Id, "supported-calendar-types", Attributes::SupportedCalendarTypes::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig),     // | 
|  | make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),       // | 
|  | make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                            // | 
|  | make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                    // | 
|  | make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                          // | 
|  | make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),                // | 
|  | make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                                  // | 
|  | make_unique<WriteAttribute<chip::app::Clusters::TimeFormatLocalization::HourFormatEnum>>( | 
|  | Id, "hour-format", 0, UINT8_MAX, Attributes::HourFormat::Id, WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::Clusters::TimeFormatLocalization::CalendarTypeEnum>>( | 
|  | Id, "active-calendar-type", 0, UINT8_MAX, Attributes::ActiveCalendarType::Id, WriteCommandType::kWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex< | 
|  | chip::app::DataModel::List<const chip::app::Clusters::TimeFormatLocalization::CalendarTypeEnum>>>( | 
|  | Id, "supported-calendar-types", Attributes::SupportedCalendarTypes::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>( | 
|  | Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>( | 
|  | Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig),                            // | 
|  | make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                             // | 
|  | make_unique<SubscribeAttribute>(Id, "hour-format", Attributes::HourFormat::Id, credsIssuerConfig),                  // | 
|  | make_unique<SubscribeAttribute>(Id, "active-calendar-type", Attributes::ActiveCalendarType::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "supported-calendar-types", Attributes::SupportedCalendarTypes::Id, | 
|  | credsIssuerConfig),                                                                     // | 
|  | make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | // | 
|  | // Events | 
|  | // | 
|  | make_unique<ReadEvent>(Id, credsIssuerConfig),      // | 
|  | make_unique<SubscribeEvent>(Id, credsIssuerConfig), // | 
|  | }; | 
|  |  | 
|  | commands.Register(clusterName, clusterCommands); | 
|  | } | 
|  | void registerClusterUnitLocalization(Commands & commands, CredentialIssuerCommands * credsIssuerConfig) | 
|  | { | 
|  | using namespace chip::app::Clusters::UnitLocalization; | 
|  |  | 
|  | const char * clusterName = "UnitLocalization"; | 
|  |  | 
|  | commands_list clusterCommands = { | 
|  | // | 
|  | // Commands | 
|  | // | 
|  | make_unique<ClusterCommand>(Id, credsIssuerConfig), // | 
|  | // | 
|  | // Attributes | 
|  | // | 
|  | make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<ReadAttribute>(Id, "temperature-unit", Attributes::TemperatureUnit::Id, credsIssuerConfig),            // | 
|  | make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              // | 
|  | make_unique<WriteAttribute<chip::app::Clusters::UnitLocalization::TempUnitEnum>>( | 
|  | Id, "temperature-unit", 0, UINT8_MAX, Attributes::TemperatureUnit::Id, WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>( | 
|  | Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>( | 
|  | Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig),                                // | 
|  | make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<SubscribeAttribute>(Id, "temperature-unit", Attributes::TemperatureUnit::Id, credsIssuerConfig),            // | 
|  | make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | // | 
|  | // Events | 
|  | // | 
|  | make_unique<ReadEvent>(Id, credsIssuerConfig),      // | 
|  | make_unique<SubscribeEvent>(Id, credsIssuerConfig), // | 
|  | }; | 
|  |  | 
|  | commands.Register(clusterName, clusterCommands); | 
|  | } | 
|  | void registerClusterPowerSourceConfiguration(Commands & commands, CredentialIssuerCommands * credsIssuerConfig) | 
|  | { | 
|  | using namespace chip::app::Clusters::PowerSourceConfiguration; | 
|  |  | 
|  | const char * clusterName = "PowerSourceConfiguration"; | 
|  |  | 
|  | commands_list clusterCommands = { | 
|  | // | 
|  | // Commands | 
|  | // | 
|  | make_unique<ClusterCommand>(Id, credsIssuerConfig), // | 
|  | // | 
|  | // Attributes | 
|  | // | 
|  | make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<ReadAttribute>(Id, "sources", Attributes::Sources::Id, credsIssuerConfig),                             // | 
|  | make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const uint8_t>>>( | 
|  | Id, "sources", Attributes::Sources::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>( | 
|  | Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>( | 
|  | Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig),                                // | 
|  | make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<SubscribeAttribute>(Id, "sources", Attributes::Sources::Id, credsIssuerConfig),                             // | 
|  | make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | // | 
|  | // Events | 
|  | // | 
|  | make_unique<ReadEvent>(Id, credsIssuerConfig),      // | 
|  | make_unique<SubscribeEvent>(Id, credsIssuerConfig), // | 
|  | }; | 
|  |  | 
|  | commands.Register(clusterName, clusterCommands); | 
|  | } | 
|  | void registerClusterPowerSource(Commands & commands, CredentialIssuerCommands * credsIssuerConfig) | 
|  | { | 
|  | using namespace chip::app::Clusters::PowerSource; | 
|  |  | 
|  | const char * clusterName = "PowerSource"; | 
|  |  | 
|  | commands_list clusterCommands = { | 
|  | // | 
|  | // Commands | 
|  | // | 
|  | make_unique<ClusterCommand>(Id, credsIssuerConfig), // | 
|  | // | 
|  | // Attributes | 
|  | // | 
|  | make_unique<ReadAttribute>(Id, credsIssuerConfig),                                             // | 
|  | make_unique<ReadAttribute>(Id, "status", Attributes::Status::Id, credsIssuerConfig),           // | 
|  | make_unique<ReadAttribute>(Id, "order", Attributes::Order::Id, credsIssuerConfig),             // | 
|  | make_unique<ReadAttribute>(Id, "description", Attributes::Description::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "wired-assessed-input-voltage", Attributes::WiredAssessedInputVoltage::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "wired-assessed-input-frequency", Attributes::WiredAssessedInputFrequency::Id, | 
|  | credsIssuerConfig),                                                                     // | 
|  | make_unique<ReadAttribute>(Id, "wired-current-type", Attributes::WiredCurrentType::Id, credsIssuerConfig),         // | 
|  | make_unique<ReadAttribute>(Id, "wired-assessed-current", Attributes::WiredAssessedCurrent::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "wired-nominal-voltage", Attributes::WiredNominalVoltage::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "wired-maximum-current", Attributes::WiredMaximumCurrent::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "wired-present", Attributes::WiredPresent::Id, credsIssuerConfig),                  // | 
|  | make_unique<ReadAttribute>(Id, "active-wired-faults", Attributes::ActiveWiredFaults::Id, credsIssuerConfig),       // | 
|  | make_unique<ReadAttribute>(Id, "bat-voltage", Attributes::BatVoltage::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "bat-percent-remaining", Attributes::BatPercentRemaining::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "bat-time-remaining", Attributes::BatTimeRemaining::Id, credsIssuerConfig),         // | 
|  | make_unique<ReadAttribute>(Id, "bat-charge-level", Attributes::BatChargeLevel::Id, credsIssuerConfig),             // | 
|  | make_unique<ReadAttribute>(Id, "bat-replacement-needed", Attributes::BatReplacementNeeded::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "bat-replaceability", Attributes::BatReplaceability::Id, credsIssuerConfig),        // | 
|  | make_unique<ReadAttribute>(Id, "bat-present", Attributes::BatPresent::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "active-bat-faults", Attributes::ActiveBatFaults::Id, credsIssuerConfig),           // | 
|  | make_unique<ReadAttribute>(Id, "bat-replacement-description", Attributes::BatReplacementDescription::Id, | 
|  | credsIssuerConfig),                                                                     // | 
|  | make_unique<ReadAttribute>(Id, "bat-common-designation", Attributes::BatCommonDesignation::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "bat-ansidesignation", Attributes::BatANSIDesignation::Id, credsIssuerConfig),      // | 
|  | make_unique<ReadAttribute>(Id, "bat-iecdesignation", Attributes::BatIECDesignation::Id, credsIssuerConfig),        // | 
|  | make_unique<ReadAttribute>(Id, "bat-approved-chemistry", Attributes::BatApprovedChemistry::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "bat-capacity", Attributes::BatCapacity::Id, credsIssuerConfig),                    // | 
|  | make_unique<ReadAttribute>(Id, "bat-quantity", Attributes::BatQuantity::Id, credsIssuerConfig),                    // | 
|  | make_unique<ReadAttribute>(Id, "bat-charge-state", Attributes::BatChargeState::Id, credsIssuerConfig),             // | 
|  | make_unique<ReadAttribute>(Id, "bat-time-to-full-charge", Attributes::BatTimeToFullCharge::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "bat-functional-while-charging", Attributes::BatFunctionalWhileCharging::Id, | 
|  | credsIssuerConfig),                                                                        // | 
|  | make_unique<ReadAttribute>(Id, "bat-charging-current", Attributes::BatChargingCurrent::Id, credsIssuerConfig),        // | 
|  | make_unique<ReadAttribute>(Id, "active-bat-charge-faults", Attributes::ActiveBatChargeFaults::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig),    // | 
|  | make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),      // | 
|  | make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                           // | 
|  | make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                   // | 
|  | make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                         // | 
|  | make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),               // | 
|  | make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<WriteAttribute<chip::app::Clusters::PowerSource::PowerSourceStatusEnum>>( | 
|  | Id, "status", 0, UINT8_MAX, Attributes::Status::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "order", 0, UINT8_MAX, Attributes::Order::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::CharSpan>>(Id, "description", Attributes::Description::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint32_t>>>(Id, "wired-assessed-input-voltage", 0, UINT32_MAX, | 
|  | Attributes::WiredAssessedInputVoltage::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint16_t>>>(Id, "wired-assessed-input-frequency", 0, UINT16_MAX, | 
|  | Attributes::WiredAssessedInputFrequency::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::Clusters::PowerSource::WiredCurrentTypeEnum>>( | 
|  | Id, "wired-current-type", 0, UINT8_MAX, Attributes::WiredCurrentType::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint32_t>>>(Id, "wired-assessed-current", 0, UINT32_MAX, | 
|  | Attributes::WiredAssessedCurrent::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "wired-nominal-voltage", 0, UINT32_MAX, Attributes::WiredNominalVoltage::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "wired-maximum-current", 0, UINT32_MAX, Attributes::WiredMaximumCurrent::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<bool>>(Id, "wired-present", 0, 1, Attributes::WiredPresent::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::app::Clusters::PowerSource::WiredFaultEnum>>>( | 
|  | Id, "active-wired-faults", Attributes::ActiveWiredFaults::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint32_t>>>( | 
|  | Id, "bat-voltage", 0, UINT32_MAX, Attributes::BatVoltage::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint8_t>>>(Id, "bat-percent-remaining", 0, UINT8_MAX, | 
|  | Attributes::BatPercentRemaining::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint32_t>>>(Id, "bat-time-remaining", 0, UINT32_MAX, | 
|  | Attributes::BatTimeRemaining::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::Clusters::PowerSource::BatChargeLevelEnum>>( | 
|  | Id, "bat-charge-level", 0, UINT8_MAX, Attributes::BatChargeLevel::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<bool>>(Id, "bat-replacement-needed", 0, 1, Attributes::BatReplacementNeeded::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::Clusters::PowerSource::BatReplaceabilityEnum>>( | 
|  | Id, "bat-replaceability", 0, UINT8_MAX, Attributes::BatReplaceability::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<bool>>(Id, "bat-present", 0, 1, Attributes::BatPresent::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::app::Clusters::PowerSource::BatFaultEnum>>>( | 
|  | Id, "active-bat-faults", Attributes::ActiveBatFaults::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::CharSpan>>(Id, "bat-replacement-description", Attributes::BatReplacementDescription::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::Clusters::PowerSource::BatCommonDesignationEnum>>( | 
|  | Id, "bat-common-designation", 0, UINT16_MAX, Attributes::BatCommonDesignation::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::CharSpan>>(Id, "bat-ansidesignation", Attributes::BatANSIDesignation::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::CharSpan>>(Id, "bat-iecdesignation", Attributes::BatIECDesignation::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::Clusters::PowerSource::BatApprovedChemistryEnum>>( | 
|  | Id, "bat-approved-chemistry", 0, UINT16_MAX, Attributes::BatApprovedChemistry::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "bat-capacity", 0, UINT32_MAX, Attributes::BatCapacity::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "bat-quantity", 0, UINT8_MAX, Attributes::BatQuantity::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::Clusters::PowerSource::BatChargeStateEnum>>( | 
|  | Id, "bat-charge-state", 0, UINT8_MAX, Attributes::BatChargeState::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint32_t>>>(Id, "bat-time-to-full-charge", 0, UINT32_MAX, | 
|  | Attributes::BatTimeToFullCharge::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<bool>>(Id, "bat-functional-while-charging", 0, 1, Attributes::BatFunctionalWhileCharging::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint32_t>>>(Id, "bat-charging-current", 0, UINT32_MAX, | 
|  | Attributes::BatChargingCurrent::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique< | 
|  | WriteAttributeAsComplex<chip::app::DataModel::List<const chip::app::Clusters::PowerSource::BatChargeFaultEnum>>>( | 
|  | Id, "active-bat-charge-faults", Attributes::ActiveBatChargeFaults::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>( | 
|  | Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>( | 
|  | Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig),            // | 
|  | make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                             // | 
|  | make_unique<SubscribeAttribute>(Id, "status", Attributes::Status::Id, credsIssuerConfig),           // | 
|  | make_unique<SubscribeAttribute>(Id, "order", Attributes::Order::Id, credsIssuerConfig),             // | 
|  | make_unique<SubscribeAttribute>(Id, "description", Attributes::Description::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "wired-assessed-input-voltage", Attributes::WiredAssessedInputVoltage::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "wired-assessed-input-frequency", Attributes::WiredAssessedInputFrequency::Id, | 
|  | credsIssuerConfig),                                                                     // | 
|  | make_unique<SubscribeAttribute>(Id, "wired-current-type", Attributes::WiredCurrentType::Id, credsIssuerConfig),         // | 
|  | make_unique<SubscribeAttribute>(Id, "wired-assessed-current", Attributes::WiredAssessedCurrent::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "wired-nominal-voltage", Attributes::WiredNominalVoltage::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "wired-maximum-current", Attributes::WiredMaximumCurrent::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "wired-present", Attributes::WiredPresent::Id, credsIssuerConfig),                  // | 
|  | make_unique<SubscribeAttribute>(Id, "active-wired-faults", Attributes::ActiveWiredFaults::Id, credsIssuerConfig),       // | 
|  | make_unique<SubscribeAttribute>(Id, "bat-voltage", Attributes::BatVoltage::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "bat-percent-remaining", Attributes::BatPercentRemaining::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "bat-time-remaining", Attributes::BatTimeRemaining::Id, credsIssuerConfig),         // | 
|  | make_unique<SubscribeAttribute>(Id, "bat-charge-level", Attributes::BatChargeLevel::Id, credsIssuerConfig),             // | 
|  | make_unique<SubscribeAttribute>(Id, "bat-replacement-needed", Attributes::BatReplacementNeeded::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "bat-replaceability", Attributes::BatReplaceability::Id, credsIssuerConfig),        // | 
|  | make_unique<SubscribeAttribute>(Id, "bat-present", Attributes::BatPresent::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "active-bat-faults", Attributes::ActiveBatFaults::Id, credsIssuerConfig),           // | 
|  | make_unique<SubscribeAttribute>(Id, "bat-replacement-description", Attributes::BatReplacementDescription::Id, | 
|  | credsIssuerConfig),                                                                     // | 
|  | make_unique<SubscribeAttribute>(Id, "bat-common-designation", Attributes::BatCommonDesignation::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "bat-ansidesignation", Attributes::BatANSIDesignation::Id, credsIssuerConfig),      // | 
|  | make_unique<SubscribeAttribute>(Id, "bat-iecdesignation", Attributes::BatIECDesignation::Id, credsIssuerConfig),        // | 
|  | make_unique<SubscribeAttribute>(Id, "bat-approved-chemistry", Attributes::BatApprovedChemistry::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "bat-capacity", Attributes::BatCapacity::Id, credsIssuerConfig),                    // | 
|  | make_unique<SubscribeAttribute>(Id, "bat-quantity", Attributes::BatQuantity::Id, credsIssuerConfig),                    // | 
|  | make_unique<SubscribeAttribute>(Id, "bat-charge-state", Attributes::BatChargeState::Id, credsIssuerConfig),             // | 
|  | make_unique<SubscribeAttribute>(Id, "bat-time-to-full-charge", Attributes::BatTimeToFullCharge::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "bat-functional-while-charging", Attributes::BatFunctionalWhileCharging::Id, | 
|  | credsIssuerConfig),                                                                 // | 
|  | make_unique<SubscribeAttribute>(Id, "bat-charging-current", Attributes::BatChargingCurrent::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "active-bat-charge-faults", Attributes::ActiveBatChargeFaults::Id, | 
|  | credsIssuerConfig),                                                                     // | 
|  | make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | // | 
|  | // Events | 
|  | // | 
|  | make_unique<ReadEvent>(Id, credsIssuerConfig),                                                                   // | 
|  | make_unique<ReadEvent>(Id, "wired-fault-change", Events::WiredFaultChange::Id, credsIssuerConfig),               // | 
|  | make_unique<ReadEvent>(Id, "bat-fault-change", Events::BatFaultChange::Id, credsIssuerConfig),                   // | 
|  | make_unique<ReadEvent>(Id, "bat-charge-fault-change", Events::BatChargeFaultChange::Id, credsIssuerConfig),      // | 
|  | make_unique<SubscribeEvent>(Id, credsIssuerConfig),                                                              // | 
|  | make_unique<SubscribeEvent>(Id, "wired-fault-change", Events::WiredFaultChange::Id, credsIssuerConfig),          // | 
|  | make_unique<SubscribeEvent>(Id, "bat-fault-change", Events::BatFaultChange::Id, credsIssuerConfig),              // | 
|  | make_unique<SubscribeEvent>(Id, "bat-charge-fault-change", Events::BatChargeFaultChange::Id, credsIssuerConfig), // | 
|  | }; | 
|  |  | 
|  | commands.Register(clusterName, clusterCommands); | 
|  | } | 
|  | void registerClusterGeneralCommissioning(Commands & commands, CredentialIssuerCommands * credsIssuerConfig) | 
|  | { | 
|  | using namespace chip::app::Clusters::GeneralCommissioning; | 
|  |  | 
|  | const char * clusterName = "GeneralCommissioning"; | 
|  |  | 
|  | commands_list clusterCommands = { | 
|  | // | 
|  | // Commands | 
|  | // | 
|  | make_unique<ClusterCommand>(Id, credsIssuerConfig),                        // | 
|  | make_unique<GeneralCommissioningArmFailSafe>(credsIssuerConfig),           // | 
|  | make_unique<GeneralCommissioningSetRegulatoryConfig>(credsIssuerConfig),   // | 
|  | make_unique<GeneralCommissioningCommissioningComplete>(credsIssuerConfig), // | 
|  | // | 
|  | // Attributes | 
|  | // | 
|  | make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                     // | 
|  | make_unique<ReadAttribute>(Id, "breadcrumb", Attributes::Breadcrumb::Id, credsIssuerConfig),                           // | 
|  | make_unique<ReadAttribute>(Id, "basic-commissioning-info", Attributes::BasicCommissioningInfo::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "regulatory-config", Attributes::RegulatoryConfig::Id, credsIssuerConfig),              // | 
|  | make_unique<ReadAttribute>(Id, "location-capability", Attributes::LocationCapability::Id, credsIssuerConfig),          // | 
|  | make_unique<ReadAttribute>(Id, "supports-concurrent-connection", Attributes::SupportsConcurrentConnection::Id, | 
|  | credsIssuerConfig),                                                                     // | 
|  | make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              // | 
|  | make_unique<WriteAttribute<uint64_t>>(Id, "breadcrumb", 0, UINT64_MAX, Attributes::Breadcrumb::Id, WriteCommandType::kWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::Clusters::GeneralCommissioning::Structs::BasicCommissioningInfo::Type>>( | 
|  | Id, "basic-commissioning-info", Attributes::BasicCommissioningInfo::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::Clusters::GeneralCommissioning::RegulatoryLocationType>>( | 
|  | Id, "regulatory-config", 0, UINT8_MAX, Attributes::RegulatoryConfig::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::Clusters::GeneralCommissioning::RegulatoryLocationType>>( | 
|  | Id, "location-capability", 0, UINT8_MAX, Attributes::LocationCapability::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<bool>>(Id, "supports-concurrent-connection", 0, 1, Attributes::SupportsConcurrentConnection::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>( | 
|  | Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>( | 
|  | Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig),          // | 
|  | make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                           // | 
|  | make_unique<SubscribeAttribute>(Id, "breadcrumb", Attributes::Breadcrumb::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "basic-commissioning-info", Attributes::BasicCommissioningInfo::Id, | 
|  | credsIssuerConfig),                                                                // | 
|  | make_unique<SubscribeAttribute>(Id, "regulatory-config", Attributes::RegulatoryConfig::Id, credsIssuerConfig),     // | 
|  | make_unique<SubscribeAttribute>(Id, "location-capability", Attributes::LocationCapability::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "supports-concurrent-connection", Attributes::SupportsConcurrentConnection::Id, | 
|  | credsIssuerConfig),                                                                     // | 
|  | make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | // | 
|  | // Events | 
|  | // | 
|  | make_unique<ReadEvent>(Id, credsIssuerConfig),      // | 
|  | make_unique<SubscribeEvent>(Id, credsIssuerConfig), // | 
|  | }; | 
|  |  | 
|  | commands.Register(clusterName, clusterCommands); | 
|  | } | 
|  | void registerClusterNetworkCommissioning(Commands & commands, CredentialIssuerCommands * credsIssuerConfig) | 
|  | { | 
|  | using namespace chip::app::Clusters::NetworkCommissioning; | 
|  |  | 
|  | const char * clusterName = "NetworkCommissioning"; | 
|  |  | 
|  | commands_list clusterCommands = { | 
|  | // | 
|  | // Commands | 
|  | // | 
|  | make_unique<ClusterCommand>(Id, credsIssuerConfig),                           // | 
|  | make_unique<NetworkCommissioningScanNetworks>(credsIssuerConfig),             // | 
|  | make_unique<NetworkCommissioningAddOrUpdateWiFiNetwork>(credsIssuerConfig),   // | 
|  | make_unique<NetworkCommissioningAddOrUpdateThreadNetwork>(credsIssuerConfig), // | 
|  | make_unique<NetworkCommissioningRemoveNetwork>(credsIssuerConfig),            // | 
|  | make_unique<NetworkCommissioningConnectNetwork>(credsIssuerConfig),           // | 
|  | make_unique<NetworkCommissioningReorderNetwork>(credsIssuerConfig),           // | 
|  | // | 
|  | // Attributes | 
|  | // | 
|  | make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                    // | 
|  | make_unique<ReadAttribute>(Id, "max-networks", Attributes::MaxNetworks::Id, credsIssuerConfig),                       // | 
|  | make_unique<ReadAttribute>(Id, "networks", Attributes::Networks::Id, credsIssuerConfig),                              // | 
|  | make_unique<ReadAttribute>(Id, "scan-max-time-seconds", Attributes::ScanMaxTimeSeconds::Id, credsIssuerConfig),       // | 
|  | make_unique<ReadAttribute>(Id, "connect-max-time-seconds", Attributes::ConnectMaxTimeSeconds::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "interface-enabled", Attributes::InterfaceEnabled::Id, credsIssuerConfig),             // | 
|  | make_unique<ReadAttribute>(Id, "last-networking-status", Attributes::LastNetworkingStatus::Id, credsIssuerConfig),    // | 
|  | make_unique<ReadAttribute>(Id, "last-network-id", Attributes::LastNetworkID::Id, credsIssuerConfig),                  // | 
|  | make_unique<ReadAttribute>(Id, "last-connect-error-value", Attributes::LastConnectErrorValue::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig),    // | 
|  | make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),      // | 
|  | make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                           // | 
|  | make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                   // | 
|  | make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                         // | 
|  | make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),               // | 
|  | make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "max-networks", 0, UINT8_MAX, Attributes::MaxNetworks::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex< | 
|  | chip::app::DataModel::List<const chip::app::Clusters::NetworkCommissioning::Structs::NetworkInfo::Type>>>( | 
|  | Id, "networks", Attributes::Networks::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "scan-max-time-seconds", 0, UINT8_MAX, Attributes::ScanMaxTimeSeconds::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "connect-max-time-seconds", 0, UINT8_MAX, Attributes::ConnectMaxTimeSeconds::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<bool>>(Id, "interface-enabled", 0, 1, Attributes::InterfaceEnabled::Id, WriteCommandType::kWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique< | 
|  | WriteAttribute<chip::app::DataModel::Nullable<chip::app::Clusters::NetworkCommissioning::NetworkCommissioningStatus>>>( | 
|  | Id, "last-networking-status", 0, UINT8_MAX, Attributes::LastNetworkingStatus::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<chip::ByteSpan>>>( | 
|  | Id, "last-network-id", Attributes::LastNetworkID::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<int32_t>>>(Id, "last-connect-error-value", INT32_MIN, INT32_MAX, | 
|  | Attributes::LastConnectErrorValue::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>( | 
|  | Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>( | 
|  | Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig),                             // | 
|  | make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                              // | 
|  | make_unique<SubscribeAttribute>(Id, "max-networks", Attributes::MaxNetworks::Id, credsIssuerConfig),                 // | 
|  | make_unique<SubscribeAttribute>(Id, "networks", Attributes::Networks::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "scan-max-time-seconds", Attributes::ScanMaxTimeSeconds::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "connect-max-time-seconds", Attributes::ConnectMaxTimeSeconds::Id, | 
|  | credsIssuerConfig),                                                                     // | 
|  | make_unique<SubscribeAttribute>(Id, "interface-enabled", Attributes::InterfaceEnabled::Id, credsIssuerConfig),          // | 
|  | make_unique<SubscribeAttribute>(Id, "last-networking-status", Attributes::LastNetworkingStatus::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "last-network-id", Attributes::LastNetworkID::Id, credsIssuerConfig),               // | 
|  | make_unique<SubscribeAttribute>(Id, "last-connect-error-value", Attributes::LastConnectErrorValue::Id, | 
|  | credsIssuerConfig),                                                                     // | 
|  | make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | // | 
|  | // Events | 
|  | // | 
|  | make_unique<ReadEvent>(Id, credsIssuerConfig),      // | 
|  | make_unique<SubscribeEvent>(Id, credsIssuerConfig), // | 
|  | }; | 
|  |  | 
|  | commands.Register(clusterName, clusterCommands); | 
|  | } | 
|  | void registerClusterDiagnosticLogs(Commands & commands, CredentialIssuerCommands * credsIssuerConfig) | 
|  | { | 
|  | using namespace chip::app::Clusters::DiagnosticLogs; | 
|  |  | 
|  | const char * clusterName = "DiagnosticLogs"; | 
|  |  | 
|  | commands_list clusterCommands = { | 
|  | // | 
|  | // Commands | 
|  | // | 
|  | make_unique<ClusterCommand>(Id, credsIssuerConfig),                // | 
|  | make_unique<DiagnosticLogsRetrieveLogsRequest>(credsIssuerConfig), // | 
|  | // | 
|  | // Attributes | 
|  | // | 
|  | make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>( | 
|  | Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>( | 
|  | Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig),                                // | 
|  | make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | // | 
|  | // Events | 
|  | // | 
|  | make_unique<ReadEvent>(Id, credsIssuerConfig),      // | 
|  | make_unique<SubscribeEvent>(Id, credsIssuerConfig), // | 
|  | }; | 
|  |  | 
|  | commands.Register(clusterName, clusterCommands); | 
|  | } | 
|  | void registerClusterGeneralDiagnostics(Commands & commands, CredentialIssuerCommands * credsIssuerConfig) | 
|  | { | 
|  | using namespace chip::app::Clusters::GeneralDiagnostics; | 
|  |  | 
|  | const char * clusterName = "GeneralDiagnostics"; | 
|  |  | 
|  | commands_list clusterCommands = { | 
|  | // | 
|  | // Commands | 
|  | // | 
|  | make_unique<ClusterCommand>(Id, credsIssuerConfig),                 // | 
|  | make_unique<GeneralDiagnosticsTestEventTrigger>(credsIssuerConfig), // | 
|  | // | 
|  | // Attributes | 
|  | // | 
|  | make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                   // | 
|  | make_unique<ReadAttribute>(Id, "network-interfaces", Attributes::NetworkInterfaces::Id, credsIssuerConfig),          // | 
|  | make_unique<ReadAttribute>(Id, "reboot-count", Attributes::RebootCount::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "up-time", Attributes::UpTime::Id, credsIssuerConfig),                                // | 
|  | make_unique<ReadAttribute>(Id, "total-operational-hours", Attributes::TotalOperationalHours::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "boot-reason", Attributes::BootReason::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "active-hardware-faults", Attributes::ActiveHardwareFaults::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "active-radio-faults", Attributes::ActiveRadioFaults::Id, credsIssuerConfig),         // | 
|  | make_unique<ReadAttribute>(Id, "active-network-faults", Attributes::ActiveNetworkFaults::Id, credsIssuerConfig),     // | 
|  | make_unique<ReadAttribute>(Id, "test-event-triggers-enabled", Attributes::TestEventTriggersEnabled::Id, | 
|  | credsIssuerConfig),                                                                     // | 
|  | make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              // | 
|  | make_unique<WriteAttributeAsComplex< | 
|  | chip::app::DataModel::List<const chip::app::Clusters::GeneralDiagnostics::Structs::NetworkInterface::Type>>>( | 
|  | Id, "network-interfaces", Attributes::NetworkInterfaces::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "reboot-count", 0, UINT16_MAX, Attributes::RebootCount::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint64_t>>(Id, "up-time", 0, UINT64_MAX, Attributes::UpTime::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "total-operational-hours", 0, UINT32_MAX, Attributes::TotalOperationalHours::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::Clusters::GeneralDiagnostics::BootReasonEnum>>( | 
|  | Id, "boot-reason", 0, UINT8_MAX, Attributes::BootReason::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique< | 
|  | WriteAttributeAsComplex<chip::app::DataModel::List<const chip::app::Clusters::GeneralDiagnostics::HardwareFaultEnum>>>( | 
|  | Id, "active-hardware-faults", Attributes::ActiveHardwareFaults::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique< | 
|  | WriteAttributeAsComplex<chip::app::DataModel::List<const chip::app::Clusters::GeneralDiagnostics::RadioFaultEnum>>>( | 
|  | Id, "active-radio-faults", Attributes::ActiveRadioFaults::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique< | 
|  | WriteAttributeAsComplex<chip::app::DataModel::List<const chip::app::Clusters::GeneralDiagnostics::NetworkFaultEnum>>>( | 
|  | Id, "active-network-faults", Attributes::ActiveNetworkFaults::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<bool>>(Id, "test-event-triggers-enabled", 0, 1, Attributes::TestEventTriggersEnabled::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>( | 
|  | Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>( | 
|  | Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig),                                  // | 
|  | make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                                   // | 
|  | make_unique<SubscribeAttribute>(Id, "network-interfaces", Attributes::NetworkInterfaces::Id, credsIssuerConfig),          // | 
|  | make_unique<SubscribeAttribute>(Id, "reboot-count", Attributes::RebootCount::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "up-time", Attributes::UpTime::Id, credsIssuerConfig),                                // | 
|  | make_unique<SubscribeAttribute>(Id, "total-operational-hours", Attributes::TotalOperationalHours::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "boot-reason", Attributes::BootReason::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "active-hardware-faults", Attributes::ActiveHardwareFaults::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "active-radio-faults", Attributes::ActiveRadioFaults::Id, credsIssuerConfig),         // | 
|  | make_unique<SubscribeAttribute>(Id, "active-network-faults", Attributes::ActiveNetworkFaults::Id, credsIssuerConfig),     // | 
|  | make_unique<SubscribeAttribute>(Id, "test-event-triggers-enabled", Attributes::TestEventTriggersEnabled::Id, | 
|  | credsIssuerConfig),                                                                     // | 
|  | make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | // | 
|  | // Events | 
|  | // | 
|  | make_unique<ReadEvent>(Id, credsIssuerConfig),                                                                // | 
|  | make_unique<ReadEvent>(Id, "hardware-fault-change", Events::HardwareFaultChange::Id, credsIssuerConfig),      // | 
|  | make_unique<ReadEvent>(Id, "radio-fault-change", Events::RadioFaultChange::Id, credsIssuerConfig),            // | 
|  | make_unique<ReadEvent>(Id, "network-fault-change", Events::NetworkFaultChange::Id, credsIssuerConfig),        // | 
|  | make_unique<ReadEvent>(Id, "boot-reason", Events::BootReason::Id, credsIssuerConfig),                         // | 
|  | make_unique<SubscribeEvent>(Id, credsIssuerConfig),                                                           // | 
|  | make_unique<SubscribeEvent>(Id, "hardware-fault-change", Events::HardwareFaultChange::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeEvent>(Id, "radio-fault-change", Events::RadioFaultChange::Id, credsIssuerConfig),       // | 
|  | make_unique<SubscribeEvent>(Id, "network-fault-change", Events::NetworkFaultChange::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeEvent>(Id, "boot-reason", Events::BootReason::Id, credsIssuerConfig),                    // | 
|  | }; | 
|  |  | 
|  | commands.Register(clusterName, clusterCommands); | 
|  | } | 
|  | void registerClusterSoftwareDiagnostics(Commands & commands, CredentialIssuerCommands * credsIssuerConfig) | 
|  | { | 
|  | using namespace chip::app::Clusters::SoftwareDiagnostics; | 
|  |  | 
|  | const char * clusterName = "SoftwareDiagnostics"; | 
|  |  | 
|  | commands_list clusterCommands = { | 
|  | // | 
|  | // Commands | 
|  | // | 
|  | make_unique<ClusterCommand>(Id, credsIssuerConfig),                 // | 
|  | make_unique<SoftwareDiagnosticsResetWatermarks>(credsIssuerConfig), // | 
|  | // | 
|  | // Attributes | 
|  | // | 
|  | make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                       // | 
|  | make_unique<ReadAttribute>(Id, "thread-metrics", Attributes::ThreadMetrics::Id, credsIssuerConfig),      // | 
|  | make_unique<ReadAttribute>(Id, "current-heap-free", Attributes::CurrentHeapFree::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "current-heap-used", Attributes::CurrentHeapUsed::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "current-heap-high-watermark", Attributes::CurrentHeapHighWatermark::Id, | 
|  | credsIssuerConfig),                                                                     // | 
|  | make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              // | 
|  | make_unique<WriteAttributeAsComplex< | 
|  | chip::app::DataModel::List<const chip::app::Clusters::SoftwareDiagnostics::Structs::ThreadMetricsStruct::Type>>>( | 
|  | Id, "thread-metrics", Attributes::ThreadMetrics::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint64_t>>(Id, "current-heap-free", 0, UINT64_MAX, Attributes::CurrentHeapFree::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint64_t>>(Id, "current-heap-used", 0, UINT64_MAX, Attributes::CurrentHeapUsed::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint64_t>>(Id, "current-heap-high-watermark", 0, UINT64_MAX, | 
|  | Attributes::CurrentHeapHighWatermark::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>( | 
|  | Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>( | 
|  | Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                       // | 
|  | make_unique<SubscribeAttribute>(Id, "thread-metrics", Attributes::ThreadMetrics::Id, credsIssuerConfig),      // | 
|  | make_unique<SubscribeAttribute>(Id, "current-heap-free", Attributes::CurrentHeapFree::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "current-heap-used", Attributes::CurrentHeapUsed::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "current-heap-high-watermark", Attributes::CurrentHeapHighWatermark::Id, | 
|  | credsIssuerConfig),                                                                     // | 
|  | make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | // | 
|  | // Events | 
|  | // | 
|  | make_unique<ReadEvent>(Id, credsIssuerConfig),                                                   // | 
|  | make_unique<ReadEvent>(Id, "software-fault", Events::SoftwareFault::Id, credsIssuerConfig),      // | 
|  | make_unique<SubscribeEvent>(Id, credsIssuerConfig),                                              // | 
|  | make_unique<SubscribeEvent>(Id, "software-fault", Events::SoftwareFault::Id, credsIssuerConfig), // | 
|  | }; | 
|  |  | 
|  | commands.Register(clusterName, clusterCommands); | 
|  | } | 
|  | void registerClusterThreadNetworkDiagnostics(Commands & commands, CredentialIssuerCommands * credsIssuerConfig) | 
|  | { | 
|  | using namespace chip::app::Clusters::ThreadNetworkDiagnostics; | 
|  |  | 
|  | const char * clusterName = "ThreadNetworkDiagnostics"; | 
|  |  | 
|  | commands_list clusterCommands = { | 
|  | // | 
|  | // Commands | 
|  | // | 
|  | make_unique<ClusterCommand>(Id, credsIssuerConfig),                  // | 
|  | make_unique<ThreadNetworkDiagnosticsResetCounts>(credsIssuerConfig), // | 
|  | // | 
|  | // Attributes | 
|  | // | 
|  | make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                      // | 
|  | make_unique<ReadAttribute>(Id, "channel", Attributes::Channel::Id, credsIssuerConfig),                                  // | 
|  | make_unique<ReadAttribute>(Id, "routing-role", Attributes::RoutingRole::Id, credsIssuerConfig),                         // | 
|  | make_unique<ReadAttribute>(Id, "network-name", Attributes::NetworkName::Id, credsIssuerConfig),                         // | 
|  | make_unique<ReadAttribute>(Id, "pan-id", Attributes::PanId::Id, credsIssuerConfig),                                     // | 
|  | make_unique<ReadAttribute>(Id, "extended-pan-id", Attributes::ExtendedPanId::Id, credsIssuerConfig),                    // | 
|  | make_unique<ReadAttribute>(Id, "mesh-local-prefix", Attributes::MeshLocalPrefix::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "overrun-count", Attributes::OverrunCount::Id, credsIssuerConfig),                       // | 
|  | make_unique<ReadAttribute>(Id, "neighbor-table", Attributes::NeighborTable::Id, credsIssuerConfig),                     // | 
|  | make_unique<ReadAttribute>(Id, "route-table", Attributes::RouteTable::Id, credsIssuerConfig),                           // | 
|  | make_unique<ReadAttribute>(Id, "partition-id", Attributes::PartitionId::Id, credsIssuerConfig),                         // | 
|  | make_unique<ReadAttribute>(Id, "weighting", Attributes::Weighting::Id, credsIssuerConfig),                              // | 
|  | make_unique<ReadAttribute>(Id, "data-version", Attributes::DataVersion::Id, credsIssuerConfig),                         // | 
|  | make_unique<ReadAttribute>(Id, "stable-data-version", Attributes::StableDataVersion::Id, credsIssuerConfig),            // | 
|  | make_unique<ReadAttribute>(Id, "leader-router-id", Attributes::LeaderRouterId::Id, credsIssuerConfig),                  // | 
|  | make_unique<ReadAttribute>(Id, "detached-role-count", Attributes::DetachedRoleCount::Id, credsIssuerConfig),            // | 
|  | make_unique<ReadAttribute>(Id, "child-role-count", Attributes::ChildRoleCount::Id, credsIssuerConfig),                  // | 
|  | make_unique<ReadAttribute>(Id, "router-role-count", Attributes::RouterRoleCount::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "leader-role-count", Attributes::LeaderRoleCount::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "attach-attempt-count", Attributes::AttachAttemptCount::Id, credsIssuerConfig),          // | 
|  | make_unique<ReadAttribute>(Id, "partition-id-change-count", Attributes::PartitionIdChangeCount::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "better-partition-attach-attempt-count", Attributes::BetterPartitionAttachAttemptCount::Id, | 
|  | credsIssuerConfig),                                                                         // | 
|  | make_unique<ReadAttribute>(Id, "parent-change-count", Attributes::ParentChangeCount::Id, credsIssuerConfig),           // | 
|  | make_unique<ReadAttribute>(Id, "tx-total-count", Attributes::TxTotalCount::Id, credsIssuerConfig),                     // | 
|  | make_unique<ReadAttribute>(Id, "tx-unicast-count", Attributes::TxUnicastCount::Id, credsIssuerConfig),                 // | 
|  | make_unique<ReadAttribute>(Id, "tx-broadcast-count", Attributes::TxBroadcastCount::Id, credsIssuerConfig),             // | 
|  | make_unique<ReadAttribute>(Id, "tx-ack-requested-count", Attributes::TxAckRequestedCount::Id, credsIssuerConfig),      // | 
|  | make_unique<ReadAttribute>(Id, "tx-acked-count", Attributes::TxAckedCount::Id, credsIssuerConfig),                     // | 
|  | make_unique<ReadAttribute>(Id, "tx-no-ack-requested-count", Attributes::TxNoAckRequestedCount::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "tx-data-count", Attributes::TxDataCount::Id, credsIssuerConfig),                       // | 
|  | make_unique<ReadAttribute>(Id, "tx-data-poll-count", Attributes::TxDataPollCount::Id, credsIssuerConfig),              // | 
|  | make_unique<ReadAttribute>(Id, "tx-beacon-count", Attributes::TxBeaconCount::Id, credsIssuerConfig),                   // | 
|  | make_unique<ReadAttribute>(Id, "tx-beacon-request-count", Attributes::TxBeaconRequestCount::Id, credsIssuerConfig),    // | 
|  | make_unique<ReadAttribute>(Id, "tx-other-count", Attributes::TxOtherCount::Id, credsIssuerConfig),                     // | 
|  | make_unique<ReadAttribute>(Id, "tx-retry-count", Attributes::TxRetryCount::Id, credsIssuerConfig),                     // | 
|  | make_unique<ReadAttribute>(Id, "tx-direct-max-retry-expiry-count", Attributes::TxDirectMaxRetryExpiryCount::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "tx-indirect-max-retry-expiry-count", Attributes::TxIndirectMaxRetryExpiryCount::Id, | 
|  | credsIssuerConfig),                                                                          // | 
|  | make_unique<ReadAttribute>(Id, "tx-err-cca-count", Attributes::TxErrCcaCount::Id, credsIssuerConfig),                   // | 
|  | make_unique<ReadAttribute>(Id, "tx-err-abort-count", Attributes::TxErrAbortCount::Id, credsIssuerConfig),               // | 
|  | make_unique<ReadAttribute>(Id, "tx-err-busy-channel-count", Attributes::TxErrBusyChannelCount::Id, credsIssuerConfig),  // | 
|  | make_unique<ReadAttribute>(Id, "rx-total-count", Attributes::RxTotalCount::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "rx-unicast-count", Attributes::RxUnicastCount::Id, credsIssuerConfig),                  // | 
|  | make_unique<ReadAttribute>(Id, "rx-broadcast-count", Attributes::RxBroadcastCount::Id, credsIssuerConfig),              // | 
|  | make_unique<ReadAttribute>(Id, "rx-data-count", Attributes::RxDataCount::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "rx-data-poll-count", Attributes::RxDataPollCount::Id, credsIssuerConfig),               // | 
|  | make_unique<ReadAttribute>(Id, "rx-beacon-count", Attributes::RxBeaconCount::Id, credsIssuerConfig),                    // | 
|  | make_unique<ReadAttribute>(Id, "rx-beacon-request-count", Attributes::RxBeaconRequestCount::Id, credsIssuerConfig),     // | 
|  | make_unique<ReadAttribute>(Id, "rx-other-count", Attributes::RxOtherCount::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "rx-address-filtered-count", Attributes::RxAddressFilteredCount::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "rx-dest-addr-filtered-count", Attributes::RxDestAddrFilteredCount::Id, | 
|  | credsIssuerConfig),                                                                 // | 
|  | make_unique<ReadAttribute>(Id, "rx-duplicated-count", Attributes::RxDuplicatedCount::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "rx-err-no-frame-count", Attributes::RxErrNoFrameCount::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "rx-err-unknown-neighbor-count", Attributes::RxErrUnknownNeighborCount::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "rx-err-invalid-src-addr-count", Attributes::RxErrInvalidSrcAddrCount::Id, | 
|  | credsIssuerConfig),                                                            // | 
|  | make_unique<ReadAttribute>(Id, "rx-err-sec-count", Attributes::RxErrSecCount::Id, credsIssuerConfig),     // | 
|  | make_unique<ReadAttribute>(Id, "rx-err-fcs-count", Attributes::RxErrFcsCount::Id, credsIssuerConfig),     // | 
|  | make_unique<ReadAttribute>(Id, "rx-err-other-count", Attributes::RxErrOtherCount::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "active-timestamp", Attributes::ActiveTimestamp::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "pending-timestamp", Attributes::PendingTimestamp::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "delay", Attributes::Delay::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "security-policy", Attributes::SecurityPolicy::Id, credsIssuerConfig),     // | 
|  | make_unique<ReadAttribute>(Id, "channel-page0mask", Attributes::ChannelPage0Mask::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "operational-dataset-components", Attributes::OperationalDatasetComponents::Id, | 
|  | credsIssuerConfig),                                                                            // | 
|  | make_unique<ReadAttribute>(Id, "active-network-faults-list", Attributes::ActiveNetworkFaultsList::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig),        // | 
|  | make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),          // | 
|  | make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                               // | 
|  | make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                       // | 
|  | make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                             // | 
|  | make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),                   // | 
|  | make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                                     // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint16_t>>>(Id, "channel", 0, UINT16_MAX, Attributes::Channel::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<chip::app::Clusters::ThreadNetworkDiagnostics::RoutingRole>>>( | 
|  | Id, "routing-role", 0, UINT8_MAX, Attributes::RoutingRole::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<chip::CharSpan>>>( | 
|  | Id, "network-name", Attributes::NetworkName::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint16_t>>>(Id, "pan-id", 0, UINT16_MAX, Attributes::PanId::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint64_t>>>(Id, "extended-pan-id", 0, UINT64_MAX, | 
|  | Attributes::ExtendedPanId::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<chip::ByteSpan>>>( | 
|  | Id, "mesh-local-prefix", Attributes::MeshLocalPrefix::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint64_t>>(Id, "overrun-count", 0, UINT64_MAX, Attributes::OverrunCount::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex< | 
|  | chip::app::DataModel::List<const chip::app::Clusters::ThreadNetworkDiagnostics::Structs::NeighborTable::Type>>>( | 
|  | Id, "neighbor-table", Attributes::NeighborTable::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex< | 
|  | chip::app::DataModel::List<const chip::app::Clusters::ThreadNetworkDiagnostics::Structs::RouteTable::Type>>>( | 
|  | Id, "route-table", Attributes::RouteTable::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint32_t>>>( | 
|  | Id, "partition-id", 0, UINT32_MAX, Attributes::PartitionId::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint8_t>>>( | 
|  | Id, "weighting", 0, UINT8_MAX, Attributes::Weighting::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint8_t>>>( | 
|  | Id, "data-version", 0, UINT8_MAX, Attributes::DataVersion::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint8_t>>>(Id, "stable-data-version", 0, UINT8_MAX, | 
|  | Attributes::StableDataVersion::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint8_t>>>(Id, "leader-router-id", 0, UINT8_MAX, | 
|  | Attributes::LeaderRouterId::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "detached-role-count", 0, UINT16_MAX, Attributes::DetachedRoleCount::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "child-role-count", 0, UINT16_MAX, Attributes::ChildRoleCount::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "router-role-count", 0, UINT16_MAX, Attributes::RouterRoleCount::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "leader-role-count", 0, UINT16_MAX, Attributes::LeaderRoleCount::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "attach-attempt-count", 0, UINT16_MAX, Attributes::AttachAttemptCount::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "partition-id-change-count", 0, UINT16_MAX, | 
|  | Attributes::PartitionIdChangeCount::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "better-partition-attach-attempt-count", 0, UINT16_MAX, | 
|  | Attributes::BetterPartitionAttachAttemptCount::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "parent-change-count", 0, UINT16_MAX, Attributes::ParentChangeCount::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "tx-total-count", 0, UINT32_MAX, Attributes::TxTotalCount::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "tx-unicast-count", 0, UINT32_MAX, Attributes::TxUnicastCount::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "tx-broadcast-count", 0, UINT32_MAX, Attributes::TxBroadcastCount::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "tx-ack-requested-count", 0, UINT32_MAX, Attributes::TxAckRequestedCount::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "tx-acked-count", 0, UINT32_MAX, Attributes::TxAckedCount::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "tx-no-ack-requested-count", 0, UINT32_MAX, Attributes::TxNoAckRequestedCount::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "tx-data-count", 0, UINT32_MAX, Attributes::TxDataCount::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "tx-data-poll-count", 0, UINT32_MAX, Attributes::TxDataPollCount::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "tx-beacon-count", 0, UINT32_MAX, Attributes::TxBeaconCount::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "tx-beacon-request-count", 0, UINT32_MAX, Attributes::TxBeaconRequestCount::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "tx-other-count", 0, UINT32_MAX, Attributes::TxOtherCount::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "tx-retry-count", 0, UINT32_MAX, Attributes::TxRetryCount::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "tx-direct-max-retry-expiry-count", 0, UINT32_MAX, | 
|  | Attributes::TxDirectMaxRetryExpiryCount::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "tx-indirect-max-retry-expiry-count", 0, UINT32_MAX, | 
|  | Attributes::TxIndirectMaxRetryExpiryCount::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "tx-err-cca-count", 0, UINT32_MAX, Attributes::TxErrCcaCount::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "tx-err-abort-count", 0, UINT32_MAX, Attributes::TxErrAbortCount::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "tx-err-busy-channel-count", 0, UINT32_MAX, Attributes::TxErrBusyChannelCount::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "rx-total-count", 0, UINT32_MAX, Attributes::RxTotalCount::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "rx-unicast-count", 0, UINT32_MAX, Attributes::RxUnicastCount::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "rx-broadcast-count", 0, UINT32_MAX, Attributes::RxBroadcastCount::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "rx-data-count", 0, UINT32_MAX, Attributes::RxDataCount::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "rx-data-poll-count", 0, UINT32_MAX, Attributes::RxDataPollCount::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "rx-beacon-count", 0, UINT32_MAX, Attributes::RxBeaconCount::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "rx-beacon-request-count", 0, UINT32_MAX, Attributes::RxBeaconRequestCount::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "rx-other-count", 0, UINT32_MAX, Attributes::RxOtherCount::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "rx-address-filtered-count", 0, UINT32_MAX, | 
|  | Attributes::RxAddressFilteredCount::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "rx-dest-addr-filtered-count", 0, UINT32_MAX, | 
|  | Attributes::RxDestAddrFilteredCount::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "rx-duplicated-count", 0, UINT32_MAX, Attributes::RxDuplicatedCount::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "rx-err-no-frame-count", 0, UINT32_MAX, Attributes::RxErrNoFrameCount::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "rx-err-unknown-neighbor-count", 0, UINT32_MAX, | 
|  | Attributes::RxErrUnknownNeighborCount::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "rx-err-invalid-src-addr-count", 0, UINT32_MAX, | 
|  | Attributes::RxErrInvalidSrcAddrCount::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "rx-err-sec-count", 0, UINT32_MAX, Attributes::RxErrSecCount::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "rx-err-fcs-count", 0, UINT32_MAX, Attributes::RxErrFcsCount::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "rx-err-other-count", 0, UINT32_MAX, Attributes::RxErrOtherCount::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint64_t>>>(Id, "active-timestamp", 0, UINT64_MAX, | 
|  | Attributes::ActiveTimestamp::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint64_t>>>(Id, "pending-timestamp", 0, UINT64_MAX, | 
|  | Attributes::PendingTimestamp::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint32_t>>>(Id, "delay", 0, UINT32_MAX, Attributes::Delay::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex< | 
|  | chip::app::DataModel::Nullable<chip::app::Clusters::ThreadNetworkDiagnostics::Structs::SecurityPolicy::Type>>>( | 
|  | Id, "security-policy", Attributes::SecurityPolicy::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<chip::ByteSpan>>>( | 
|  | Id, "channel-page0mask", Attributes::ChannelPage0Mask::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::Nullable< | 
|  | chip::app::Clusters::ThreadNetworkDiagnostics::Structs::OperationalDatasetComponents::Type>>>( | 
|  | Id, "operational-dataset-components", Attributes::OperationalDatasetComponents::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique< | 
|  | WriteAttributeAsComplex<chip::app::DataModel::List<const chip::app::Clusters::ThreadNetworkDiagnostics::NetworkFault>>>( | 
|  | Id, "active-network-faults-list", Attributes::ActiveNetworkFaultsList::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>( | 
|  | Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>( | 
|  | Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig),                            // | 
|  | make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                             // | 
|  | make_unique<SubscribeAttribute>(Id, "channel", Attributes::Channel::Id, credsIssuerConfig),                         // | 
|  | make_unique<SubscribeAttribute>(Id, "routing-role", Attributes::RoutingRole::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "network-name", Attributes::NetworkName::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "pan-id", Attributes::PanId::Id, credsIssuerConfig),                            // | 
|  | make_unique<SubscribeAttribute>(Id, "extended-pan-id", Attributes::ExtendedPanId::Id, credsIssuerConfig),           // | 
|  | make_unique<SubscribeAttribute>(Id, "mesh-local-prefix", Attributes::MeshLocalPrefix::Id, credsIssuerConfig),       // | 
|  | make_unique<SubscribeAttribute>(Id, "overrun-count", Attributes::OverrunCount::Id, credsIssuerConfig),              // | 
|  | make_unique<SubscribeAttribute>(Id, "neighbor-table", Attributes::NeighborTable::Id, credsIssuerConfig),            // | 
|  | make_unique<SubscribeAttribute>(Id, "route-table", Attributes::RouteTable::Id, credsIssuerConfig),                  // | 
|  | make_unique<SubscribeAttribute>(Id, "partition-id", Attributes::PartitionId::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "weighting", Attributes::Weighting::Id, credsIssuerConfig),                     // | 
|  | make_unique<SubscribeAttribute>(Id, "data-version", Attributes::DataVersion::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "stable-data-version", Attributes::StableDataVersion::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "leader-router-id", Attributes::LeaderRouterId::Id, credsIssuerConfig),         // | 
|  | make_unique<SubscribeAttribute>(Id, "detached-role-count", Attributes::DetachedRoleCount::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "child-role-count", Attributes::ChildRoleCount::Id, credsIssuerConfig),         // | 
|  | make_unique<SubscribeAttribute>(Id, "router-role-count", Attributes::RouterRoleCount::Id, credsIssuerConfig),       // | 
|  | make_unique<SubscribeAttribute>(Id, "leader-role-count", Attributes::LeaderRoleCount::Id, credsIssuerConfig),       // | 
|  | make_unique<SubscribeAttribute>(Id, "attach-attempt-count", Attributes::AttachAttemptCount::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "partition-id-change-count", Attributes::PartitionIdChangeCount::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "better-partition-attach-attempt-count", | 
|  | Attributes::BetterPartitionAttachAttemptCount::Id, credsIssuerConfig),                 // | 
|  | make_unique<SubscribeAttribute>(Id, "parent-change-count", Attributes::ParentChangeCount::Id, credsIssuerConfig),      // | 
|  | make_unique<SubscribeAttribute>(Id, "tx-total-count", Attributes::TxTotalCount::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "tx-unicast-count", Attributes::TxUnicastCount::Id, credsIssuerConfig),            // | 
|  | make_unique<SubscribeAttribute>(Id, "tx-broadcast-count", Attributes::TxBroadcastCount::Id, credsIssuerConfig),        // | 
|  | make_unique<SubscribeAttribute>(Id, "tx-ack-requested-count", Attributes::TxAckRequestedCount::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "tx-acked-count", Attributes::TxAckedCount::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "tx-no-ack-requested-count", Attributes::TxNoAckRequestedCount::Id, | 
|  | credsIssuerConfig),                                                                      // | 
|  | make_unique<SubscribeAttribute>(Id, "tx-data-count", Attributes::TxDataCount::Id, credsIssuerConfig),                    // | 
|  | make_unique<SubscribeAttribute>(Id, "tx-data-poll-count", Attributes::TxDataPollCount::Id, credsIssuerConfig),           // | 
|  | make_unique<SubscribeAttribute>(Id, "tx-beacon-count", Attributes::TxBeaconCount::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "tx-beacon-request-count", Attributes::TxBeaconRequestCount::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "tx-other-count", Attributes::TxOtherCount::Id, credsIssuerConfig),                  // | 
|  | make_unique<SubscribeAttribute>(Id, "tx-retry-count", Attributes::TxRetryCount::Id, credsIssuerConfig),                  // | 
|  | make_unique<SubscribeAttribute>(Id, "tx-direct-max-retry-expiry-count", Attributes::TxDirectMaxRetryExpiryCount::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "tx-indirect-max-retry-expiry-count", Attributes::TxIndirectMaxRetryExpiryCount::Id, | 
|  | credsIssuerConfig),                                                            // | 
|  | make_unique<SubscribeAttribute>(Id, "tx-err-cca-count", Attributes::TxErrCcaCount::Id, credsIssuerConfig),     // | 
|  | make_unique<SubscribeAttribute>(Id, "tx-err-abort-count", Attributes::TxErrAbortCount::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "tx-err-busy-channel-count", Attributes::TxErrBusyChannelCount::Id, | 
|  | credsIssuerConfig),                                                                      // | 
|  | make_unique<SubscribeAttribute>(Id, "rx-total-count", Attributes::RxTotalCount::Id, credsIssuerConfig),                  // | 
|  | make_unique<SubscribeAttribute>(Id, "rx-unicast-count", Attributes::RxUnicastCount::Id, credsIssuerConfig),              // | 
|  | make_unique<SubscribeAttribute>(Id, "rx-broadcast-count", Attributes::RxBroadcastCount::Id, credsIssuerConfig),          // | 
|  | make_unique<SubscribeAttribute>(Id, "rx-data-count", Attributes::RxDataCount::Id, credsIssuerConfig),                    // | 
|  | make_unique<SubscribeAttribute>(Id, "rx-data-poll-count", Attributes::RxDataPollCount::Id, credsIssuerConfig),           // | 
|  | make_unique<SubscribeAttribute>(Id, "rx-beacon-count", Attributes::RxBeaconCount::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "rx-beacon-request-count", Attributes::RxBeaconRequestCount::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "rx-other-count", Attributes::RxOtherCount::Id, credsIssuerConfig),                  // | 
|  | make_unique<SubscribeAttribute>(Id, "rx-address-filtered-count", Attributes::RxAddressFilteredCount::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "rx-dest-addr-filtered-count", Attributes::RxDestAddrFilteredCount::Id, | 
|  | credsIssuerConfig),                                                                 // | 
|  | make_unique<SubscribeAttribute>(Id, "rx-duplicated-count", Attributes::RxDuplicatedCount::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "rx-err-no-frame-count", Attributes::RxErrNoFrameCount::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "rx-err-unknown-neighbor-count", Attributes::RxErrUnknownNeighborCount::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "rx-err-invalid-src-addr-count", Attributes::RxErrInvalidSrcAddrCount::Id, | 
|  | credsIssuerConfig),                                                            // | 
|  | make_unique<SubscribeAttribute>(Id, "rx-err-sec-count", Attributes::RxErrSecCount::Id, credsIssuerConfig),     // | 
|  | make_unique<SubscribeAttribute>(Id, "rx-err-fcs-count", Attributes::RxErrFcsCount::Id, credsIssuerConfig),     // | 
|  | make_unique<SubscribeAttribute>(Id, "rx-err-other-count", Attributes::RxErrOtherCount::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "active-timestamp", Attributes::ActiveTimestamp::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "pending-timestamp", Attributes::PendingTimestamp::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "delay", Attributes::Delay::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "security-policy", Attributes::SecurityPolicy::Id, credsIssuerConfig),     // | 
|  | make_unique<SubscribeAttribute>(Id, "channel-page0mask", Attributes::ChannelPage0Mask::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "operational-dataset-components", Attributes::OperationalDatasetComponents::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "active-network-faults-list", Attributes::ActiveNetworkFaultsList::Id, | 
|  | credsIssuerConfig),                                                                     // | 
|  | make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | // | 
|  | // Events | 
|  | // | 
|  | make_unique<ReadEvent>(Id, credsIssuerConfig),                                                              // | 
|  | make_unique<ReadEvent>(Id, "connection-status", Events::ConnectionStatus::Id, credsIssuerConfig),           // | 
|  | make_unique<ReadEvent>(Id, "network-fault-change", Events::NetworkFaultChange::Id, credsIssuerConfig),      // | 
|  | make_unique<SubscribeEvent>(Id, credsIssuerConfig),                                                         // | 
|  | make_unique<SubscribeEvent>(Id, "connection-status", Events::ConnectionStatus::Id, credsIssuerConfig),      // | 
|  | make_unique<SubscribeEvent>(Id, "network-fault-change", Events::NetworkFaultChange::Id, credsIssuerConfig), // | 
|  | }; | 
|  |  | 
|  | commands.Register(clusterName, clusterCommands); | 
|  | } | 
|  | void registerClusterWiFiNetworkDiagnostics(Commands & commands, CredentialIssuerCommands * credsIssuerConfig) | 
|  | { | 
|  | using namespace chip::app::Clusters::WiFiNetworkDiagnostics; | 
|  |  | 
|  | const char * clusterName = "WiFiNetworkDiagnostics"; | 
|  |  | 
|  | commands_list clusterCommands = { | 
|  | // | 
|  | // Commands | 
|  | // | 
|  | make_unique<ClusterCommand>(Id, credsIssuerConfig),                // | 
|  | make_unique<WiFiNetworkDiagnosticsResetCounts>(credsIssuerConfig), // | 
|  | // | 
|  | // Attributes | 
|  | // | 
|  | make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                      // | 
|  | make_unique<ReadAttribute>(Id, "bssid", Attributes::Bssid::Id, credsIssuerConfig),                                      // | 
|  | make_unique<ReadAttribute>(Id, "security-type", Attributes::SecurityType::Id, credsIssuerConfig),                       // | 
|  | make_unique<ReadAttribute>(Id, "wi-fi-version", Attributes::WiFiVersion::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "channel-number", Attributes::ChannelNumber::Id, credsIssuerConfig),                     // | 
|  | make_unique<ReadAttribute>(Id, "rssi", Attributes::Rssi::Id, credsIssuerConfig),                                        // | 
|  | make_unique<ReadAttribute>(Id, "beacon-lost-count", Attributes::BeaconLostCount::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "beacon-rx-count", Attributes::BeaconRxCount::Id, credsIssuerConfig),                    // | 
|  | make_unique<ReadAttribute>(Id, "packet-multicast-rx-count", Attributes::PacketMulticastRxCount::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "packet-multicast-tx-count", Attributes::PacketMulticastTxCount::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "packet-unicast-rx-count", Attributes::PacketUnicastRxCount::Id, credsIssuerConfig),     // | 
|  | make_unique<ReadAttribute>(Id, "packet-unicast-tx-count", Attributes::PacketUnicastTxCount::Id, credsIssuerConfig),     // | 
|  | make_unique<ReadAttribute>(Id, "current-max-rate", Attributes::CurrentMaxRate::Id, credsIssuerConfig),                  // | 
|  | make_unique<ReadAttribute>(Id, "overrun-count", Attributes::OverrunCount::Id, credsIssuerConfig),                       // | 
|  | make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig),      // | 
|  | make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),        // | 
|  | make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                             // | 
|  | make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                     // | 
|  | make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                           // | 
|  | make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),                 // | 
|  | make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                                   // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<chip::ByteSpan>>>( | 
|  | Id, "bssid", Attributes::Bssid::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<chip::app::Clusters::WiFiNetworkDiagnostics::SecurityTypeEnum>>>( | 
|  | Id, "security-type", 0, UINT8_MAX, Attributes::SecurityType::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<chip::app::Clusters::WiFiNetworkDiagnostics::WiFiVersionEnum>>>( | 
|  | Id, "wi-fi-version", 0, UINT8_MAX, Attributes::WiFiVersion::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint16_t>>>(Id, "channel-number", 0, UINT16_MAX, | 
|  | Attributes::ChannelNumber::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<int8_t>>>(Id, "rssi", INT8_MIN, INT8_MAX, Attributes::Rssi::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint32_t>>>(Id, "beacon-lost-count", 0, UINT32_MAX, | 
|  | Attributes::BeaconLostCount::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint32_t>>>(Id, "beacon-rx-count", 0, UINT32_MAX, | 
|  | Attributes::BeaconRxCount::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint32_t>>>(Id, "packet-multicast-rx-count", 0, UINT32_MAX, | 
|  | Attributes::PacketMulticastRxCount::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint32_t>>>(Id, "packet-multicast-tx-count", 0, UINT32_MAX, | 
|  | Attributes::PacketMulticastTxCount::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint32_t>>>(Id, "packet-unicast-rx-count", 0, UINT32_MAX, | 
|  | Attributes::PacketUnicastRxCount::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint32_t>>>(Id, "packet-unicast-tx-count", 0, UINT32_MAX, | 
|  | Attributes::PacketUnicastTxCount::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint64_t>>>(Id, "current-max-rate", 0, UINT64_MAX, | 
|  | Attributes::CurrentMaxRate::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint64_t>>>( | 
|  | Id, "overrun-count", 0, UINT64_MAX, Attributes::OverrunCount::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>( | 
|  | Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>( | 
|  | Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                       // | 
|  | make_unique<SubscribeAttribute>(Id, "bssid", Attributes::Bssid::Id, credsIssuerConfig),                       // | 
|  | make_unique<SubscribeAttribute>(Id, "security-type", Attributes::SecurityType::Id, credsIssuerConfig),        // | 
|  | make_unique<SubscribeAttribute>(Id, "wi-fi-version", Attributes::WiFiVersion::Id, credsIssuerConfig),         // | 
|  | make_unique<SubscribeAttribute>(Id, "channel-number", Attributes::ChannelNumber::Id, credsIssuerConfig),      // | 
|  | make_unique<SubscribeAttribute>(Id, "rssi", Attributes::Rssi::Id, credsIssuerConfig),                         // | 
|  | make_unique<SubscribeAttribute>(Id, "beacon-lost-count", Attributes::BeaconLostCount::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "beacon-rx-count", Attributes::BeaconRxCount::Id, credsIssuerConfig),     // | 
|  | make_unique<SubscribeAttribute>(Id, "packet-multicast-rx-count", Attributes::PacketMulticastRxCount::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "packet-multicast-tx-count", Attributes::PacketMulticastTxCount::Id, | 
|  | credsIssuerConfig),                                                                      // | 
|  | make_unique<SubscribeAttribute>(Id, "packet-unicast-rx-count", Attributes::PacketUnicastRxCount::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "packet-unicast-tx-count", Attributes::PacketUnicastTxCount::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "current-max-rate", Attributes::CurrentMaxRate::Id, credsIssuerConfig),              // | 
|  | make_unique<SubscribeAttribute>(Id, "overrun-count", Attributes::OverrunCount::Id, credsIssuerConfig),                   // | 
|  | make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig),  // | 
|  | make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),    // | 
|  | make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                         // | 
|  | make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                 // | 
|  | make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                       // | 
|  | make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),             // | 
|  | // | 
|  | // Events | 
|  | // | 
|  | make_unique<ReadEvent>(Id, credsIssuerConfig),                                                             // | 
|  | make_unique<ReadEvent>(Id, "disconnection", Events::Disconnection::Id, credsIssuerConfig),                 // | 
|  | make_unique<ReadEvent>(Id, "association-failure", Events::AssociationFailure::Id, credsIssuerConfig),      // | 
|  | make_unique<ReadEvent>(Id, "connection-status", Events::ConnectionStatus::Id, credsIssuerConfig),          // | 
|  | make_unique<SubscribeEvent>(Id, credsIssuerConfig),                                                        // | 
|  | make_unique<SubscribeEvent>(Id, "disconnection", Events::Disconnection::Id, credsIssuerConfig),            // | 
|  | make_unique<SubscribeEvent>(Id, "association-failure", Events::AssociationFailure::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeEvent>(Id, "connection-status", Events::ConnectionStatus::Id, credsIssuerConfig),     // | 
|  | }; | 
|  |  | 
|  | commands.Register(clusterName, clusterCommands); | 
|  | } | 
|  | void registerClusterEthernetNetworkDiagnostics(Commands & commands, CredentialIssuerCommands * credsIssuerConfig) | 
|  | { | 
|  | using namespace chip::app::Clusters::EthernetNetworkDiagnostics; | 
|  |  | 
|  | const char * clusterName = "EthernetNetworkDiagnostics"; | 
|  |  | 
|  | commands_list clusterCommands = { | 
|  | // | 
|  | // Commands | 
|  | // | 
|  | make_unique<ClusterCommand>(Id, credsIssuerConfig),                    // | 
|  | make_unique<EthernetNetworkDiagnosticsResetCounts>(credsIssuerConfig), // | 
|  | // | 
|  | // Attributes | 
|  | // | 
|  | make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<ReadAttribute>(Id, "phyrate", Attributes::PHYRate::Id, credsIssuerConfig),                             // | 
|  | make_unique<ReadAttribute>(Id, "full-duplex", Attributes::FullDuplex::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "packet-rx-count", Attributes::PacketRxCount::Id, credsIssuerConfig),               // | 
|  | make_unique<ReadAttribute>(Id, "packet-tx-count", Attributes::PacketTxCount::Id, credsIssuerConfig),               // | 
|  | make_unique<ReadAttribute>(Id, "tx-err-count", Attributes::TxErrCount::Id, credsIssuerConfig),                     // | 
|  | make_unique<ReadAttribute>(Id, "collision-count", Attributes::CollisionCount::Id, credsIssuerConfig),              // | 
|  | make_unique<ReadAttribute>(Id, "overrun-count", Attributes::OverrunCount::Id, credsIssuerConfig),                  // | 
|  | make_unique<ReadAttribute>(Id, "carrier-detect", Attributes::CarrierDetect::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "time-since-reset", Attributes::TimeSinceReset::Id, credsIssuerConfig),             // | 
|  | make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<chip::app::Clusters::EthernetNetworkDiagnostics::PHYRateEnum>>>( | 
|  | Id, "phyrate", 0, UINT8_MAX, Attributes::PHYRate::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<bool>>>(Id, "full-duplex", 0, 1, Attributes::FullDuplex::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint64_t>>(Id, "packet-rx-count", 0, UINT64_MAX, Attributes::PacketRxCount::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint64_t>>(Id, "packet-tx-count", 0, UINT64_MAX, Attributes::PacketTxCount::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint64_t>>(Id, "tx-err-count", 0, UINT64_MAX, Attributes::TxErrCount::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint64_t>>(Id, "collision-count", 0, UINT64_MAX, Attributes::CollisionCount::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint64_t>>(Id, "overrun-count", 0, UINT64_MAX, Attributes::OverrunCount::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<bool>>>(Id, "carrier-detect", 0, 1, Attributes::CarrierDetect::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint64_t>>(Id, "time-since-reset", 0, UINT64_MAX, Attributes::TimeSinceReset::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>( | 
|  | Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>( | 
|  | Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig),                                // | 
|  | make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<SubscribeAttribute>(Id, "phyrate", Attributes::PHYRate::Id, credsIssuerConfig),                             // | 
|  | make_unique<SubscribeAttribute>(Id, "full-duplex", Attributes::FullDuplex::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "packet-rx-count", Attributes::PacketRxCount::Id, credsIssuerConfig),               // | 
|  | make_unique<SubscribeAttribute>(Id, "packet-tx-count", Attributes::PacketTxCount::Id, credsIssuerConfig),               // | 
|  | make_unique<SubscribeAttribute>(Id, "tx-err-count", Attributes::TxErrCount::Id, credsIssuerConfig),                     // | 
|  | make_unique<SubscribeAttribute>(Id, "collision-count", Attributes::CollisionCount::Id, credsIssuerConfig),              // | 
|  | make_unique<SubscribeAttribute>(Id, "overrun-count", Attributes::OverrunCount::Id, credsIssuerConfig),                  // | 
|  | make_unique<SubscribeAttribute>(Id, "carrier-detect", Attributes::CarrierDetect::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "time-since-reset", Attributes::TimeSinceReset::Id, credsIssuerConfig),             // | 
|  | make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | // | 
|  | // Events | 
|  | // | 
|  | make_unique<ReadEvent>(Id, credsIssuerConfig),      // | 
|  | make_unique<SubscribeEvent>(Id, credsIssuerConfig), // | 
|  | }; | 
|  |  | 
|  | commands.Register(clusterName, clusterCommands); | 
|  | } | 
|  | void registerClusterTimeSynchronization(Commands & commands, CredentialIssuerCommands * credsIssuerConfig) | 
|  | { | 
|  | using namespace chip::app::Clusters::TimeSynchronization; | 
|  |  | 
|  | const char * clusterName = "TimeSynchronization"; | 
|  |  | 
|  | commands_list clusterCommands = { | 
|  | // | 
|  | // Commands | 
|  | // | 
|  | make_unique<ClusterCommand>(Id, credsIssuerConfig),                      // | 
|  | make_unique<TimeSynchronizationSetUTCTime>(credsIssuerConfig),           // | 
|  | make_unique<TimeSynchronizationSetTrustedTimeSource>(credsIssuerConfig), // | 
|  | make_unique<TimeSynchronizationSetTimeZone>(credsIssuerConfig),          // | 
|  | make_unique<TimeSynchronizationSetDSTOffset>(credsIssuerConfig),         // | 
|  | make_unique<TimeSynchronizationSetDefaultNTP>(credsIssuerConfig),        // | 
|  | // | 
|  | // Attributes | 
|  | // | 
|  | make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                  // | 
|  | make_unique<ReadAttribute>(Id, "utctime", Attributes::UTCTime::Id, credsIssuerConfig),                              // | 
|  | make_unique<ReadAttribute>(Id, "granularity", Attributes::Granularity::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "time-source", Attributes::TimeSource::Id, credsIssuerConfig),                       // | 
|  | make_unique<ReadAttribute>(Id, "trusted-time-source", Attributes::TrustedTimeSource::Id, credsIssuerConfig),        // | 
|  | make_unique<ReadAttribute>(Id, "default-ntp", Attributes::DefaultNTP::Id, credsIssuerConfig),                       // | 
|  | make_unique<ReadAttribute>(Id, "time-zone", Attributes::TimeZone::Id, credsIssuerConfig),                           // | 
|  | make_unique<ReadAttribute>(Id, "dstoffset", Attributes::DSTOffset::Id, credsIssuerConfig),                          // | 
|  | make_unique<ReadAttribute>(Id, "local-time", Attributes::LocalTime::Id, credsIssuerConfig),                         // | 
|  | make_unique<ReadAttribute>(Id, "time-zone-database", Attributes::TimeZoneDatabase::Id, credsIssuerConfig),          // | 
|  | make_unique<ReadAttribute>(Id, "ntpserver-available", Attributes::NTPServerAvailable::Id, credsIssuerConfig),       // | 
|  | make_unique<ReadAttribute>(Id, "time-zone-list-max-size", Attributes::TimeZoneListMaxSize::Id, credsIssuerConfig),  // | 
|  | make_unique<ReadAttribute>(Id, "dstoffset-list-max-size", Attributes::DSTOffsetListMaxSize::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "supports-dnsresolve", Attributes::SupportsDNSResolve::Id, credsIssuerConfig),       // | 
|  | make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig),  // | 
|  | make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),    // | 
|  | make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                         // | 
|  | make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                 // | 
|  | make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                       // | 
|  | make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),             // | 
|  | make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                               // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint64_t>>>(Id, "utctime", 0, UINT64_MAX, Attributes::UTCTime::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::Clusters::TimeSynchronization::GranularityEnum>>( | 
|  | Id, "granularity", 0, UINT8_MAX, Attributes::Granularity::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::Clusters::TimeSynchronization::TimeSourceEnum>>( | 
|  | Id, "time-source", 0, UINT8_MAX, Attributes::TimeSource::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex< | 
|  | chip::app::DataModel::Nullable<chip::app::Clusters::TimeSynchronization::Structs::TrustedTimeSourceStruct::Type>>>( | 
|  | Id, "trusted-time-source", Attributes::TrustedTimeSource::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<chip::CharSpan>>>( | 
|  | Id, "default-ntp", Attributes::DefaultNTP::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex< | 
|  | chip::app::DataModel::List<const chip::app::Clusters::TimeSynchronization::Structs::TimeZoneStruct::Type>>>( | 
|  | Id, "time-zone", Attributes::TimeZone::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex< | 
|  | chip::app::DataModel::List<const chip::app::Clusters::TimeSynchronization::Structs::DSTOffsetStruct::Type>>>( | 
|  | Id, "dstoffset", Attributes::DSTOffset::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint64_t>>>( | 
|  | Id, "local-time", 0, UINT64_MAX, Attributes::LocalTime::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::Clusters::TimeSynchronization::TimeZoneDatabaseEnum>>( | 
|  | Id, "time-zone-database", 0, UINT8_MAX, Attributes::TimeZoneDatabase::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<bool>>(Id, "ntpserver-available", 0, 1, Attributes::NTPServerAvailable::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "time-zone-list-max-size", 0, UINT8_MAX, Attributes::TimeZoneListMaxSize::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "dstoffset-list-max-size", 0, UINT8_MAX, Attributes::DSTOffsetListMaxSize::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<bool>>(Id, "supports-dnsresolve", 0, 1, Attributes::SupportsDNSResolve::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>( | 
|  | Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>( | 
|  | Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig),                                 // | 
|  | make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                                  // | 
|  | make_unique<SubscribeAttribute>(Id, "utctime", Attributes::UTCTime::Id, credsIssuerConfig),                              // | 
|  | make_unique<SubscribeAttribute>(Id, "granularity", Attributes::Granularity::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "time-source", Attributes::TimeSource::Id, credsIssuerConfig),                       // | 
|  | make_unique<SubscribeAttribute>(Id, "trusted-time-source", Attributes::TrustedTimeSource::Id, credsIssuerConfig),        // | 
|  | make_unique<SubscribeAttribute>(Id, "default-ntp", Attributes::DefaultNTP::Id, credsIssuerConfig),                       // | 
|  | make_unique<SubscribeAttribute>(Id, "time-zone", Attributes::TimeZone::Id, credsIssuerConfig),                           // | 
|  | make_unique<SubscribeAttribute>(Id, "dstoffset", Attributes::DSTOffset::Id, credsIssuerConfig),                          // | 
|  | make_unique<SubscribeAttribute>(Id, "local-time", Attributes::LocalTime::Id, credsIssuerConfig),                         // | 
|  | make_unique<SubscribeAttribute>(Id, "time-zone-database", Attributes::TimeZoneDatabase::Id, credsIssuerConfig),          // | 
|  | make_unique<SubscribeAttribute>(Id, "ntpserver-available", Attributes::NTPServerAvailable::Id, credsIssuerConfig),       // | 
|  | make_unique<SubscribeAttribute>(Id, "time-zone-list-max-size", Attributes::TimeZoneListMaxSize::Id, credsIssuerConfig),  // | 
|  | make_unique<SubscribeAttribute>(Id, "dstoffset-list-max-size", Attributes::DSTOffsetListMaxSize::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "supports-dnsresolve", Attributes::SupportsDNSResolve::Id, credsIssuerConfig),       // | 
|  | make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig),  // | 
|  | make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),    // | 
|  | make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                         // | 
|  | make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                 // | 
|  | make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                       // | 
|  | make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),             // | 
|  | // | 
|  | // Events | 
|  | // | 
|  | make_unique<ReadEvent>(Id, credsIssuerConfig),                                                                           // | 
|  | make_unique<ReadEvent>(Id, "dsttable-empty", Events::DSTTableEmpty::Id, credsIssuerConfig),                              // | 
|  | make_unique<ReadEvent>(Id, "dststatus", Events::DSTStatus::Id, credsIssuerConfig),                                       // | 
|  | make_unique<ReadEvent>(Id, "time-zone-status", Events::TimeZoneStatus::Id, credsIssuerConfig),                           // | 
|  | make_unique<ReadEvent>(Id, "time-failure", Events::TimeFailure::Id, credsIssuerConfig),                                  // | 
|  | make_unique<ReadEvent>(Id, "missing-trusted-time-source", Events::MissingTrustedTimeSource::Id, credsIssuerConfig),      // | 
|  | make_unique<SubscribeEvent>(Id, credsIssuerConfig),                                                                      // | 
|  | make_unique<SubscribeEvent>(Id, "dsttable-empty", Events::DSTTableEmpty::Id, credsIssuerConfig),                         // | 
|  | make_unique<SubscribeEvent>(Id, "dststatus", Events::DSTStatus::Id, credsIssuerConfig),                                  // | 
|  | make_unique<SubscribeEvent>(Id, "time-zone-status", Events::TimeZoneStatus::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeEvent>(Id, "time-failure", Events::TimeFailure::Id, credsIssuerConfig),                             // | 
|  | make_unique<SubscribeEvent>(Id, "missing-trusted-time-source", Events::MissingTrustedTimeSource::Id, credsIssuerConfig), // | 
|  | }; | 
|  |  | 
|  | commands.Register(clusterName, clusterCommands); | 
|  | } | 
|  | void registerClusterBridgedDeviceBasicInformation(Commands & commands, CredentialIssuerCommands * credsIssuerConfig) | 
|  | { | 
|  | using namespace chip::app::Clusters::BridgedDeviceBasicInformation; | 
|  |  | 
|  | const char * clusterName = "BridgedDeviceBasicInformation"; | 
|  |  | 
|  | commands_list clusterCommands = { | 
|  | // | 
|  | // Commands | 
|  | // | 
|  | make_unique<ClusterCommand>(Id, credsIssuerConfig), // | 
|  | // | 
|  | // Attributes | 
|  | // | 
|  | make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                   // | 
|  | make_unique<ReadAttribute>(Id, "vendor-name", Attributes::VendorName::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "vendor-id", Attributes::VendorID::Id, credsIssuerConfig),                            // | 
|  | make_unique<ReadAttribute>(Id, "product-name", Attributes::ProductName::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "node-label", Attributes::NodeLabel::Id, credsIssuerConfig),                          // | 
|  | make_unique<ReadAttribute>(Id, "hardware-version", Attributes::HardwareVersion::Id, credsIssuerConfig),              // | 
|  | make_unique<ReadAttribute>(Id, "hardware-version-string", Attributes::HardwareVersionString::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "software-version", Attributes::SoftwareVersion::Id, credsIssuerConfig),              // | 
|  | make_unique<ReadAttribute>(Id, "software-version-string", Attributes::SoftwareVersionString::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "manufacturing-date", Attributes::ManufacturingDate::Id, credsIssuerConfig),          // | 
|  | make_unique<ReadAttribute>(Id, "part-number", Attributes::PartNumber::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "product-url", Attributes::ProductURL::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "product-label", Attributes::ProductLabel::Id, credsIssuerConfig),                    // | 
|  | make_unique<ReadAttribute>(Id, "serial-number", Attributes::SerialNumber::Id, credsIssuerConfig),                    // | 
|  | make_unique<ReadAttribute>(Id, "reachable", Attributes::Reachable::Id, credsIssuerConfig),                           // | 
|  | make_unique<ReadAttribute>(Id, "unique-id", Attributes::UniqueID::Id, credsIssuerConfig),                            // | 
|  | make_unique<ReadAttribute>(Id, "product-appearance", Attributes::ProductAppearance::Id, credsIssuerConfig),          // | 
|  | make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),     // | 
|  | make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                          // | 
|  | make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                  // | 
|  | make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),              // | 
|  | make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                                // | 
|  | make_unique<WriteAttribute<chip::CharSpan>>(Id, "vendor-name", Attributes::VendorName::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::VendorId>>(Id, "vendor-id", 0, UINT16_MAX, Attributes::VendorID::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::CharSpan>>(Id, "product-name", Attributes::ProductName::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::CharSpan>>(Id, "node-label", Attributes::NodeLabel::Id, WriteCommandType::kWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "hardware-version", 0, UINT16_MAX, Attributes::HardwareVersion::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::CharSpan>>(Id, "hardware-version-string", Attributes::HardwareVersionString::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "software-version", 0, UINT32_MAX, Attributes::SoftwareVersion::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::CharSpan>>(Id, "software-version-string", Attributes::SoftwareVersionString::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::CharSpan>>(Id, "manufacturing-date", Attributes::ManufacturingDate::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::CharSpan>>(Id, "part-number", Attributes::PartNumber::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::CharSpan>>(Id, "product-url", Attributes::ProductURL::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::CharSpan>>(Id, "product-label", Attributes::ProductLabel::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::CharSpan>>(Id, "serial-number", Attributes::SerialNumber::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<bool>>(Id, "reachable", 0, 1, Attributes::Reachable::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::CharSpan>>(Id, "unique-id", Attributes::UniqueID::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique< | 
|  | WriteAttributeAsComplex<chip::app::Clusters::BridgedDeviceBasicInformation::Structs::ProductAppearanceStruct::Type>>( | 
|  | Id, "product-appearance", Attributes::ProductAppearance::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>( | 
|  | Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>( | 
|  | Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig),                                  // | 
|  | make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                                   // | 
|  | make_unique<SubscribeAttribute>(Id, "vendor-name", Attributes::VendorName::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "vendor-id", Attributes::VendorID::Id, credsIssuerConfig),                            // | 
|  | make_unique<SubscribeAttribute>(Id, "product-name", Attributes::ProductName::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "node-label", Attributes::NodeLabel::Id, credsIssuerConfig),                          // | 
|  | make_unique<SubscribeAttribute>(Id, "hardware-version", Attributes::HardwareVersion::Id, credsIssuerConfig),              // | 
|  | make_unique<SubscribeAttribute>(Id, "hardware-version-string", Attributes::HardwareVersionString::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "software-version", Attributes::SoftwareVersion::Id, credsIssuerConfig),              // | 
|  | make_unique<SubscribeAttribute>(Id, "software-version-string", Attributes::SoftwareVersionString::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "manufacturing-date", Attributes::ManufacturingDate::Id, credsIssuerConfig),          // | 
|  | make_unique<SubscribeAttribute>(Id, "part-number", Attributes::PartNumber::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "product-url", Attributes::ProductURL::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "product-label", Attributes::ProductLabel::Id, credsIssuerConfig),                    // | 
|  | make_unique<SubscribeAttribute>(Id, "serial-number", Attributes::SerialNumber::Id, credsIssuerConfig),                    // | 
|  | make_unique<SubscribeAttribute>(Id, "reachable", Attributes::Reachable::Id, credsIssuerConfig),                           // | 
|  | make_unique<SubscribeAttribute>(Id, "unique-id", Attributes::UniqueID::Id, credsIssuerConfig),                            // | 
|  | make_unique<SubscribeAttribute>(Id, "product-appearance", Attributes::ProductAppearance::Id, credsIssuerConfig),          // | 
|  | make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),     // | 
|  | make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                          // | 
|  | make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                  // | 
|  | make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),              // | 
|  | // | 
|  | // Events | 
|  | // | 
|  | make_unique<ReadEvent>(Id, credsIssuerConfig),                                                         // | 
|  | make_unique<ReadEvent>(Id, "start-up", Events::StartUp::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadEvent>(Id, "shut-down", Events::ShutDown::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadEvent>(Id, "leave", Events::Leave::Id, credsIssuerConfig),                             // | 
|  | make_unique<ReadEvent>(Id, "reachable-changed", Events::ReachableChanged::Id, credsIssuerConfig),      // | 
|  | make_unique<SubscribeEvent>(Id, credsIssuerConfig),                                                    // | 
|  | make_unique<SubscribeEvent>(Id, "start-up", Events::StartUp::Id, credsIssuerConfig),                   // | 
|  | make_unique<SubscribeEvent>(Id, "shut-down", Events::ShutDown::Id, credsIssuerConfig),                 // | 
|  | make_unique<SubscribeEvent>(Id, "leave", Events::Leave::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeEvent>(Id, "reachable-changed", Events::ReachableChanged::Id, credsIssuerConfig), // | 
|  | }; | 
|  |  | 
|  | commands.Register(clusterName, clusterCommands); | 
|  | } | 
|  | void registerClusterSwitch(Commands & commands, CredentialIssuerCommands * credsIssuerConfig) | 
|  | { | 
|  | using namespace chip::app::Clusters::Switch; | 
|  |  | 
|  | const char * clusterName = "Switch"; | 
|  |  | 
|  | commands_list clusterCommands = { | 
|  | // | 
|  | // Commands | 
|  | // | 
|  | make_unique<ClusterCommand>(Id, credsIssuerConfig), // | 
|  | // | 
|  | // Attributes | 
|  | // | 
|  | make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<ReadAttribute>(Id, "number-of-positions", Attributes::NumberOfPositions::Id, credsIssuerConfig),       // | 
|  | make_unique<ReadAttribute>(Id, "current-position", Attributes::CurrentPosition::Id, credsIssuerConfig),            // | 
|  | make_unique<ReadAttribute>(Id, "multi-press-max", Attributes::MultiPressMax::Id, credsIssuerConfig),               // | 
|  | make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "number-of-positions", 0, UINT8_MAX, Attributes::NumberOfPositions::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "current-position", 0, UINT8_MAX, Attributes::CurrentPosition::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "multi-press-max", 0, UINT8_MAX, Attributes::MultiPressMax::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>( | 
|  | Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>( | 
|  | Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig),                                // | 
|  | make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<SubscribeAttribute>(Id, "number-of-positions", Attributes::NumberOfPositions::Id, credsIssuerConfig),       // | 
|  | make_unique<SubscribeAttribute>(Id, "current-position", Attributes::CurrentPosition::Id, credsIssuerConfig),            // | 
|  | make_unique<SubscribeAttribute>(Id, "multi-press-max", Attributes::MultiPressMax::Id, credsIssuerConfig),               // | 
|  | make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | // | 
|  | // Events | 
|  | // | 
|  | make_unique<ReadEvent>(Id, credsIssuerConfig),                                                              // | 
|  | make_unique<ReadEvent>(Id, "switch-latched", Events::SwitchLatched::Id, credsIssuerConfig),                 // | 
|  | make_unique<ReadEvent>(Id, "initial-press", Events::InitialPress::Id, credsIssuerConfig),                   // | 
|  | make_unique<ReadEvent>(Id, "long-press", Events::LongPress::Id, credsIssuerConfig),                         // | 
|  | make_unique<ReadEvent>(Id, "short-release", Events::ShortRelease::Id, credsIssuerConfig),                   // | 
|  | make_unique<ReadEvent>(Id, "long-release", Events::LongRelease::Id, credsIssuerConfig),                     // | 
|  | make_unique<ReadEvent>(Id, "multi-press-ongoing", Events::MultiPressOngoing::Id, credsIssuerConfig),        // | 
|  | make_unique<ReadEvent>(Id, "multi-press-complete", Events::MultiPressComplete::Id, credsIssuerConfig),      // | 
|  | make_unique<SubscribeEvent>(Id, credsIssuerConfig),                                                         // | 
|  | make_unique<SubscribeEvent>(Id, "switch-latched", Events::SwitchLatched::Id, credsIssuerConfig),            // | 
|  | make_unique<SubscribeEvent>(Id, "initial-press", Events::InitialPress::Id, credsIssuerConfig),              // | 
|  | make_unique<SubscribeEvent>(Id, "long-press", Events::LongPress::Id, credsIssuerConfig),                    // | 
|  | make_unique<SubscribeEvent>(Id, "short-release", Events::ShortRelease::Id, credsIssuerConfig),              // | 
|  | make_unique<SubscribeEvent>(Id, "long-release", Events::LongRelease::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeEvent>(Id, "multi-press-ongoing", Events::MultiPressOngoing::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeEvent>(Id, "multi-press-complete", Events::MultiPressComplete::Id, credsIssuerConfig), // | 
|  | }; | 
|  |  | 
|  | commands.Register(clusterName, clusterCommands); | 
|  | } | 
|  | void registerClusterAdministratorCommissioning(Commands & commands, CredentialIssuerCommands * credsIssuerConfig) | 
|  | { | 
|  | using namespace chip::app::Clusters::AdministratorCommissioning; | 
|  |  | 
|  | const char * clusterName = "AdministratorCommissioning"; | 
|  |  | 
|  | commands_list clusterCommands = { | 
|  | // | 
|  | // Commands | 
|  | // | 
|  | make_unique<ClusterCommand>(Id, credsIssuerConfig),                                     // | 
|  | make_unique<AdministratorCommissioningOpenCommissioningWindow>(credsIssuerConfig),      // | 
|  | make_unique<AdministratorCommissioningOpenBasicCommissioningWindow>(credsIssuerConfig), // | 
|  | make_unique<AdministratorCommissioningRevokeCommissioning>(credsIssuerConfig),          // | 
|  | // | 
|  | // Attributes | 
|  | // | 
|  | make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<ReadAttribute>(Id, "window-status", Attributes::WindowStatus::Id, credsIssuerConfig),                  // | 
|  | make_unique<ReadAttribute>(Id, "admin-fabric-index", Attributes::AdminFabricIndex::Id, credsIssuerConfig),         // | 
|  | make_unique<ReadAttribute>(Id, "admin-vendor-id", Attributes::AdminVendorId::Id, credsIssuerConfig),               // | 
|  | make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              // | 
|  | make_unique<WriteAttribute<chip::app::Clusters::AdministratorCommissioning::CommissioningWindowStatusEnum>>( | 
|  | Id, "window-status", 0, UINT8_MAX, Attributes::WindowStatus::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<chip::FabricIndex>>>( | 
|  | Id, "admin-fabric-index", 0, UINT8_MAX, Attributes::AdminFabricIndex::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint16_t>>>(Id, "admin-vendor-id", 0, UINT16_MAX, | 
|  | Attributes::AdminVendorId::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>( | 
|  | Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>( | 
|  | Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig),                                // | 
|  | make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<SubscribeAttribute>(Id, "window-status", Attributes::WindowStatus::Id, credsIssuerConfig),                  // | 
|  | make_unique<SubscribeAttribute>(Id, "admin-fabric-index", Attributes::AdminFabricIndex::Id, credsIssuerConfig),         // | 
|  | make_unique<SubscribeAttribute>(Id, "admin-vendor-id", Attributes::AdminVendorId::Id, credsIssuerConfig),               // | 
|  | make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | // | 
|  | // Events | 
|  | // | 
|  | make_unique<ReadEvent>(Id, credsIssuerConfig),      // | 
|  | make_unique<SubscribeEvent>(Id, credsIssuerConfig), // | 
|  | }; | 
|  |  | 
|  | commands.Register(clusterName, clusterCommands); | 
|  | } | 
|  | void registerClusterOperationalCredentials(Commands & commands, CredentialIssuerCommands * credsIssuerConfig) | 
|  | { | 
|  | using namespace chip::app::Clusters::OperationalCredentials; | 
|  |  | 
|  | const char * clusterName = "OperationalCredentials"; | 
|  |  | 
|  | commands_list clusterCommands = { | 
|  | // | 
|  | // Commands | 
|  | // | 
|  | make_unique<ClusterCommand>(Id, credsIssuerConfig),                              // | 
|  | make_unique<OperationalCredentialsAttestationRequest>(credsIssuerConfig),        // | 
|  | make_unique<OperationalCredentialsCertificateChainRequest>(credsIssuerConfig),   // | 
|  | make_unique<OperationalCredentialsCSRRequest>(credsIssuerConfig),                // | 
|  | make_unique<OperationalCredentialsAddNOC>(credsIssuerConfig),                    // | 
|  | make_unique<OperationalCredentialsUpdateNOC>(credsIssuerConfig),                 // | 
|  | make_unique<OperationalCredentialsUpdateFabricLabel>(credsIssuerConfig),         // | 
|  | make_unique<OperationalCredentialsRemoveFabric>(credsIssuerConfig),              // | 
|  | make_unique<OperationalCredentialsAddTrustedRootCertificate>(credsIssuerConfig), // | 
|  | // | 
|  | // Attributes | 
|  | // | 
|  | make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                       // | 
|  | make_unique<ReadAttribute>(Id, "nocs", Attributes::NOCs::Id, credsIssuerConfig),                                         // | 
|  | make_unique<ReadAttribute>(Id, "fabrics", Attributes::Fabrics::Id, credsIssuerConfig),                                   // | 
|  | make_unique<ReadAttribute>(Id, "supported-fabrics", Attributes::SupportedFabrics::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "commissioned-fabrics", Attributes::CommissionedFabrics::Id, credsIssuerConfig),          // | 
|  | make_unique<ReadAttribute>(Id, "trusted-root-certificates", Attributes::TrustedRootCertificates::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "current-fabric-index", Attributes::CurrentFabricIndex::Id, credsIssuerConfig),           // | 
|  | make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig),       // | 
|  | make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),         // | 
|  | make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                              // | 
|  | make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                            // | 
|  | make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),                  // | 
|  | make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                                    // | 
|  | make_unique<WriteAttributeAsComplex< | 
|  | chip::app::DataModel::List<const chip::app::Clusters::OperationalCredentials::Structs::NOCStruct::Type>>>( | 
|  | Id, "nocs", Attributes::NOCs::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex< | 
|  | chip::app::DataModel::List<const chip::app::Clusters::OperationalCredentials::Structs::FabricDescriptorStruct::Type>>>( | 
|  | Id, "fabrics", Attributes::Fabrics::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "supported-fabrics", 0, UINT8_MAX, Attributes::SupportedFabrics::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "commissioned-fabrics", 0, UINT8_MAX, Attributes::CommissionedFabrics::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::ByteSpan>>>( | 
|  | Id, "trusted-root-certificates", Attributes::TrustedRootCertificates::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "current-fabric-index", 0, UINT8_MAX, Attributes::CurrentFabricIndex::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>( | 
|  | Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>( | 
|  | Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig),                             // | 
|  | make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                              // | 
|  | make_unique<SubscribeAttribute>(Id, "nocs", Attributes::NOCs::Id, credsIssuerConfig),                                // | 
|  | make_unique<SubscribeAttribute>(Id, "fabrics", Attributes::Fabrics::Id, credsIssuerConfig),                          // | 
|  | make_unique<SubscribeAttribute>(Id, "supported-fabrics", Attributes::SupportedFabrics::Id, credsIssuerConfig),       // | 
|  | make_unique<SubscribeAttribute>(Id, "commissioned-fabrics", Attributes::CommissionedFabrics::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "trusted-root-certificates", Attributes::TrustedRootCertificates::Id, | 
|  | credsIssuerConfig),                                                                     // | 
|  | make_unique<SubscribeAttribute>(Id, "current-fabric-index", Attributes::CurrentFabricIndex::Id, credsIssuerConfig),     // | 
|  | make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | // | 
|  | // Events | 
|  | // | 
|  | make_unique<ReadEvent>(Id, credsIssuerConfig),      // | 
|  | make_unique<SubscribeEvent>(Id, credsIssuerConfig), // | 
|  | }; | 
|  |  | 
|  | commands.Register(clusterName, clusterCommands); | 
|  | } | 
|  | void registerClusterGroupKeyManagement(Commands & commands, CredentialIssuerCommands * credsIssuerConfig) | 
|  | { | 
|  | using namespace chip::app::Clusters::GroupKeyManagement; | 
|  |  | 
|  | const char * clusterName = "GroupKeyManagement"; | 
|  |  | 
|  | commands_list clusterCommands = { | 
|  | // | 
|  | // Commands | 
|  | // | 
|  | make_unique<ClusterCommand>(Id, credsIssuerConfig),                     // | 
|  | make_unique<GroupKeyManagementKeySetWrite>(credsIssuerConfig),          // | 
|  | make_unique<GroupKeyManagementKeySetRead>(credsIssuerConfig),           // | 
|  | make_unique<GroupKeyManagementKeySetRemove>(credsIssuerConfig),         // | 
|  | make_unique<GroupKeyManagementKeySetReadAllIndices>(credsIssuerConfig), // | 
|  | // | 
|  | // Attributes | 
|  | // | 
|  | make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                     // | 
|  | make_unique<ReadAttribute>(Id, "group-key-map", Attributes::GroupKeyMap::Id, credsIssuerConfig),                       // | 
|  | make_unique<ReadAttribute>(Id, "group-table", Attributes::GroupTable::Id, credsIssuerConfig),                          // | 
|  | make_unique<ReadAttribute>(Id, "max-groups-per-fabric", Attributes::MaxGroupsPerFabric::Id, credsIssuerConfig),        // | 
|  | make_unique<ReadAttribute>(Id, "max-group-keys-per-fabric", Attributes::MaxGroupKeysPerFabric::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig),     // | 
|  | make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),       // | 
|  | make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                            // | 
|  | make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                    // | 
|  | make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                          // | 
|  | make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),                // | 
|  | make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                                  // | 
|  | make_unique<WriteAttributeAsComplex< | 
|  | chip::app::DataModel::List<const chip::app::Clusters::GroupKeyManagement::Structs::GroupKeyMapStruct::Type>>>( | 
|  | Id, "group-key-map", Attributes::GroupKeyMap::Id, WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex< | 
|  | chip::app::DataModel::List<const chip::app::Clusters::GroupKeyManagement::Structs::GroupInfoMapStruct::Type>>>( | 
|  | Id, "group-table", Attributes::GroupTable::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "max-groups-per-fabric", 0, UINT16_MAX, Attributes::MaxGroupsPerFabric::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "max-group-keys-per-fabric", 0, UINT16_MAX, Attributes::MaxGroupKeysPerFabric::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>( | 
|  | Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>( | 
|  | Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig),                             // | 
|  | make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                              // | 
|  | make_unique<SubscribeAttribute>(Id, "group-key-map", Attributes::GroupKeyMap::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "group-table", Attributes::GroupTable::Id, credsIssuerConfig),                   // | 
|  | make_unique<SubscribeAttribute>(Id, "max-groups-per-fabric", Attributes::MaxGroupsPerFabric::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "max-group-keys-per-fabric", Attributes::MaxGroupKeysPerFabric::Id, | 
|  | credsIssuerConfig),                                                                     // | 
|  | make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | // | 
|  | // Events | 
|  | // | 
|  | make_unique<ReadEvent>(Id, credsIssuerConfig),      // | 
|  | make_unique<SubscribeEvent>(Id, credsIssuerConfig), // | 
|  | }; | 
|  |  | 
|  | commands.Register(clusterName, clusterCommands); | 
|  | } | 
|  | void registerClusterFixedLabel(Commands & commands, CredentialIssuerCommands * credsIssuerConfig) | 
|  | { | 
|  | using namespace chip::app::Clusters::FixedLabel; | 
|  |  | 
|  | const char * clusterName = "FixedLabel"; | 
|  |  | 
|  | commands_list clusterCommands = { | 
|  | // | 
|  | // Commands | 
|  | // | 
|  | make_unique<ClusterCommand>(Id, credsIssuerConfig), // | 
|  | // | 
|  | // Attributes | 
|  | // | 
|  | make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<ReadAttribute>(Id, "label-list", Attributes::LabelList::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              // | 
|  | make_unique< | 
|  | WriteAttributeAsComplex<chip::app::DataModel::List<const chip::app::Clusters::FixedLabel::Structs::LabelStruct::Type>>>( | 
|  | Id, "label-list", Attributes::LabelList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>( | 
|  | Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>( | 
|  | Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig),                                // | 
|  | make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<SubscribeAttribute>(Id, "label-list", Attributes::LabelList::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | // | 
|  | // Events | 
|  | // | 
|  | make_unique<ReadEvent>(Id, credsIssuerConfig),      // | 
|  | make_unique<SubscribeEvent>(Id, credsIssuerConfig), // | 
|  | }; | 
|  |  | 
|  | commands.Register(clusterName, clusterCommands); | 
|  | } | 
|  | void registerClusterUserLabel(Commands & commands, CredentialIssuerCommands * credsIssuerConfig) | 
|  | { | 
|  | using namespace chip::app::Clusters::UserLabel; | 
|  |  | 
|  | const char * clusterName = "UserLabel"; | 
|  |  | 
|  | commands_list clusterCommands = { | 
|  | // | 
|  | // Commands | 
|  | // | 
|  | make_unique<ClusterCommand>(Id, credsIssuerConfig), // | 
|  | // | 
|  | // Attributes | 
|  | // | 
|  | make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<ReadAttribute>(Id, "label-list", Attributes::LabelList::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              // | 
|  | make_unique< | 
|  | WriteAttributeAsComplex<chip::app::DataModel::List<const chip::app::Clusters::UserLabel::Structs::LabelStruct::Type>>>( | 
|  | Id, "label-list", Attributes::LabelList::Id, WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>( | 
|  | Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>( | 
|  | Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig),                                // | 
|  | make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<SubscribeAttribute>(Id, "label-list", Attributes::LabelList::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | // | 
|  | // Events | 
|  | // | 
|  | make_unique<ReadEvent>(Id, credsIssuerConfig),      // | 
|  | make_unique<SubscribeEvent>(Id, credsIssuerConfig), // | 
|  | }; | 
|  |  | 
|  | commands.Register(clusterName, clusterCommands); | 
|  | } | 
|  | void registerClusterProxyConfiguration(Commands & commands, CredentialIssuerCommands * credsIssuerConfig) | 
|  | { | 
|  | using namespace chip::app::Clusters::ProxyConfiguration; | 
|  |  | 
|  | const char * clusterName = "ProxyConfiguration"; | 
|  |  | 
|  | commands_list clusterCommands = { | 
|  | // | 
|  | // Commands | 
|  | // | 
|  | make_unique<ClusterCommand>(Id, credsIssuerConfig), // | 
|  | // | 
|  | // Attributes | 
|  | // | 
|  | make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>( | 
|  | Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>( | 
|  | Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig),                                // | 
|  | make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | // | 
|  | // Events | 
|  | // | 
|  | make_unique<ReadEvent>(Id, credsIssuerConfig),      // | 
|  | make_unique<SubscribeEvent>(Id, credsIssuerConfig), // | 
|  | }; | 
|  |  | 
|  | commands.Register(clusterName, clusterCommands); | 
|  | } | 
|  | void registerClusterProxyDiscovery(Commands & commands, CredentialIssuerCommands * credsIssuerConfig) | 
|  | { | 
|  | using namespace chip::app::Clusters::ProxyDiscovery; | 
|  |  | 
|  | const char * clusterName = "ProxyDiscovery"; | 
|  |  | 
|  | commands_list clusterCommands = { | 
|  | // | 
|  | // Commands | 
|  | // | 
|  | make_unique<ClusterCommand>(Id, credsIssuerConfig), // | 
|  | // | 
|  | // Attributes | 
|  | // | 
|  | make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>( | 
|  | Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>( | 
|  | Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig),                                // | 
|  | make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | // | 
|  | // Events | 
|  | // | 
|  | make_unique<ReadEvent>(Id, credsIssuerConfig),      // | 
|  | make_unique<SubscribeEvent>(Id, credsIssuerConfig), // | 
|  | }; | 
|  |  | 
|  | commands.Register(clusterName, clusterCommands); | 
|  | } | 
|  | void registerClusterProxyValid(Commands & commands, CredentialIssuerCommands * credsIssuerConfig) | 
|  | { | 
|  | using namespace chip::app::Clusters::ProxyValid; | 
|  |  | 
|  | const char * clusterName = "ProxyValid"; | 
|  |  | 
|  | commands_list clusterCommands = { | 
|  | // | 
|  | // Commands | 
|  | // | 
|  | make_unique<ClusterCommand>(Id, credsIssuerConfig), // | 
|  | // | 
|  | // Attributes | 
|  | // | 
|  | make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>( | 
|  | Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>( | 
|  | Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig),                                // | 
|  | make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | // | 
|  | // Events | 
|  | // | 
|  | make_unique<ReadEvent>(Id, credsIssuerConfig),      // | 
|  | make_unique<SubscribeEvent>(Id, credsIssuerConfig), // | 
|  | }; | 
|  |  | 
|  | commands.Register(clusterName, clusterCommands); | 
|  | } | 
|  | void registerClusterBooleanState(Commands & commands, CredentialIssuerCommands * credsIssuerConfig) | 
|  | { | 
|  | using namespace chip::app::Clusters::BooleanState; | 
|  |  | 
|  | const char * clusterName = "BooleanState"; | 
|  |  | 
|  | commands_list clusterCommands = { | 
|  | // | 
|  | // Commands | 
|  | // | 
|  | make_unique<ClusterCommand>(Id, credsIssuerConfig), // | 
|  | // | 
|  | // Attributes | 
|  | // | 
|  | make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<ReadAttribute>(Id, "state-value", Attributes::StateValue::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              // | 
|  | make_unique<WriteAttribute<bool>>(Id, "state-value", 0, 1, Attributes::StateValue::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>( | 
|  | Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>( | 
|  | Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig),                                // | 
|  | make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<SubscribeAttribute>(Id, "state-value", Attributes::StateValue::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | // | 
|  | // Events | 
|  | // | 
|  | make_unique<ReadEvent>(Id, credsIssuerConfig),                                               // | 
|  | make_unique<ReadEvent>(Id, "state-change", Events::StateChange::Id, credsIssuerConfig),      // | 
|  | make_unique<SubscribeEvent>(Id, credsIssuerConfig),                                          // | 
|  | make_unique<SubscribeEvent>(Id, "state-change", Events::StateChange::Id, credsIssuerConfig), // | 
|  | }; | 
|  |  | 
|  | commands.Register(clusterName, clusterCommands); | 
|  | } | 
|  | void registerClusterModeSelect(Commands & commands, CredentialIssuerCommands * credsIssuerConfig) | 
|  | { | 
|  | using namespace chip::app::Clusters::ModeSelect; | 
|  |  | 
|  | const char * clusterName = "ModeSelect"; | 
|  |  | 
|  | commands_list clusterCommands = { | 
|  | // | 
|  | // Commands | 
|  | // | 
|  | make_unique<ClusterCommand>(Id, credsIssuerConfig),     // | 
|  | make_unique<ModeSelectChangeToMode>(credsIssuerConfig), // | 
|  | // | 
|  | // Attributes | 
|  | // | 
|  | make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<ReadAttribute>(Id, "description", Attributes::Description::Id, credsIssuerConfig),                     // | 
|  | make_unique<ReadAttribute>(Id, "standard-namespace", Attributes::StandardNamespace::Id, credsIssuerConfig),        // | 
|  | make_unique<ReadAttribute>(Id, "supported-modes", Attributes::SupportedModes::Id, credsIssuerConfig),              // | 
|  | make_unique<ReadAttribute>(Id, "current-mode", Attributes::CurrentMode::Id, credsIssuerConfig),                    // | 
|  | make_unique<ReadAttribute>(Id, "start-up-mode", Attributes::StartUpMode::Id, credsIssuerConfig),                   // | 
|  | make_unique<ReadAttribute>(Id, "on-mode", Attributes::OnMode::Id, credsIssuerConfig),                              // | 
|  | make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              // | 
|  | make_unique<WriteAttribute<chip::CharSpan>>(Id, "description", Attributes::Description::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint16_t>>>(Id, "standard-namespace", 0, UINT16_MAX, | 
|  | Attributes::StandardNamespace::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex< | 
|  | chip::app::DataModel::List<const chip::app::Clusters::ModeSelect::Structs::ModeOptionStruct::Type>>>( | 
|  | Id, "supported-modes", Attributes::SupportedModes::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "current-mode", 0, UINT8_MAX, Attributes::CurrentMode::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint8_t>>>( | 
|  | Id, "start-up-mode", 0, UINT8_MAX, Attributes::StartUpMode::Id, WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint8_t>>>(Id, "on-mode", 0, UINT8_MAX, Attributes::OnMode::Id, | 
|  | WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>( | 
|  | Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>( | 
|  | Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig),                                // | 
|  | make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<SubscribeAttribute>(Id, "description", Attributes::Description::Id, credsIssuerConfig),                     // | 
|  | make_unique<SubscribeAttribute>(Id, "standard-namespace", Attributes::StandardNamespace::Id, credsIssuerConfig),        // | 
|  | make_unique<SubscribeAttribute>(Id, "supported-modes", Attributes::SupportedModes::Id, credsIssuerConfig),              // | 
|  | make_unique<SubscribeAttribute>(Id, "current-mode", Attributes::CurrentMode::Id, credsIssuerConfig),                    // | 
|  | make_unique<SubscribeAttribute>(Id, "start-up-mode", Attributes::StartUpMode::Id, credsIssuerConfig),                   // | 
|  | make_unique<SubscribeAttribute>(Id, "on-mode", Attributes::OnMode::Id, credsIssuerConfig),                              // | 
|  | make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | // | 
|  | // Events | 
|  | // | 
|  | make_unique<ReadEvent>(Id, credsIssuerConfig),      // | 
|  | make_unique<SubscribeEvent>(Id, credsIssuerConfig), // | 
|  | }; | 
|  |  | 
|  | commands.Register(clusterName, clusterCommands); | 
|  | } | 
|  | void registerClusterHepaFilterMonitoring(Commands & commands, CredentialIssuerCommands * credsIssuerConfig) | 
|  | { | 
|  | using namespace chip::app::Clusters::HepaFilterMonitoring; | 
|  |  | 
|  | const char * clusterName = "HepaFilterMonitoring"; | 
|  |  | 
|  | commands_list clusterCommands = { | 
|  | // | 
|  | // Commands | 
|  | // | 
|  | make_unique<ClusterCommand>(Id, credsIssuerConfig),                 // | 
|  | make_unique<HepaFilterMonitoringResetCondition>(credsIssuerConfig), // | 
|  | // | 
|  | // Attributes | 
|  | // | 
|  | make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<ReadAttribute>(Id, "condition", Attributes::Condition::Id, credsIssuerConfig),                         // | 
|  | make_unique<ReadAttribute>(Id, "degradation-direction", Attributes::DegradationDirection::Id, credsIssuerConfig),  // | 
|  | make_unique<ReadAttribute>(Id, "change-indication", Attributes::ChangeIndication::Id, credsIssuerConfig),          // | 
|  | make_unique<ReadAttribute>(Id, "in-place-indicator", Attributes::InPlaceIndicator::Id, credsIssuerConfig),         // | 
|  | make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              // | 
|  | make_unique<WriteAttribute<chip::Percent>>(Id, "condition", 0, UINT8_MAX, Attributes::Condition::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::Clusters::HepaFilterMonitoring::DegradationDirectionEnum>>( | 
|  | Id, "degradation-direction", 0, UINT8_MAX, Attributes::DegradationDirection::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::Clusters::HepaFilterMonitoring::ChangeIndicationEnum>>( | 
|  | Id, "change-indication", 0, UINT8_MAX, Attributes::ChangeIndication::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<bool>>(Id, "in-place-indicator", 0, 1, Attributes::InPlaceIndicator::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>( | 
|  | Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>( | 
|  | Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig),                                // | 
|  | make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<SubscribeAttribute>(Id, "condition", Attributes::Condition::Id, credsIssuerConfig),                         // | 
|  | make_unique<SubscribeAttribute>(Id, "degradation-direction", Attributes::DegradationDirection::Id, credsIssuerConfig),  // | 
|  | make_unique<SubscribeAttribute>(Id, "change-indication", Attributes::ChangeIndication::Id, credsIssuerConfig),          // | 
|  | make_unique<SubscribeAttribute>(Id, "in-place-indicator", Attributes::InPlaceIndicator::Id, credsIssuerConfig),         // | 
|  | make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | // | 
|  | // Events | 
|  | // | 
|  | make_unique<ReadEvent>(Id, credsIssuerConfig),      // | 
|  | make_unique<SubscribeEvent>(Id, credsIssuerConfig), // | 
|  | }; | 
|  |  | 
|  | commands.Register(clusterName, clusterCommands); | 
|  | } | 
|  | void registerClusterActivatedCarbonFilterMonitoring(Commands & commands, CredentialIssuerCommands * credsIssuerConfig) | 
|  | { | 
|  | using namespace chip::app::Clusters::ActivatedCarbonFilterMonitoring; | 
|  |  | 
|  | const char * clusterName = "ActivatedCarbonFilterMonitoring"; | 
|  |  | 
|  | commands_list clusterCommands = { | 
|  | // | 
|  | // Commands | 
|  | // | 
|  | make_unique<ClusterCommand>(Id, credsIssuerConfig),                            // | 
|  | make_unique<ActivatedCarbonFilterMonitoringResetCondition>(credsIssuerConfig), // | 
|  | // | 
|  | // Attributes | 
|  | // | 
|  | make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<ReadAttribute>(Id, "condition", Attributes::Condition::Id, credsIssuerConfig),                         // | 
|  | make_unique<ReadAttribute>(Id, "degradation-direction", Attributes::DegradationDirection::Id, credsIssuerConfig),  // | 
|  | make_unique<ReadAttribute>(Id, "change-indication", Attributes::ChangeIndication::Id, credsIssuerConfig),          // | 
|  | make_unique<ReadAttribute>(Id, "in-place-indicator", Attributes::InPlaceIndicator::Id, credsIssuerConfig),         // | 
|  | make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              // | 
|  | make_unique<WriteAttribute<chip::Percent>>(Id, "condition", 0, UINT8_MAX, Attributes::Condition::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::Clusters::ActivatedCarbonFilterMonitoring::DegradationDirectionEnum>>( | 
|  | Id, "degradation-direction", 0, UINT8_MAX, Attributes::DegradationDirection::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::Clusters::ActivatedCarbonFilterMonitoring::ChangeIndicationEnum>>( | 
|  | Id, "change-indication", 0, UINT8_MAX, Attributes::ChangeIndication::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<bool>>(Id, "in-place-indicator", 0, 1, Attributes::InPlaceIndicator::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>( | 
|  | Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>( | 
|  | Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig),                                // | 
|  | make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<SubscribeAttribute>(Id, "condition", Attributes::Condition::Id, credsIssuerConfig),                         // | 
|  | make_unique<SubscribeAttribute>(Id, "degradation-direction", Attributes::DegradationDirection::Id, credsIssuerConfig),  // | 
|  | make_unique<SubscribeAttribute>(Id, "change-indication", Attributes::ChangeIndication::Id, credsIssuerConfig),          // | 
|  | make_unique<SubscribeAttribute>(Id, "in-place-indicator", Attributes::InPlaceIndicator::Id, credsIssuerConfig),         // | 
|  | make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | // | 
|  | // Events | 
|  | // | 
|  | make_unique<ReadEvent>(Id, credsIssuerConfig),      // | 
|  | make_unique<SubscribeEvent>(Id, credsIssuerConfig), // | 
|  | }; | 
|  |  | 
|  | commands.Register(clusterName, clusterCommands); | 
|  | } | 
|  | void registerClusterCeramicFilterMonitoring(Commands & commands, CredentialIssuerCommands * credsIssuerConfig) | 
|  | { | 
|  | using namespace chip::app::Clusters::CeramicFilterMonitoring; | 
|  |  | 
|  | const char * clusterName = "CeramicFilterMonitoring"; | 
|  |  | 
|  | commands_list clusterCommands = { | 
|  | // | 
|  | // Commands | 
|  | // | 
|  | make_unique<ClusterCommand>(Id, credsIssuerConfig),                    // | 
|  | make_unique<CeramicFilterMonitoringResetCondition>(credsIssuerConfig), // | 
|  | // | 
|  | // Attributes | 
|  | // | 
|  | make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<ReadAttribute>(Id, "condition", Attributes::Condition::Id, credsIssuerConfig),                         // | 
|  | make_unique<ReadAttribute>(Id, "degradation-direction", Attributes::DegradationDirection::Id, credsIssuerConfig),  // | 
|  | make_unique<ReadAttribute>(Id, "change-indication", Attributes::ChangeIndication::Id, credsIssuerConfig),          // | 
|  | make_unique<ReadAttribute>(Id, "in-place-indicator", Attributes::InPlaceIndicator::Id, credsIssuerConfig),         // | 
|  | make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              // | 
|  | make_unique<WriteAttribute<chip::Percent>>(Id, "condition", 0, UINT8_MAX, Attributes::Condition::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::Clusters::CeramicFilterMonitoring::DegradationDirectionEnum>>( | 
|  | Id, "degradation-direction", 0, UINT8_MAX, Attributes::DegradationDirection::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::Clusters::CeramicFilterMonitoring::ChangeIndicationEnum>>( | 
|  | Id, "change-indication", 0, UINT8_MAX, Attributes::ChangeIndication::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<bool>>(Id, "in-place-indicator", 0, 1, Attributes::InPlaceIndicator::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>( | 
|  | Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>( | 
|  | Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig),                                // | 
|  | make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<SubscribeAttribute>(Id, "condition", Attributes::Condition::Id, credsIssuerConfig),                         // | 
|  | make_unique<SubscribeAttribute>(Id, "degradation-direction", Attributes::DegradationDirection::Id, credsIssuerConfig),  // | 
|  | make_unique<SubscribeAttribute>(Id, "change-indication", Attributes::ChangeIndication::Id, credsIssuerConfig),          // | 
|  | make_unique<SubscribeAttribute>(Id, "in-place-indicator", Attributes::InPlaceIndicator::Id, credsIssuerConfig),         // | 
|  | make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | // | 
|  | // Events | 
|  | // | 
|  | make_unique<ReadEvent>(Id, credsIssuerConfig),      // | 
|  | make_unique<SubscribeEvent>(Id, credsIssuerConfig), // | 
|  | }; | 
|  |  | 
|  | commands.Register(clusterName, clusterCommands); | 
|  | } | 
|  | void registerClusterElectrostaticFilterMonitoring(Commands & commands, CredentialIssuerCommands * credsIssuerConfig) | 
|  | { | 
|  | using namespace chip::app::Clusters::ElectrostaticFilterMonitoring; | 
|  |  | 
|  | const char * clusterName = "ElectrostaticFilterMonitoring"; | 
|  |  | 
|  | commands_list clusterCommands = { | 
|  | // | 
|  | // Commands | 
|  | // | 
|  | make_unique<ClusterCommand>(Id, credsIssuerConfig),                          // | 
|  | make_unique<ElectrostaticFilterMonitoringResetCondition>(credsIssuerConfig), // | 
|  | // | 
|  | // Attributes | 
|  | // | 
|  | make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<ReadAttribute>(Id, "condition", Attributes::Condition::Id, credsIssuerConfig),                         // | 
|  | make_unique<ReadAttribute>(Id, "degradation-direction", Attributes::DegradationDirection::Id, credsIssuerConfig),  // | 
|  | make_unique<ReadAttribute>(Id, "change-indication", Attributes::ChangeIndication::Id, credsIssuerConfig),          // | 
|  | make_unique<ReadAttribute>(Id, "in-place-indicator", Attributes::InPlaceIndicator::Id, credsIssuerConfig),         // | 
|  | make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              // | 
|  | make_unique<WriteAttribute<chip::Percent>>(Id, "condition", 0, UINT8_MAX, Attributes::Condition::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::Clusters::ElectrostaticFilterMonitoring::DegradationDirectionEnum>>( | 
|  | Id, "degradation-direction", 0, UINT8_MAX, Attributes::DegradationDirection::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::Clusters::ElectrostaticFilterMonitoring::ChangeIndicationEnum>>( | 
|  | Id, "change-indication", 0, UINT8_MAX, Attributes::ChangeIndication::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<bool>>(Id, "in-place-indicator", 0, 1, Attributes::InPlaceIndicator::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>( | 
|  | Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>( | 
|  | Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig),                                // | 
|  | make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<SubscribeAttribute>(Id, "condition", Attributes::Condition::Id, credsIssuerConfig),                         // | 
|  | make_unique<SubscribeAttribute>(Id, "degradation-direction", Attributes::DegradationDirection::Id, credsIssuerConfig),  // | 
|  | make_unique<SubscribeAttribute>(Id, "change-indication", Attributes::ChangeIndication::Id, credsIssuerConfig),          // | 
|  | make_unique<SubscribeAttribute>(Id, "in-place-indicator", Attributes::InPlaceIndicator::Id, credsIssuerConfig),         // | 
|  | make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | // | 
|  | // Events | 
|  | // | 
|  | make_unique<ReadEvent>(Id, credsIssuerConfig),      // | 
|  | make_unique<SubscribeEvent>(Id, credsIssuerConfig), // | 
|  | }; | 
|  |  | 
|  | commands.Register(clusterName, clusterCommands); | 
|  | } | 
|  | void registerClusterUvFilterMonitoring(Commands & commands, CredentialIssuerCommands * credsIssuerConfig) | 
|  | { | 
|  | using namespace chip::app::Clusters::UvFilterMonitoring; | 
|  |  | 
|  | const char * clusterName = "UvFilterMonitoring"; | 
|  |  | 
|  | commands_list clusterCommands = { | 
|  | // | 
|  | // Commands | 
|  | // | 
|  | make_unique<ClusterCommand>(Id, credsIssuerConfig),               // | 
|  | make_unique<UvFilterMonitoringResetCondition>(credsIssuerConfig), // | 
|  | // | 
|  | // Attributes | 
|  | // | 
|  | make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<ReadAttribute>(Id, "condition", Attributes::Condition::Id, credsIssuerConfig),                         // | 
|  | make_unique<ReadAttribute>(Id, "degradation-direction", Attributes::DegradationDirection::Id, credsIssuerConfig),  // | 
|  | make_unique<ReadAttribute>(Id, "change-indication", Attributes::ChangeIndication::Id, credsIssuerConfig),          // | 
|  | make_unique<ReadAttribute>(Id, "in-place-indicator", Attributes::InPlaceIndicator::Id, credsIssuerConfig),         // | 
|  | make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              // | 
|  | make_unique<WriteAttribute<chip::Percent>>(Id, "condition", 0, UINT8_MAX, Attributes::Condition::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::Clusters::UvFilterMonitoring::DegradationDirectionEnum>>( | 
|  | Id, "degradation-direction", 0, UINT8_MAX, Attributes::DegradationDirection::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::Clusters::UvFilterMonitoring::ChangeIndicationEnum>>( | 
|  | Id, "change-indication", 0, UINT8_MAX, Attributes::ChangeIndication::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<bool>>(Id, "in-place-indicator", 0, 1, Attributes::InPlaceIndicator::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>( | 
|  | Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>( | 
|  | Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig),                                // | 
|  | make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<SubscribeAttribute>(Id, "condition", Attributes::Condition::Id, credsIssuerConfig),                         // | 
|  | make_unique<SubscribeAttribute>(Id, "degradation-direction", Attributes::DegradationDirection::Id, credsIssuerConfig),  // | 
|  | make_unique<SubscribeAttribute>(Id, "change-indication", Attributes::ChangeIndication::Id, credsIssuerConfig),          // | 
|  | make_unique<SubscribeAttribute>(Id, "in-place-indicator", Attributes::InPlaceIndicator::Id, credsIssuerConfig),         // | 
|  | make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | // | 
|  | // Events | 
|  | // | 
|  | make_unique<ReadEvent>(Id, credsIssuerConfig),      // | 
|  | make_unique<SubscribeEvent>(Id, credsIssuerConfig), // | 
|  | }; | 
|  |  | 
|  | commands.Register(clusterName, clusterCommands); | 
|  | } | 
|  | void registerClusterIonizingFilterMonitoring(Commands & commands, CredentialIssuerCommands * credsIssuerConfig) | 
|  | { | 
|  | using namespace chip::app::Clusters::IonizingFilterMonitoring; | 
|  |  | 
|  | const char * clusterName = "IonizingFilterMonitoring"; | 
|  |  | 
|  | commands_list clusterCommands = { | 
|  | // | 
|  | // Commands | 
|  | // | 
|  | make_unique<ClusterCommand>(Id, credsIssuerConfig),                     // | 
|  | make_unique<IonizingFilterMonitoringResetCondition>(credsIssuerConfig), // | 
|  | // | 
|  | // Attributes | 
|  | // | 
|  | make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<ReadAttribute>(Id, "condition", Attributes::Condition::Id, credsIssuerConfig),                         // | 
|  | make_unique<ReadAttribute>(Id, "degradation-direction", Attributes::DegradationDirection::Id, credsIssuerConfig),  // | 
|  | make_unique<ReadAttribute>(Id, "change-indication", Attributes::ChangeIndication::Id, credsIssuerConfig),          // | 
|  | make_unique<ReadAttribute>(Id, "in-place-indicator", Attributes::InPlaceIndicator::Id, credsIssuerConfig),         // | 
|  | make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              // | 
|  | make_unique<WriteAttribute<chip::Percent>>(Id, "condition", 0, UINT8_MAX, Attributes::Condition::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::Clusters::IonizingFilterMonitoring::DegradationDirectionEnum>>( | 
|  | Id, "degradation-direction", 0, UINT8_MAX, Attributes::DegradationDirection::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::Clusters::IonizingFilterMonitoring::ChangeIndicationEnum>>( | 
|  | Id, "change-indication", 0, UINT8_MAX, Attributes::ChangeIndication::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<bool>>(Id, "in-place-indicator", 0, 1, Attributes::InPlaceIndicator::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>( | 
|  | Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>( | 
|  | Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig),                                // | 
|  | make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<SubscribeAttribute>(Id, "condition", Attributes::Condition::Id, credsIssuerConfig),                         // | 
|  | make_unique<SubscribeAttribute>(Id, "degradation-direction", Attributes::DegradationDirection::Id, credsIssuerConfig),  // | 
|  | make_unique<SubscribeAttribute>(Id, "change-indication", Attributes::ChangeIndication::Id, credsIssuerConfig),          // | 
|  | make_unique<SubscribeAttribute>(Id, "in-place-indicator", Attributes::InPlaceIndicator::Id, credsIssuerConfig),         // | 
|  | make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | // | 
|  | // Events | 
|  | // | 
|  | make_unique<ReadEvent>(Id, credsIssuerConfig),      // | 
|  | make_unique<SubscribeEvent>(Id, credsIssuerConfig), // | 
|  | }; | 
|  |  | 
|  | commands.Register(clusterName, clusterCommands); | 
|  | } | 
|  | void registerClusterZeoliteFilterMonitoring(Commands & commands, CredentialIssuerCommands * credsIssuerConfig) | 
|  | { | 
|  | using namespace chip::app::Clusters::ZeoliteFilterMonitoring; | 
|  |  | 
|  | const char * clusterName = "ZeoliteFilterMonitoring"; | 
|  |  | 
|  | commands_list clusterCommands = { | 
|  | // | 
|  | // Commands | 
|  | // | 
|  | make_unique<ClusterCommand>(Id, credsIssuerConfig),                    // | 
|  | make_unique<ZeoliteFilterMonitoringResetCondition>(credsIssuerConfig), // | 
|  | // | 
|  | // Attributes | 
|  | // | 
|  | make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<ReadAttribute>(Id, "condition", Attributes::Condition::Id, credsIssuerConfig),                         // | 
|  | make_unique<ReadAttribute>(Id, "degradation-direction", Attributes::DegradationDirection::Id, credsIssuerConfig),  // | 
|  | make_unique<ReadAttribute>(Id, "change-indication", Attributes::ChangeIndication::Id, credsIssuerConfig),          // | 
|  | make_unique<ReadAttribute>(Id, "in-place-indicator", Attributes::InPlaceIndicator::Id, credsIssuerConfig),         // | 
|  | make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              // | 
|  | make_unique<WriteAttribute<chip::Percent>>(Id, "condition", 0, UINT8_MAX, Attributes::Condition::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::Clusters::ZeoliteFilterMonitoring::DegradationDirectionEnum>>( | 
|  | Id, "degradation-direction", 0, UINT8_MAX, Attributes::DegradationDirection::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::Clusters::ZeoliteFilterMonitoring::ChangeIndicationEnum>>( | 
|  | Id, "change-indication", 0, UINT8_MAX, Attributes::ChangeIndication::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<bool>>(Id, "in-place-indicator", 0, 1, Attributes::InPlaceIndicator::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>( | 
|  | Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>( | 
|  | Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig),                                // | 
|  | make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<SubscribeAttribute>(Id, "condition", Attributes::Condition::Id, credsIssuerConfig),                         // | 
|  | make_unique<SubscribeAttribute>(Id, "degradation-direction", Attributes::DegradationDirection::Id, credsIssuerConfig),  // | 
|  | make_unique<SubscribeAttribute>(Id, "change-indication", Attributes::ChangeIndication::Id, credsIssuerConfig),          // | 
|  | make_unique<SubscribeAttribute>(Id, "in-place-indicator", Attributes::InPlaceIndicator::Id, credsIssuerConfig),         // | 
|  | make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | // | 
|  | // Events | 
|  | // | 
|  | make_unique<ReadEvent>(Id, credsIssuerConfig),      // | 
|  | make_unique<SubscribeEvent>(Id, credsIssuerConfig), // | 
|  | }; | 
|  |  | 
|  | commands.Register(clusterName, clusterCommands); | 
|  | } | 
|  | void registerClusterOzoneFilterMonitoring(Commands & commands, CredentialIssuerCommands * credsIssuerConfig) | 
|  | { | 
|  | using namespace chip::app::Clusters::OzoneFilterMonitoring; | 
|  |  | 
|  | const char * clusterName = "OzoneFilterMonitoring"; | 
|  |  | 
|  | commands_list clusterCommands = { | 
|  | // | 
|  | // Commands | 
|  | // | 
|  | make_unique<ClusterCommand>(Id, credsIssuerConfig),                  // | 
|  | make_unique<OzoneFilterMonitoringResetCondition>(credsIssuerConfig), // | 
|  | // | 
|  | // Attributes | 
|  | // | 
|  | make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<ReadAttribute>(Id, "condition", Attributes::Condition::Id, credsIssuerConfig),                         // | 
|  | make_unique<ReadAttribute>(Id, "degradation-direction", Attributes::DegradationDirection::Id, credsIssuerConfig),  // | 
|  | make_unique<ReadAttribute>(Id, "change-indication", Attributes::ChangeIndication::Id, credsIssuerConfig),          // | 
|  | make_unique<ReadAttribute>(Id, "in-place-indicator", Attributes::InPlaceIndicator::Id, credsIssuerConfig),         // | 
|  | make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              // | 
|  | make_unique<WriteAttribute<chip::Percent>>(Id, "condition", 0, UINT8_MAX, Attributes::Condition::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::Clusters::OzoneFilterMonitoring::DegradationDirectionEnum>>( | 
|  | Id, "degradation-direction", 0, UINT8_MAX, Attributes::DegradationDirection::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::Clusters::OzoneFilterMonitoring::ChangeIndicationEnum>>( | 
|  | Id, "change-indication", 0, UINT8_MAX, Attributes::ChangeIndication::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<bool>>(Id, "in-place-indicator", 0, 1, Attributes::InPlaceIndicator::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>( | 
|  | Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>( | 
|  | Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig),                                // | 
|  | make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<SubscribeAttribute>(Id, "condition", Attributes::Condition::Id, credsIssuerConfig),                         // | 
|  | make_unique<SubscribeAttribute>(Id, "degradation-direction", Attributes::DegradationDirection::Id, credsIssuerConfig),  // | 
|  | make_unique<SubscribeAttribute>(Id, "change-indication", Attributes::ChangeIndication::Id, credsIssuerConfig),          // | 
|  | make_unique<SubscribeAttribute>(Id, "in-place-indicator", Attributes::InPlaceIndicator::Id, credsIssuerConfig),         // | 
|  | make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | // | 
|  | // Events | 
|  | // | 
|  | make_unique<ReadEvent>(Id, credsIssuerConfig),      // | 
|  | make_unique<SubscribeEvent>(Id, credsIssuerConfig), // | 
|  | }; | 
|  |  | 
|  | commands.Register(clusterName, clusterCommands); | 
|  | } | 
|  | void registerClusterWaterTankMonitoring(Commands & commands, CredentialIssuerCommands * credsIssuerConfig) | 
|  | { | 
|  | using namespace chip::app::Clusters::WaterTankMonitoring; | 
|  |  | 
|  | const char * clusterName = "WaterTankMonitoring"; | 
|  |  | 
|  | commands_list clusterCommands = { | 
|  | // | 
|  | // Commands | 
|  | // | 
|  | make_unique<ClusterCommand>(Id, credsIssuerConfig),                // | 
|  | make_unique<WaterTankMonitoringResetCondition>(credsIssuerConfig), // | 
|  | // | 
|  | // Attributes | 
|  | // | 
|  | make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<ReadAttribute>(Id, "condition", Attributes::Condition::Id, credsIssuerConfig),                         // | 
|  | make_unique<ReadAttribute>(Id, "degradation-direction", Attributes::DegradationDirection::Id, credsIssuerConfig),  // | 
|  | make_unique<ReadAttribute>(Id, "change-indication", Attributes::ChangeIndication::Id, credsIssuerConfig),          // | 
|  | make_unique<ReadAttribute>(Id, "in-place-indicator", Attributes::InPlaceIndicator::Id, credsIssuerConfig),         // | 
|  | make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              // | 
|  | make_unique<WriteAttribute<chip::Percent>>(Id, "condition", 0, UINT8_MAX, Attributes::Condition::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::Clusters::WaterTankMonitoring::DegradationDirectionEnum>>( | 
|  | Id, "degradation-direction", 0, UINT8_MAX, Attributes::DegradationDirection::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::Clusters::WaterTankMonitoring::ChangeIndicationEnum>>( | 
|  | Id, "change-indication", 0, UINT8_MAX, Attributes::ChangeIndication::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<bool>>(Id, "in-place-indicator", 0, 1, Attributes::InPlaceIndicator::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>( | 
|  | Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>( | 
|  | Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig),                                // | 
|  | make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<SubscribeAttribute>(Id, "condition", Attributes::Condition::Id, credsIssuerConfig),                         // | 
|  | make_unique<SubscribeAttribute>(Id, "degradation-direction", Attributes::DegradationDirection::Id, credsIssuerConfig),  // | 
|  | make_unique<SubscribeAttribute>(Id, "change-indication", Attributes::ChangeIndication::Id, credsIssuerConfig),          // | 
|  | make_unique<SubscribeAttribute>(Id, "in-place-indicator", Attributes::InPlaceIndicator::Id, credsIssuerConfig),         // | 
|  | make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | // | 
|  | // Events | 
|  | // | 
|  | make_unique<ReadEvent>(Id, credsIssuerConfig),      // | 
|  | make_unique<SubscribeEvent>(Id, credsIssuerConfig), // | 
|  | }; | 
|  |  | 
|  | commands.Register(clusterName, clusterCommands); | 
|  | } | 
|  | void registerClusterFuelTankMonitoring(Commands & commands, CredentialIssuerCommands * credsIssuerConfig) | 
|  | { | 
|  | using namespace chip::app::Clusters::FuelTankMonitoring; | 
|  |  | 
|  | const char * clusterName = "FuelTankMonitoring"; | 
|  |  | 
|  | commands_list clusterCommands = { | 
|  | // | 
|  | // Commands | 
|  | // | 
|  | make_unique<ClusterCommand>(Id, credsIssuerConfig),               // | 
|  | make_unique<FuelTankMonitoringResetCondition>(credsIssuerConfig), // | 
|  | // | 
|  | // Attributes | 
|  | // | 
|  | make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<ReadAttribute>(Id, "condition", Attributes::Condition::Id, credsIssuerConfig),                         // | 
|  | make_unique<ReadAttribute>(Id, "degradation-direction", Attributes::DegradationDirection::Id, credsIssuerConfig),  // | 
|  | make_unique<ReadAttribute>(Id, "change-indication", Attributes::ChangeIndication::Id, credsIssuerConfig),          // | 
|  | make_unique<ReadAttribute>(Id, "in-place-indicator", Attributes::InPlaceIndicator::Id, credsIssuerConfig),         // | 
|  | make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              // | 
|  | make_unique<WriteAttribute<chip::Percent>>(Id, "condition", 0, UINT8_MAX, Attributes::Condition::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::Clusters::FuelTankMonitoring::DegradationDirectionEnum>>( | 
|  | Id, "degradation-direction", 0, UINT8_MAX, Attributes::DegradationDirection::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::Clusters::FuelTankMonitoring::ChangeIndicationEnum>>( | 
|  | Id, "change-indication", 0, UINT8_MAX, Attributes::ChangeIndication::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<bool>>(Id, "in-place-indicator", 0, 1, Attributes::InPlaceIndicator::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>( | 
|  | Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>( | 
|  | Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig),                                // | 
|  | make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<SubscribeAttribute>(Id, "condition", Attributes::Condition::Id, credsIssuerConfig),                         // | 
|  | make_unique<SubscribeAttribute>(Id, "degradation-direction", Attributes::DegradationDirection::Id, credsIssuerConfig),  // | 
|  | make_unique<SubscribeAttribute>(Id, "change-indication", Attributes::ChangeIndication::Id, credsIssuerConfig),          // | 
|  | make_unique<SubscribeAttribute>(Id, "in-place-indicator", Attributes::InPlaceIndicator::Id, credsIssuerConfig),         // | 
|  | make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | // | 
|  | // Events | 
|  | // | 
|  | make_unique<ReadEvent>(Id, credsIssuerConfig),      // | 
|  | make_unique<SubscribeEvent>(Id, credsIssuerConfig), // | 
|  | }; | 
|  |  | 
|  | commands.Register(clusterName, clusterCommands); | 
|  | } | 
|  | void registerClusterInkCartridgeMonitoring(Commands & commands, CredentialIssuerCommands * credsIssuerConfig) | 
|  | { | 
|  | using namespace chip::app::Clusters::InkCartridgeMonitoring; | 
|  |  | 
|  | const char * clusterName = "InkCartridgeMonitoring"; | 
|  |  | 
|  | commands_list clusterCommands = { | 
|  | // | 
|  | // Commands | 
|  | // | 
|  | make_unique<ClusterCommand>(Id, credsIssuerConfig),                   // | 
|  | make_unique<InkCartridgeMonitoringResetCondition>(credsIssuerConfig), // | 
|  | // | 
|  | // Attributes | 
|  | // | 
|  | make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<ReadAttribute>(Id, "condition", Attributes::Condition::Id, credsIssuerConfig),                         // | 
|  | make_unique<ReadAttribute>(Id, "degradation-direction", Attributes::DegradationDirection::Id, credsIssuerConfig),  // | 
|  | make_unique<ReadAttribute>(Id, "change-indication", Attributes::ChangeIndication::Id, credsIssuerConfig),          // | 
|  | make_unique<ReadAttribute>(Id, "in-place-indicator", Attributes::InPlaceIndicator::Id, credsIssuerConfig),         // | 
|  | make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              // | 
|  | make_unique<WriteAttribute<chip::Percent>>(Id, "condition", 0, UINT8_MAX, Attributes::Condition::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::Clusters::InkCartridgeMonitoring::DegradationDirectionEnum>>( | 
|  | Id, "degradation-direction", 0, UINT8_MAX, Attributes::DegradationDirection::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::Clusters::InkCartridgeMonitoring::ChangeIndicationEnum>>( | 
|  | Id, "change-indication", 0, UINT8_MAX, Attributes::ChangeIndication::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<bool>>(Id, "in-place-indicator", 0, 1, Attributes::InPlaceIndicator::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>( | 
|  | Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>( | 
|  | Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig),                                // | 
|  | make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<SubscribeAttribute>(Id, "condition", Attributes::Condition::Id, credsIssuerConfig),                         // | 
|  | make_unique<SubscribeAttribute>(Id, "degradation-direction", Attributes::DegradationDirection::Id, credsIssuerConfig),  // | 
|  | make_unique<SubscribeAttribute>(Id, "change-indication", Attributes::ChangeIndication::Id, credsIssuerConfig),          // | 
|  | make_unique<SubscribeAttribute>(Id, "in-place-indicator", Attributes::InPlaceIndicator::Id, credsIssuerConfig),         // | 
|  | make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | // | 
|  | // Events | 
|  | // | 
|  | make_unique<ReadEvent>(Id, credsIssuerConfig),      // | 
|  | make_unique<SubscribeEvent>(Id, credsIssuerConfig), // | 
|  | }; | 
|  |  | 
|  | commands.Register(clusterName, clusterCommands); | 
|  | } | 
|  | void registerClusterTonerCartridgeMonitoring(Commands & commands, CredentialIssuerCommands * credsIssuerConfig) | 
|  | { | 
|  | using namespace chip::app::Clusters::TonerCartridgeMonitoring; | 
|  |  | 
|  | const char * clusterName = "TonerCartridgeMonitoring"; | 
|  |  | 
|  | commands_list clusterCommands = { | 
|  | // | 
|  | // Commands | 
|  | // | 
|  | make_unique<ClusterCommand>(Id, credsIssuerConfig),                     // | 
|  | make_unique<TonerCartridgeMonitoringResetCondition>(credsIssuerConfig), // | 
|  | // | 
|  | // Attributes | 
|  | // | 
|  | make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<ReadAttribute>(Id, "condition", Attributes::Condition::Id, credsIssuerConfig),                         // | 
|  | make_unique<ReadAttribute>(Id, "degradation-direction", Attributes::DegradationDirection::Id, credsIssuerConfig),  // | 
|  | make_unique<ReadAttribute>(Id, "change-indication", Attributes::ChangeIndication::Id, credsIssuerConfig),          // | 
|  | make_unique<ReadAttribute>(Id, "in-place-indicator", Attributes::InPlaceIndicator::Id, credsIssuerConfig),         // | 
|  | make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              // | 
|  | make_unique<WriteAttribute<chip::Percent>>(Id, "condition", 0, UINT8_MAX, Attributes::Condition::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::Clusters::TonerCartridgeMonitoring::DegradationDirectionEnum>>( | 
|  | Id, "degradation-direction", 0, UINT8_MAX, Attributes::DegradationDirection::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::Clusters::TonerCartridgeMonitoring::ChangeIndicationEnum>>( | 
|  | Id, "change-indication", 0, UINT8_MAX, Attributes::ChangeIndication::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<bool>>(Id, "in-place-indicator", 0, 1, Attributes::InPlaceIndicator::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>( | 
|  | Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>( | 
|  | Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig),                                // | 
|  | make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<SubscribeAttribute>(Id, "condition", Attributes::Condition::Id, credsIssuerConfig),                         // | 
|  | make_unique<SubscribeAttribute>(Id, "degradation-direction", Attributes::DegradationDirection::Id, credsIssuerConfig),  // | 
|  | make_unique<SubscribeAttribute>(Id, "change-indication", Attributes::ChangeIndication::Id, credsIssuerConfig),          // | 
|  | make_unique<SubscribeAttribute>(Id, "in-place-indicator", Attributes::InPlaceIndicator::Id, credsIssuerConfig),         // | 
|  | make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | // | 
|  | // Events | 
|  | // | 
|  | make_unique<ReadEvent>(Id, credsIssuerConfig),      // | 
|  | make_unique<SubscribeEvent>(Id, credsIssuerConfig), // | 
|  | }; | 
|  |  | 
|  | commands.Register(clusterName, clusterCommands); | 
|  | } | 
|  | void registerClusterDoorLock(Commands & commands, CredentialIssuerCommands * credsIssuerConfig) | 
|  | { | 
|  | using namespace chip::app::Clusters::DoorLock; | 
|  |  | 
|  | const char * clusterName = "DoorLock"; | 
|  |  | 
|  | commands_list clusterCommands = { | 
|  | // | 
|  | // Commands | 
|  | // | 
|  | make_unique<ClusterCommand>(Id, credsIssuerConfig),           // | 
|  | make_unique<DoorLockLockDoor>(credsIssuerConfig),             // | 
|  | make_unique<DoorLockUnlockDoor>(credsIssuerConfig),           // | 
|  | make_unique<DoorLockUnlockWithTimeout>(credsIssuerConfig),    // | 
|  | make_unique<DoorLockSetWeekDaySchedule>(credsIssuerConfig),   // | 
|  | make_unique<DoorLockGetWeekDaySchedule>(credsIssuerConfig),   // | 
|  | make_unique<DoorLockClearWeekDaySchedule>(credsIssuerConfig), // | 
|  | make_unique<DoorLockSetYearDaySchedule>(credsIssuerConfig),   // | 
|  | make_unique<DoorLockGetYearDaySchedule>(credsIssuerConfig),   // | 
|  | make_unique<DoorLockClearYearDaySchedule>(credsIssuerConfig), // | 
|  | make_unique<DoorLockSetHolidaySchedule>(credsIssuerConfig),   // | 
|  | make_unique<DoorLockGetHolidaySchedule>(credsIssuerConfig),   // | 
|  | make_unique<DoorLockClearHolidaySchedule>(credsIssuerConfig), // | 
|  | make_unique<DoorLockSetUser>(credsIssuerConfig),              // | 
|  | make_unique<DoorLockGetUser>(credsIssuerConfig),              // | 
|  | make_unique<DoorLockClearUser>(credsIssuerConfig),            // | 
|  | make_unique<DoorLockSetCredential>(credsIssuerConfig),        // | 
|  | make_unique<DoorLockGetCredentialStatus>(credsIssuerConfig),  // | 
|  | make_unique<DoorLockClearCredential>(credsIssuerConfig),      // | 
|  | // | 
|  | // Attributes | 
|  | // | 
|  | make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                         // | 
|  | make_unique<ReadAttribute>(Id, "lock-state", Attributes::LockState::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "lock-type", Attributes::LockType::Id, credsIssuerConfig),                  // | 
|  | make_unique<ReadAttribute>(Id, "actuator-enabled", Attributes::ActuatorEnabled::Id, credsIssuerConfig),    // | 
|  | make_unique<ReadAttribute>(Id, "door-state", Attributes::DoorState::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "door-open-events", Attributes::DoorOpenEvents::Id, credsIssuerConfig),     // | 
|  | make_unique<ReadAttribute>(Id, "door-closed-events", Attributes::DoorClosedEvents::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "open-period", Attributes::OpenPeriod::Id, credsIssuerConfig),              // | 
|  | make_unique<ReadAttribute>(Id, "number-of-total-users-supported", Attributes::NumberOfTotalUsersSupported::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "number-of-pinusers-supported", Attributes::NumberOfPINUsersSupported::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "number-of-rfidusers-supported", Attributes::NumberOfRFIDUsersSupported::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "number-of-week-day-schedules-supported-per-user", | 
|  | Attributes::NumberOfWeekDaySchedulesSupportedPerUser::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "number-of-year-day-schedules-supported-per-user", | 
|  | Attributes::NumberOfYearDaySchedulesSupportedPerUser::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "number-of-holiday-schedules-supported", Attributes::NumberOfHolidaySchedulesSupported::Id, | 
|  | credsIssuerConfig),                                                                         // | 
|  | make_unique<ReadAttribute>(Id, "max-pincode-length", Attributes::MaxPINCodeLength::Id, credsIssuerConfig),             // | 
|  | make_unique<ReadAttribute>(Id, "min-pincode-length", Attributes::MinPINCodeLength::Id, credsIssuerConfig),             // | 
|  | make_unique<ReadAttribute>(Id, "max-rfidcode-length", Attributes::MaxRFIDCodeLength::Id, credsIssuerConfig),           // | 
|  | make_unique<ReadAttribute>(Id, "min-rfidcode-length", Attributes::MinRFIDCodeLength::Id, credsIssuerConfig),           // | 
|  | make_unique<ReadAttribute>(Id, "credential-rules-support", Attributes::CredentialRulesSupport::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "number-of-credentials-supported-per-user", | 
|  | Attributes::NumberOfCredentialsSupportedPerUser::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "language", Attributes::Language::Id, credsIssuerConfig),                                 // | 
|  | make_unique<ReadAttribute>(Id, "ledsettings", Attributes::LEDSettings::Id, credsIssuerConfig),                           // | 
|  | make_unique<ReadAttribute>(Id, "auto-relock-time", Attributes::AutoRelockTime::Id, credsIssuerConfig),                   // | 
|  | make_unique<ReadAttribute>(Id, "sound-volume", Attributes::SoundVolume::Id, credsIssuerConfig),                          // | 
|  | make_unique<ReadAttribute>(Id, "operating-mode", Attributes::OperatingMode::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "supported-operating-modes", Attributes::SupportedOperatingModes::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "default-configuration-register", Attributes::DefaultConfigurationRegister::Id, | 
|  | credsIssuerConfig),                                                                            // | 
|  | make_unique<ReadAttribute>(Id, "enable-local-programming", Attributes::EnableLocalProgramming::Id, credsIssuerConfig),    // | 
|  | make_unique<ReadAttribute>(Id, "enable-one-touch-locking", Attributes::EnableOneTouchLocking::Id, credsIssuerConfig),     // | 
|  | make_unique<ReadAttribute>(Id, "enable-inside-status-led", Attributes::EnableInsideStatusLED::Id, credsIssuerConfig),     // | 
|  | make_unique<ReadAttribute>(Id, "enable-privacy-mode-button", Attributes::EnablePrivacyModeButton::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "local-programming-features", Attributes::LocalProgrammingFeatures::Id, | 
|  | credsIssuerConfig),                                                                    // | 
|  | make_unique<ReadAttribute>(Id, "wrong-code-entry-limit", Attributes::WrongCodeEntryLimit::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "user-code-temporary-disable-time", Attributes::UserCodeTemporaryDisableTime::Id, | 
|  | credsIssuerConfig),                                                                // | 
|  | make_unique<ReadAttribute>(Id, "send-pinover-the-air", Attributes::SendPINOverTheAir::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "require-pinfor-remote-operation", Attributes::RequirePINforRemoteOperation::Id, | 
|  | credsIssuerConfig),                                                                     // | 
|  | make_unique<ReadAttribute>(Id, "expiring-user-timeout", Attributes::ExpiringUserTimeout::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<chip::app::Clusters::DoorLock::DlLockState>>>( | 
|  | Id, "lock-state", 0, UINT8_MAX, Attributes::LockState::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::Clusters::DoorLock::DlLockType>>( | 
|  | Id, "lock-type", 0, UINT8_MAX, Attributes::LockType::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<bool>>(Id, "actuator-enabled", 0, 1, Attributes::ActuatorEnabled::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<chip::app::Clusters::DoorLock::DoorStateEnum>>>( | 
|  | Id, "door-state", 0, UINT8_MAX, Attributes::DoorState::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "door-open-events", 0, UINT32_MAX, Attributes::DoorOpenEvents::Id, | 
|  | WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "door-closed-events", 0, UINT32_MAX, Attributes::DoorClosedEvents::Id, | 
|  | WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "open-period", 0, UINT16_MAX, Attributes::OpenPeriod::Id, | 
|  | WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "number-of-total-users-supported", 0, UINT16_MAX, | 
|  | Attributes::NumberOfTotalUsersSupported::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "number-of-pinusers-supported", 0, UINT16_MAX, | 
|  | Attributes::NumberOfPINUsersSupported::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "number-of-rfidusers-supported", 0, UINT16_MAX, | 
|  | Attributes::NumberOfRFIDUsersSupported::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "number-of-week-day-schedules-supported-per-user", 0, UINT8_MAX, | 
|  | Attributes::NumberOfWeekDaySchedulesSupportedPerUser::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "number-of-year-day-schedules-supported-per-user", 0, UINT8_MAX, | 
|  | Attributes::NumberOfYearDaySchedulesSupportedPerUser::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "number-of-holiday-schedules-supported", 0, UINT8_MAX, | 
|  | Attributes::NumberOfHolidaySchedulesSupported::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "max-pincode-length", 0, UINT8_MAX, Attributes::MaxPINCodeLength::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "min-pincode-length", 0, UINT8_MAX, Attributes::MinPINCodeLength::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "max-rfidcode-length", 0, UINT8_MAX, Attributes::MaxRFIDCodeLength::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "min-rfidcode-length", 0, UINT8_MAX, Attributes::MinRFIDCodeLength::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::BitMask<chip::app::Clusters::DoorLock::DlCredentialRuleMask>>>( | 
|  | Id, "credential-rules-support", 0, UINT8_MAX, Attributes::CredentialRulesSupport::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "number-of-credentials-supported-per-user", 0, UINT8_MAX, | 
|  | Attributes::NumberOfCredentialsSupportedPerUser::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::CharSpan>>(Id, "language", Attributes::Language::Id, WriteCommandType::kWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "ledsettings", 0, UINT8_MAX, Attributes::LEDSettings::Id, WriteCommandType::kWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "auto-relock-time", 0, UINT32_MAX, Attributes::AutoRelockTime::Id, | 
|  | WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "sound-volume", 0, UINT8_MAX, Attributes::SoundVolume::Id, | 
|  | WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::Clusters::DoorLock::OperatingModeEnum>>( | 
|  | Id, "operating-mode", 0, UINT8_MAX, Attributes::OperatingMode::Id, WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::BitMask<chip::app::Clusters::DoorLock::DlSupportedOperatingModes>>>( | 
|  | Id, "supported-operating-modes", 0, UINT16_MAX, Attributes::SupportedOperatingModes::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::BitMask<chip::app::Clusters::DoorLock::DlDefaultConfigurationRegister>>>( | 
|  | Id, "default-configuration-register", 0, UINT16_MAX, Attributes::DefaultConfigurationRegister::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<bool>>(Id, "enable-local-programming", 0, 1, Attributes::EnableLocalProgramming::Id, | 
|  | WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<bool>>(Id, "enable-one-touch-locking", 0, 1, Attributes::EnableOneTouchLocking::Id, | 
|  | WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<bool>>(Id, "enable-inside-status-led", 0, 1, Attributes::EnableInsideStatusLED::Id, | 
|  | WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<bool>>(Id, "enable-privacy-mode-button", 0, 1, Attributes::EnablePrivacyModeButton::Id, | 
|  | WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::BitMask<chip::app::Clusters::DoorLock::DlLocalProgrammingFeatures>>>( | 
|  | Id, "local-programming-features", 0, UINT8_MAX, Attributes::LocalProgrammingFeatures::Id, WriteCommandType::kWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "wrong-code-entry-limit", 0, UINT8_MAX, Attributes::WrongCodeEntryLimit::Id, | 
|  | WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "user-code-temporary-disable-time", 0, UINT8_MAX, | 
|  | Attributes::UserCodeTemporaryDisableTime::Id, WriteCommandType::kWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<bool>>(Id, "send-pinover-the-air", 0, 1, Attributes::SendPINOverTheAir::Id, | 
|  | WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<bool>>(Id, "require-pinfor-remote-operation", 0, 1, Attributes::RequirePINforRemoteOperation::Id, | 
|  | WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "expiring-user-timeout", 0, UINT16_MAX, Attributes::ExpiringUserTimeout::Id, | 
|  | WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>( | 
|  | Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>( | 
|  | Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                         // | 
|  | make_unique<SubscribeAttribute>(Id, "lock-state", Attributes::LockState::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "lock-type", Attributes::LockType::Id, credsIssuerConfig),                  // | 
|  | make_unique<SubscribeAttribute>(Id, "actuator-enabled", Attributes::ActuatorEnabled::Id, credsIssuerConfig),    // | 
|  | make_unique<SubscribeAttribute>(Id, "door-state", Attributes::DoorState::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "door-open-events", Attributes::DoorOpenEvents::Id, credsIssuerConfig),     // | 
|  | make_unique<SubscribeAttribute>(Id, "door-closed-events", Attributes::DoorClosedEvents::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "open-period", Attributes::OpenPeriod::Id, credsIssuerConfig),              // | 
|  | make_unique<SubscribeAttribute>(Id, "number-of-total-users-supported", Attributes::NumberOfTotalUsersSupported::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "number-of-pinusers-supported", Attributes::NumberOfPINUsersSupported::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "number-of-rfidusers-supported", Attributes::NumberOfRFIDUsersSupported::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "number-of-week-day-schedules-supported-per-user", | 
|  | Attributes::NumberOfWeekDaySchedulesSupportedPerUser::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "number-of-year-day-schedules-supported-per-user", | 
|  | Attributes::NumberOfYearDaySchedulesSupportedPerUser::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "number-of-holiday-schedules-supported", | 
|  | Attributes::NumberOfHolidaySchedulesSupported::Id, credsIssuerConfig),            // | 
|  | make_unique<SubscribeAttribute>(Id, "max-pincode-length", Attributes::MaxPINCodeLength::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "min-pincode-length", Attributes::MinPINCodeLength::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "max-rfidcode-length", Attributes::MaxRFIDCodeLength::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "min-rfidcode-length", Attributes::MinRFIDCodeLength::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "credential-rules-support", Attributes::CredentialRulesSupport::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "number-of-credentials-supported-per-user", | 
|  | Attributes::NumberOfCredentialsSupportedPerUser::Id, credsIssuerConfig),    // | 
|  | make_unique<SubscribeAttribute>(Id, "language", Attributes::Language::Id, credsIssuerConfig),               // | 
|  | make_unique<SubscribeAttribute>(Id, "ledsettings", Attributes::LEDSettings::Id, credsIssuerConfig),         // | 
|  | make_unique<SubscribeAttribute>(Id, "auto-relock-time", Attributes::AutoRelockTime::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "sound-volume", Attributes::SoundVolume::Id, credsIssuerConfig),        // | 
|  | make_unique<SubscribeAttribute>(Id, "operating-mode", Attributes::OperatingMode::Id, credsIssuerConfig),    // | 
|  | make_unique<SubscribeAttribute>(Id, "supported-operating-modes", Attributes::SupportedOperatingModes::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "default-configuration-register", Attributes::DefaultConfigurationRegister::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "enable-local-programming", Attributes::EnableLocalProgramming::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "enable-one-touch-locking", Attributes::EnableOneTouchLocking::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "enable-inside-status-led", Attributes::EnableInsideStatusLED::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "enable-privacy-mode-button", Attributes::EnablePrivacyModeButton::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "local-programming-features", Attributes::LocalProgrammingFeatures::Id, | 
|  | credsIssuerConfig),                                                                    // | 
|  | make_unique<SubscribeAttribute>(Id, "wrong-code-entry-limit", Attributes::WrongCodeEntryLimit::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "user-code-temporary-disable-time", Attributes::UserCodeTemporaryDisableTime::Id, | 
|  | credsIssuerConfig),                                                                // | 
|  | make_unique<SubscribeAttribute>(Id, "send-pinover-the-air", Attributes::SendPINOverTheAir::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "require-pinfor-remote-operation", Attributes::RequirePINforRemoteOperation::Id, | 
|  | credsIssuerConfig),                                                                     // | 
|  | make_unique<SubscribeAttribute>(Id, "expiring-user-timeout", Attributes::ExpiringUserTimeout::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | // | 
|  | // Events | 
|  | // | 
|  | make_unique<ReadEvent>(Id, credsIssuerConfig),                                                              // | 
|  | make_unique<ReadEvent>(Id, "door-lock-alarm", Events::DoorLockAlarm::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadEvent>(Id, "door-state-change", Events::DoorStateChange::Id, credsIssuerConfig),            // | 
|  | make_unique<ReadEvent>(Id, "lock-operation", Events::LockOperation::Id, credsIssuerConfig),                 // | 
|  | make_unique<ReadEvent>(Id, "lock-operation-error", Events::LockOperationError::Id, credsIssuerConfig),      // | 
|  | make_unique<ReadEvent>(Id, "lock-user-change", Events::LockUserChange::Id, credsIssuerConfig),              // | 
|  | make_unique<SubscribeEvent>(Id, credsIssuerConfig),                                                         // | 
|  | make_unique<SubscribeEvent>(Id, "door-lock-alarm", Events::DoorLockAlarm::Id, credsIssuerConfig),           // | 
|  | make_unique<SubscribeEvent>(Id, "door-state-change", Events::DoorStateChange::Id, credsIssuerConfig),       // | 
|  | make_unique<SubscribeEvent>(Id, "lock-operation", Events::LockOperation::Id, credsIssuerConfig),            // | 
|  | make_unique<SubscribeEvent>(Id, "lock-operation-error", Events::LockOperationError::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeEvent>(Id, "lock-user-change", Events::LockUserChange::Id, credsIssuerConfig),         // | 
|  | }; | 
|  |  | 
|  | commands.Register(clusterName, clusterCommands); | 
|  | } | 
|  | void registerClusterWindowCovering(Commands & commands, CredentialIssuerCommands * credsIssuerConfig) | 
|  | { | 
|  | using namespace chip::app::Clusters::WindowCovering; | 
|  |  | 
|  | const char * clusterName = "WindowCovering"; | 
|  |  | 
|  | commands_list clusterCommands = { | 
|  | // | 
|  | // Commands | 
|  | // | 
|  | make_unique<ClusterCommand>(Id, credsIssuerConfig),               // | 
|  | make_unique<WindowCoveringUpOrOpen>(credsIssuerConfig),           // | 
|  | make_unique<WindowCoveringDownOrClose>(credsIssuerConfig),        // | 
|  | make_unique<WindowCoveringStopMotion>(credsIssuerConfig),         // | 
|  | make_unique<WindowCoveringGoToLiftValue>(credsIssuerConfig),      // | 
|  | make_unique<WindowCoveringGoToLiftPercentage>(credsIssuerConfig), // | 
|  | make_unique<WindowCoveringGoToTiltValue>(credsIssuerConfig),      // | 
|  | make_unique<WindowCoveringGoToTiltPercentage>(credsIssuerConfig), // | 
|  | // | 
|  | // Attributes | 
|  | // | 
|  | make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                        // | 
|  | make_unique<ReadAttribute>(Id, "type", Attributes::Type::Id, credsIssuerConfig),                                          // | 
|  | make_unique<ReadAttribute>(Id, "physical-closed-limit-lift", Attributes::PhysicalClosedLimitLift::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "physical-closed-limit-tilt", Attributes::PhysicalClosedLimitTilt::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "current-position-lift", Attributes::CurrentPositionLift::Id, credsIssuerConfig),          // | 
|  | make_unique<ReadAttribute>(Id, "current-position-tilt", Attributes::CurrentPositionTilt::Id, credsIssuerConfig),          // | 
|  | make_unique<ReadAttribute>(Id, "number-of-actuations-lift", Attributes::NumberOfActuationsLift::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "number-of-actuations-tilt", Attributes::NumberOfActuationsTilt::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "config-status", Attributes::ConfigStatus::Id, credsIssuerConfig),                         // | 
|  | make_unique<ReadAttribute>(Id, "current-position-lift-percentage", Attributes::CurrentPositionLiftPercentage::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "current-position-tilt-percentage", Attributes::CurrentPositionTiltPercentage::Id, | 
|  | credsIssuerConfig),                                                              // | 
|  | make_unique<ReadAttribute>(Id, "operational-status", Attributes::OperationalStatus::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "target-position-lift-percent100ths", Attributes::TargetPositionLiftPercent100ths::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "target-position-tilt-percent100ths", Attributes::TargetPositionTiltPercent100ths::Id, | 
|  | credsIssuerConfig),                                                         // | 
|  | make_unique<ReadAttribute>(Id, "end-product-type", Attributes::EndProductType::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "current-position-lift-percent100ths", Attributes::CurrentPositionLiftPercent100ths::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "current-position-tilt-percent100ths", Attributes::CurrentPositionTiltPercent100ths::Id, | 
|  | credsIssuerConfig),                                                                          // | 
|  | make_unique<ReadAttribute>(Id, "installed-open-limit-lift", Attributes::InstalledOpenLimitLift::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "installed-closed-limit-lift", Attributes::InstalledClosedLimitLift::Id, | 
|  | credsIssuerConfig),                                                                          // | 
|  | make_unique<ReadAttribute>(Id, "installed-open-limit-tilt", Attributes::InstalledOpenLimitTilt::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "installed-closed-limit-tilt", Attributes::InstalledClosedLimitTilt::Id, | 
|  | credsIssuerConfig),                                                                     // | 
|  | make_unique<ReadAttribute>(Id, "mode", Attributes::Mode::Id, credsIssuerConfig),                                   // | 
|  | make_unique<ReadAttribute>(Id, "safety-status", Attributes::SafetyStatus::Id, credsIssuerConfig),                  // | 
|  | make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              // | 
|  | make_unique<WriteAttribute<chip::app::Clusters::WindowCovering::Type>>(Id, "type", 0, UINT8_MAX, Attributes::Type::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "physical-closed-limit-lift", 0, UINT16_MAX, | 
|  | Attributes::PhysicalClosedLimitLift::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "physical-closed-limit-tilt", 0, UINT16_MAX, | 
|  | Attributes::PhysicalClosedLimitTilt::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint16_t>>>(Id, "current-position-lift", 0, UINT16_MAX, | 
|  | Attributes::CurrentPositionLift::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint16_t>>>(Id, "current-position-tilt", 0, UINT16_MAX, | 
|  | Attributes::CurrentPositionTilt::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "number-of-actuations-lift", 0, UINT16_MAX, | 
|  | Attributes::NumberOfActuationsLift::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "number-of-actuations-tilt", 0, UINT16_MAX, | 
|  | Attributes::NumberOfActuationsTilt::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::BitMask<chip::app::Clusters::WindowCovering::ConfigStatus>>>( | 
|  | Id, "config-status", 0, UINT8_MAX, Attributes::ConfigStatus::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<chip::Percent>>>( | 
|  | Id, "current-position-lift-percentage", 0, UINT8_MAX, Attributes::CurrentPositionLiftPercentage::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<chip::Percent>>>( | 
|  | Id, "current-position-tilt-percentage", 0, UINT8_MAX, Attributes::CurrentPositionTiltPercentage::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::BitMask<chip::app::Clusters::WindowCovering::OperationalStatus>>>( | 
|  | Id, "operational-status", 0, UINT8_MAX, Attributes::OperationalStatus::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<chip::Percent100ths>>>( | 
|  | Id, "target-position-lift-percent100ths", 0, UINT16_MAX, Attributes::TargetPositionLiftPercent100ths::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<chip::Percent100ths>>>( | 
|  | Id, "target-position-tilt-percent100ths", 0, UINT16_MAX, Attributes::TargetPositionTiltPercent100ths::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::Clusters::WindowCovering::EndProductType>>( | 
|  | Id, "end-product-type", 0, UINT8_MAX, Attributes::EndProductType::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<chip::Percent100ths>>>( | 
|  | Id, "current-position-lift-percent100ths", 0, UINT16_MAX, Attributes::CurrentPositionLiftPercent100ths::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<chip::Percent100ths>>>( | 
|  | Id, "current-position-tilt-percent100ths", 0, UINT16_MAX, Attributes::CurrentPositionTiltPercent100ths::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "installed-open-limit-lift", 0, UINT16_MAX, | 
|  | Attributes::InstalledOpenLimitLift::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "installed-closed-limit-lift", 0, UINT16_MAX, | 
|  | Attributes::InstalledClosedLimitLift::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "installed-open-limit-tilt", 0, UINT16_MAX, | 
|  | Attributes::InstalledOpenLimitTilt::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "installed-closed-limit-tilt", 0, UINT16_MAX, | 
|  | Attributes::InstalledClosedLimitTilt::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::BitMask<chip::app::Clusters::WindowCovering::Mode>>>( | 
|  | Id, "mode", 0, UINT8_MAX, Attributes::Mode::Id, WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::BitMask<chip::app::Clusters::WindowCovering::SafetyStatus>>>( | 
|  | Id, "safety-status", 0, UINT16_MAX, Attributes::SafetyStatus::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>( | 
|  | Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>( | 
|  | Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                  // | 
|  | make_unique<SubscribeAttribute>(Id, "type", Attributes::Type::Id, credsIssuerConfig),    // | 
|  | make_unique<SubscribeAttribute>(Id, "physical-closed-limit-lift", Attributes::PhysicalClosedLimitLift::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "physical-closed-limit-tilt", Attributes::PhysicalClosedLimitTilt::Id, | 
|  | credsIssuerConfig),                                                                   // | 
|  | make_unique<SubscribeAttribute>(Id, "current-position-lift", Attributes::CurrentPositionLift::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "current-position-tilt", Attributes::CurrentPositionTilt::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "number-of-actuations-lift", Attributes::NumberOfActuationsLift::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "number-of-actuations-tilt", Attributes::NumberOfActuationsTilt::Id, | 
|  | credsIssuerConfig),                                                    // | 
|  | make_unique<SubscribeAttribute>(Id, "config-status", Attributes::ConfigStatus::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "current-position-lift-percentage", Attributes::CurrentPositionLiftPercentage::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "current-position-tilt-percentage", Attributes::CurrentPositionTiltPercentage::Id, | 
|  | credsIssuerConfig),                                                              // | 
|  | make_unique<SubscribeAttribute>(Id, "operational-status", Attributes::OperationalStatus::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "target-position-lift-percent100ths", Attributes::TargetPositionLiftPercent100ths::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "target-position-tilt-percent100ths", Attributes::TargetPositionTiltPercent100ths::Id, | 
|  | credsIssuerConfig),                                                         // | 
|  | make_unique<SubscribeAttribute>(Id, "end-product-type", Attributes::EndProductType::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "current-position-lift-percent100ths", Attributes::CurrentPositionLiftPercent100ths::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "current-position-tilt-percent100ths", Attributes::CurrentPositionTiltPercent100ths::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "installed-open-limit-lift", Attributes::InstalledOpenLimitLift::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "installed-closed-limit-lift", Attributes::InstalledClosedLimitLift::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "installed-open-limit-tilt", Attributes::InstalledOpenLimitTilt::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "installed-closed-limit-tilt", Attributes::InstalledClosedLimitTilt::Id, | 
|  | credsIssuerConfig),                                                                     // | 
|  | make_unique<SubscribeAttribute>(Id, "mode", Attributes::Mode::Id, credsIssuerConfig),                                   // | 
|  | make_unique<SubscribeAttribute>(Id, "safety-status", Attributes::SafetyStatus::Id, credsIssuerConfig),                  // | 
|  | make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | // | 
|  | // Events | 
|  | // | 
|  | make_unique<ReadEvent>(Id, credsIssuerConfig),      // | 
|  | make_unique<SubscribeEvent>(Id, credsIssuerConfig), // | 
|  | }; | 
|  |  | 
|  | commands.Register(clusterName, clusterCommands); | 
|  | } | 
|  | void registerClusterBarrierControl(Commands & commands, CredentialIssuerCommands * credsIssuerConfig) | 
|  | { | 
|  | using namespace chip::app::Clusters::BarrierControl; | 
|  |  | 
|  | const char * clusterName = "BarrierControl"; | 
|  |  | 
|  | commands_list clusterCommands = { | 
|  | // | 
|  | // Commands | 
|  | // | 
|  | make_unique<ClusterCommand>(Id, credsIssuerConfig),                      // | 
|  | make_unique<BarrierControlBarrierControlGoToPercent>(credsIssuerConfig), // | 
|  | make_unique<BarrierControlBarrierControlStop>(credsIssuerConfig),        // | 
|  | // | 
|  | // Attributes | 
|  | // | 
|  | make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                               // | 
|  | make_unique<ReadAttribute>(Id, "barrier-moving-state", Attributes::BarrierMovingState::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "barrier-safety-status", Attributes::BarrierSafetyStatus::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "barrier-capabilities", Attributes::BarrierCapabilities::Id, credsIssuerConfig),  // | 
|  | make_unique<ReadAttribute>(Id, "barrier-open-events", Attributes::BarrierOpenEvents::Id, credsIssuerConfig),     // | 
|  | make_unique<ReadAttribute>(Id, "barrier-close-events", Attributes::BarrierCloseEvents::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "barrier-command-open-events", Attributes::BarrierCommandOpenEvents::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "barrier-command-close-events", Attributes::BarrierCommandCloseEvents::Id, | 
|  | credsIssuerConfig),                                                                     // | 
|  | make_unique<ReadAttribute>(Id, "barrier-open-period", Attributes::BarrierOpenPeriod::Id, credsIssuerConfig),       // | 
|  | make_unique<ReadAttribute>(Id, "barrier-close-period", Attributes::BarrierClosePeriod::Id, credsIssuerConfig),     // | 
|  | make_unique<ReadAttribute>(Id, "barrier-position", Attributes::BarrierPosition::Id, credsIssuerConfig),            // | 
|  | make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "barrier-moving-state", 0, UINT8_MAX, Attributes::BarrierMovingState::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "barrier-safety-status", 0, UINT16_MAX, Attributes::BarrierSafetyStatus::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "barrier-capabilities", 0, UINT8_MAX, Attributes::BarrierCapabilities::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "barrier-open-events", 0, UINT16_MAX, Attributes::BarrierOpenEvents::Id, | 
|  | WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "barrier-close-events", 0, UINT16_MAX, Attributes::BarrierCloseEvents::Id, | 
|  | WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "barrier-command-open-events", 0, UINT16_MAX, | 
|  | Attributes::BarrierCommandOpenEvents::Id, WriteCommandType::kWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "barrier-command-close-events", 0, UINT16_MAX, | 
|  | Attributes::BarrierCommandCloseEvents::Id, WriteCommandType::kWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "barrier-open-period", 0, UINT16_MAX, Attributes::BarrierOpenPeriod::Id, | 
|  | WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "barrier-close-period", 0, UINT16_MAX, Attributes::BarrierClosePeriod::Id, | 
|  | WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "barrier-position", 0, UINT8_MAX, Attributes::BarrierPosition::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>( | 
|  | Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>( | 
|  | Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig),                              // | 
|  | make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                               // | 
|  | make_unique<SubscribeAttribute>(Id, "barrier-moving-state", Attributes::BarrierMovingState::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "barrier-safety-status", Attributes::BarrierSafetyStatus::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "barrier-capabilities", Attributes::BarrierCapabilities::Id, credsIssuerConfig),  // | 
|  | make_unique<SubscribeAttribute>(Id, "barrier-open-events", Attributes::BarrierOpenEvents::Id, credsIssuerConfig),     // | 
|  | make_unique<SubscribeAttribute>(Id, "barrier-close-events", Attributes::BarrierCloseEvents::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "barrier-command-open-events", Attributes::BarrierCommandOpenEvents::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "barrier-command-close-events", Attributes::BarrierCommandCloseEvents::Id, | 
|  | credsIssuerConfig),                                                                     // | 
|  | make_unique<SubscribeAttribute>(Id, "barrier-open-period", Attributes::BarrierOpenPeriod::Id, credsIssuerConfig),       // | 
|  | make_unique<SubscribeAttribute>(Id, "barrier-close-period", Attributes::BarrierClosePeriod::Id, credsIssuerConfig),     // | 
|  | make_unique<SubscribeAttribute>(Id, "barrier-position", Attributes::BarrierPosition::Id, credsIssuerConfig),            // | 
|  | make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | // | 
|  | // Events | 
|  | // | 
|  | make_unique<ReadEvent>(Id, credsIssuerConfig),      // | 
|  | make_unique<SubscribeEvent>(Id, credsIssuerConfig), // | 
|  | }; | 
|  |  | 
|  | commands.Register(clusterName, clusterCommands); | 
|  | } | 
|  | void registerClusterPumpConfigurationAndControl(Commands & commands, CredentialIssuerCommands * credsIssuerConfig) | 
|  | { | 
|  | using namespace chip::app::Clusters::PumpConfigurationAndControl; | 
|  |  | 
|  | const char * clusterName = "PumpConfigurationAndControl"; | 
|  |  | 
|  | commands_list clusterCommands = { | 
|  | // | 
|  | // Commands | 
|  | // | 
|  | make_unique<ClusterCommand>(Id, credsIssuerConfig), // | 
|  | // | 
|  | // Attributes | 
|  | // | 
|  | make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                     // | 
|  | make_unique<ReadAttribute>(Id, "max-pressure", Attributes::MaxPressure::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "max-speed", Attributes::MaxSpeed::Id, credsIssuerConfig),                              // | 
|  | make_unique<ReadAttribute>(Id, "max-flow", Attributes::MaxFlow::Id, credsIssuerConfig),                                // | 
|  | make_unique<ReadAttribute>(Id, "min-const-pressure", Attributes::MinConstPressure::Id, credsIssuerConfig),             // | 
|  | make_unique<ReadAttribute>(Id, "max-const-pressure", Attributes::MaxConstPressure::Id, credsIssuerConfig),             // | 
|  | make_unique<ReadAttribute>(Id, "min-comp-pressure", Attributes::MinCompPressure::Id, credsIssuerConfig),               // | 
|  | make_unique<ReadAttribute>(Id, "max-comp-pressure", Attributes::MaxCompPressure::Id, credsIssuerConfig),               // | 
|  | make_unique<ReadAttribute>(Id, "min-const-speed", Attributes::MinConstSpeed::Id, credsIssuerConfig),                   // | 
|  | make_unique<ReadAttribute>(Id, "max-const-speed", Attributes::MaxConstSpeed::Id, credsIssuerConfig),                   // | 
|  | make_unique<ReadAttribute>(Id, "min-const-flow", Attributes::MinConstFlow::Id, credsIssuerConfig),                     // | 
|  | make_unique<ReadAttribute>(Id, "max-const-flow", Attributes::MaxConstFlow::Id, credsIssuerConfig),                     // | 
|  | make_unique<ReadAttribute>(Id, "min-const-temp", Attributes::MinConstTemp::Id, credsIssuerConfig),                     // | 
|  | make_unique<ReadAttribute>(Id, "max-const-temp", Attributes::MaxConstTemp::Id, credsIssuerConfig),                     // | 
|  | make_unique<ReadAttribute>(Id, "pump-status", Attributes::PumpStatus::Id, credsIssuerConfig),                          // | 
|  | make_unique<ReadAttribute>(Id, "effective-operation-mode", Attributes::EffectiveOperationMode::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "effective-control-mode", Attributes::EffectiveControlMode::Id, credsIssuerConfig),     // | 
|  | make_unique<ReadAttribute>(Id, "capacity", Attributes::Capacity::Id, credsIssuerConfig),                               // | 
|  | make_unique<ReadAttribute>(Id, "speed", Attributes::Speed::Id, credsIssuerConfig),                                     // | 
|  | make_unique<ReadAttribute>(Id, "lifetime-running-hours", Attributes::LifetimeRunningHours::Id, credsIssuerConfig),     // | 
|  | make_unique<ReadAttribute>(Id, "power", Attributes::Power::Id, credsIssuerConfig),                                     // | 
|  | make_unique<ReadAttribute>(Id, "lifetime-energy-consumed", Attributes::LifetimeEnergyConsumed::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "operation-mode", Attributes::OperationMode::Id, credsIssuerConfig),                    // | 
|  | make_unique<ReadAttribute>(Id, "control-mode", Attributes::ControlMode::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig),     // | 
|  | make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),       // | 
|  | make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                            // | 
|  | make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                    // | 
|  | make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                          // | 
|  | make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),                // | 
|  | make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                                  // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<int16_t>>>(Id, "max-pressure", INT16_MIN, INT16_MAX, | 
|  | Attributes::MaxPressure::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint16_t>>>( | 
|  | Id, "max-speed", 0, UINT16_MAX, Attributes::MaxSpeed::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint16_t>>>( | 
|  | Id, "max-flow", 0, UINT16_MAX, Attributes::MaxFlow::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<int16_t>>>(Id, "min-const-pressure", INT16_MIN, INT16_MAX, | 
|  | Attributes::MinConstPressure::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<int16_t>>>(Id, "max-const-pressure", INT16_MIN, INT16_MAX, | 
|  | Attributes::MaxConstPressure::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<int16_t>>>(Id, "min-comp-pressure", INT16_MIN, INT16_MAX, | 
|  | Attributes::MinCompPressure::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<int16_t>>>(Id, "max-comp-pressure", INT16_MIN, INT16_MAX, | 
|  | Attributes::MaxCompPressure::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint16_t>>>(Id, "min-const-speed", 0, UINT16_MAX, | 
|  | Attributes::MinConstSpeed::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint16_t>>>(Id, "max-const-speed", 0, UINT16_MAX, | 
|  | Attributes::MaxConstSpeed::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint16_t>>>( | 
|  | Id, "min-const-flow", 0, UINT16_MAX, Attributes::MinConstFlow::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint16_t>>>( | 
|  | Id, "max-const-flow", 0, UINT16_MAX, Attributes::MaxConstFlow::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<int16_t>>>(Id, "min-const-temp", INT16_MIN, INT16_MAX, | 
|  | Attributes::MinConstTemp::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<int16_t>>>(Id, "max-const-temp", INT16_MIN, INT16_MAX, | 
|  | Attributes::MaxConstTemp::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::BitMask<chip::app::Clusters::PumpConfigurationAndControl::PumpStatusBitmap>>>( | 
|  | Id, "pump-status", 0, UINT16_MAX, Attributes::PumpStatus::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::Clusters::PumpConfigurationAndControl::OperationModeEnum>>( | 
|  | Id, "effective-operation-mode", 0, UINT8_MAX, Attributes::EffectiveOperationMode::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::Clusters::PumpConfigurationAndControl::ControlModeEnum>>( | 
|  | Id, "effective-control-mode", 0, UINT8_MAX, Attributes::EffectiveControlMode::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<int16_t>>>( | 
|  | Id, "capacity", INT16_MIN, INT16_MAX, Attributes::Capacity::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint16_t>>>(Id, "speed", 0, UINT16_MAX, Attributes::Speed::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint32_t>>>(Id, "lifetime-running-hours", 0, UINT32_MAX, | 
|  | Attributes::LifetimeRunningHours::Id, | 
|  | WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint32_t>>>(Id, "power", 0, UINT32_MAX, Attributes::Power::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint32_t>>>(Id, "lifetime-energy-consumed", 0, UINT32_MAX, | 
|  | Attributes::LifetimeEnergyConsumed::Id, | 
|  | WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::Clusters::PumpConfigurationAndControl::OperationModeEnum>>( | 
|  | Id, "operation-mode", 0, UINT8_MAX, Attributes::OperationMode::Id, WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::Clusters::PumpConfigurationAndControl::ControlModeEnum>>( | 
|  | Id, "control-mode", 0, UINT8_MAX, Attributes::ControlMode::Id, WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>( | 
|  | Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>( | 
|  | Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                         // | 
|  | make_unique<SubscribeAttribute>(Id, "max-pressure", Attributes::MaxPressure::Id, credsIssuerConfig),            // | 
|  | make_unique<SubscribeAttribute>(Id, "max-speed", Attributes::MaxSpeed::Id, credsIssuerConfig),                  // | 
|  | make_unique<SubscribeAttribute>(Id, "max-flow", Attributes::MaxFlow::Id, credsIssuerConfig),                    // | 
|  | make_unique<SubscribeAttribute>(Id, "min-const-pressure", Attributes::MinConstPressure::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "max-const-pressure", Attributes::MaxConstPressure::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "min-comp-pressure", Attributes::MinCompPressure::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "max-comp-pressure", Attributes::MaxCompPressure::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "min-const-speed", Attributes::MinConstSpeed::Id, credsIssuerConfig),       // | 
|  | make_unique<SubscribeAttribute>(Id, "max-const-speed", Attributes::MaxConstSpeed::Id, credsIssuerConfig),       // | 
|  | make_unique<SubscribeAttribute>(Id, "min-const-flow", Attributes::MinConstFlow::Id, credsIssuerConfig),         // | 
|  | make_unique<SubscribeAttribute>(Id, "max-const-flow", Attributes::MaxConstFlow::Id, credsIssuerConfig),         // | 
|  | make_unique<SubscribeAttribute>(Id, "min-const-temp", Attributes::MinConstTemp::Id, credsIssuerConfig),         // | 
|  | make_unique<SubscribeAttribute>(Id, "max-const-temp", Attributes::MaxConstTemp::Id, credsIssuerConfig),         // | 
|  | make_unique<SubscribeAttribute>(Id, "pump-status", Attributes::PumpStatus::Id, credsIssuerConfig),              // | 
|  | make_unique<SubscribeAttribute>(Id, "effective-operation-mode", Attributes::EffectiveOperationMode::Id, | 
|  | credsIssuerConfig),                                                                     // | 
|  | make_unique<SubscribeAttribute>(Id, "effective-control-mode", Attributes::EffectiveControlMode::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "capacity", Attributes::Capacity::Id, credsIssuerConfig),                           // | 
|  | make_unique<SubscribeAttribute>(Id, "speed", Attributes::Speed::Id, credsIssuerConfig),                                 // | 
|  | make_unique<SubscribeAttribute>(Id, "lifetime-running-hours", Attributes::LifetimeRunningHours::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "power", Attributes::Power::Id, credsIssuerConfig),                                 // | 
|  | make_unique<SubscribeAttribute>(Id, "lifetime-energy-consumed", Attributes::LifetimeEnergyConsumed::Id, | 
|  | credsIssuerConfig),                                                                     // | 
|  | make_unique<SubscribeAttribute>(Id, "operation-mode", Attributes::OperationMode::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "control-mode", Attributes::ControlMode::Id, credsIssuerConfig),                    // | 
|  | make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | // | 
|  | // Events | 
|  | // | 
|  | make_unique<ReadEvent>(Id, credsIssuerConfig),                                                                            // | 
|  | make_unique<ReadEvent>(Id, "supply-voltage-low", Events::SupplyVoltageLow::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadEvent>(Id, "supply-voltage-high", Events::SupplyVoltageHigh::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadEvent>(Id, "power-missing-phase", Events::PowerMissingPhase::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadEvent>(Id, "system-pressure-low", Events::SystemPressureLow::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadEvent>(Id, "system-pressure-high", Events::SystemPressureHigh::Id, credsIssuerConfig),                    // | 
|  | make_unique<ReadEvent>(Id, "dry-running", Events::DryRunning::Id, credsIssuerConfig),                                     // | 
|  | make_unique<ReadEvent>(Id, "motor-temperature-high", Events::MotorTemperatureHigh::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadEvent>(Id, "pump-motor-fatal-failure", Events::PumpMotorFatalFailure::Id, credsIssuerConfig),             // | 
|  | make_unique<ReadEvent>(Id, "electronic-temperature-high", Events::ElectronicTemperatureHigh::Id, credsIssuerConfig),      // | 
|  | make_unique<ReadEvent>(Id, "pump-blocked", Events::PumpBlocked::Id, credsIssuerConfig),                                   // | 
|  | make_unique<ReadEvent>(Id, "sensor-failure", Events::SensorFailure::Id, credsIssuerConfig),                               // | 
|  | make_unique<ReadEvent>(Id, "electronic-non-fatal-failure", Events::ElectronicNonFatalFailure::Id, credsIssuerConfig),     // | 
|  | make_unique<ReadEvent>(Id, "electronic-fatal-failure", Events::ElectronicFatalFailure::Id, credsIssuerConfig),            // | 
|  | make_unique<ReadEvent>(Id, "general-fault", Events::GeneralFault::Id, credsIssuerConfig),                                 // | 
|  | make_unique<ReadEvent>(Id, "leakage", Events::Leakage::Id, credsIssuerConfig),                                            // | 
|  | make_unique<ReadEvent>(Id, "air-detection", Events::AirDetection::Id, credsIssuerConfig),                                 // | 
|  | make_unique<ReadEvent>(Id, "turbine-operation", Events::TurbineOperation::Id, credsIssuerConfig),                         // | 
|  | make_unique<SubscribeEvent>(Id, credsIssuerConfig),                                                                       // | 
|  | make_unique<SubscribeEvent>(Id, "supply-voltage-low", Events::SupplyVoltageLow::Id, credsIssuerConfig),                   // | 
|  | make_unique<SubscribeEvent>(Id, "supply-voltage-high", Events::SupplyVoltageHigh::Id, credsIssuerConfig),                 // | 
|  | make_unique<SubscribeEvent>(Id, "power-missing-phase", Events::PowerMissingPhase::Id, credsIssuerConfig),                 // | 
|  | make_unique<SubscribeEvent>(Id, "system-pressure-low", Events::SystemPressureLow::Id, credsIssuerConfig),                 // | 
|  | make_unique<SubscribeEvent>(Id, "system-pressure-high", Events::SystemPressureHigh::Id, credsIssuerConfig),               // | 
|  | make_unique<SubscribeEvent>(Id, "dry-running", Events::DryRunning::Id, credsIssuerConfig),                                // | 
|  | make_unique<SubscribeEvent>(Id, "motor-temperature-high", Events::MotorTemperatureHigh::Id, credsIssuerConfig),           // | 
|  | make_unique<SubscribeEvent>(Id, "pump-motor-fatal-failure", Events::PumpMotorFatalFailure::Id, credsIssuerConfig),        // | 
|  | make_unique<SubscribeEvent>(Id, "electronic-temperature-high", Events::ElectronicTemperatureHigh::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeEvent>(Id, "pump-blocked", Events::PumpBlocked::Id, credsIssuerConfig),                              // | 
|  | make_unique<SubscribeEvent>(Id, "sensor-failure", Events::SensorFailure::Id, credsIssuerConfig),                          // | 
|  | make_unique<SubscribeEvent>(Id, "electronic-non-fatal-failure", Events::ElectronicNonFatalFailure::Id, | 
|  | credsIssuerConfig),                                                                     // | 
|  | make_unique<SubscribeEvent>(Id, "electronic-fatal-failure", Events::ElectronicFatalFailure::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeEvent>(Id, "general-fault", Events::GeneralFault::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeEvent>(Id, "leakage", Events::Leakage::Id, credsIssuerConfig),                                 // | 
|  | make_unique<SubscribeEvent>(Id, "air-detection", Events::AirDetection::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeEvent>(Id, "turbine-operation", Events::TurbineOperation::Id, credsIssuerConfig),              // | 
|  | }; | 
|  |  | 
|  | commands.Register(clusterName, clusterCommands); | 
|  | } | 
|  | void registerClusterThermostat(Commands & commands, CredentialIssuerCommands * credsIssuerConfig) | 
|  | { | 
|  | using namespace chip::app::Clusters::Thermostat; | 
|  |  | 
|  | const char * clusterName = "Thermostat"; | 
|  |  | 
|  | commands_list clusterCommands = { | 
|  | // | 
|  | // Commands | 
|  | // | 
|  | make_unique<ClusterCommand>(Id, credsIssuerConfig),            // | 
|  | make_unique<ThermostatSetpointRaiseLower>(credsIssuerConfig),  // | 
|  | make_unique<ThermostatSetWeeklySchedule>(credsIssuerConfig),   // | 
|  | make_unique<ThermostatGetWeeklySchedule>(credsIssuerConfig),   // | 
|  | make_unique<ThermostatClearWeeklySchedule>(credsIssuerConfig), // | 
|  | // | 
|  | // Attributes | 
|  | // | 
|  | make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                            // | 
|  | make_unique<ReadAttribute>(Id, "local-temperature", Attributes::LocalTemperature::Id, credsIssuerConfig),     // | 
|  | make_unique<ReadAttribute>(Id, "outdoor-temperature", Attributes::OutdoorTemperature::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "occupancy", Attributes::Occupancy::Id, credsIssuerConfig),                    // | 
|  | make_unique<ReadAttribute>(Id, "abs-min-heat-setpoint-limit", Attributes::AbsMinHeatSetpointLimit::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "abs-max-heat-setpoint-limit", Attributes::AbsMaxHeatSetpointLimit::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "abs-min-cool-setpoint-limit", Attributes::AbsMinCoolSetpointLimit::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "abs-max-cool-setpoint-limit", Attributes::AbsMaxCoolSetpointLimit::Id, | 
|  | credsIssuerConfig),                                                          // | 
|  | make_unique<ReadAttribute>(Id, "picooling-demand", Attributes::PICoolingDemand::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "piheating-demand", Attributes::PIHeatingDemand::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "hvacsystem-type-configuration", Attributes::HVACSystemTypeConfiguration::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "local-temperature-calibration", Attributes::LocalTemperatureCalibration::Id, | 
|  | credsIssuerConfig),                                                                           // | 
|  | make_unique<ReadAttribute>(Id, "occupied-cooling-setpoint", Attributes::OccupiedCoolingSetpoint::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "occupied-heating-setpoint", Attributes::OccupiedHeatingSetpoint::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "unoccupied-cooling-setpoint", Attributes::UnoccupiedCoolingSetpoint::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "unoccupied-heating-setpoint", Attributes::UnoccupiedHeatingSetpoint::Id, | 
|  | credsIssuerConfig),                                                                      // | 
|  | make_unique<ReadAttribute>(Id, "min-heat-setpoint-limit", Attributes::MinHeatSetpointLimit::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "max-heat-setpoint-limit", Attributes::MaxHeatSetpointLimit::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "min-cool-setpoint-limit", Attributes::MinCoolSetpointLimit::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "max-cool-setpoint-limit", Attributes::MaxCoolSetpointLimit::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "min-setpoint-dead-band", Attributes::MinSetpointDeadBand::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "remote-sensing", Attributes::RemoteSensing::Id, credsIssuerConfig),                 // | 
|  | make_unique<ReadAttribute>(Id, "control-sequence-of-operation", Attributes::ControlSequenceOfOperation::Id, | 
|  | credsIssuerConfig),                                                                       // | 
|  | make_unique<ReadAttribute>(Id, "system-mode", Attributes::SystemMode::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "thermostat-running-mode", Attributes::ThermostatRunningMode::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "start-of-week", Attributes::StartOfWeek::Id, credsIssuerConfig),                     // | 
|  | make_unique<ReadAttribute>(Id, "number-of-weekly-transitions", Attributes::NumberOfWeeklyTransitions::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "number-of-daily-transitions", Attributes::NumberOfDailyTransitions::Id, | 
|  | credsIssuerConfig),                                                                           // | 
|  | make_unique<ReadAttribute>(Id, "temperature-setpoint-hold", Attributes::TemperatureSetpointHold::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "temperature-setpoint-hold-duration", Attributes::TemperatureSetpointHoldDuration::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "thermostat-programming-operation-mode", Attributes::ThermostatProgrammingOperationMode::Id, | 
|  | credsIssuerConfig),                                                                         // | 
|  | make_unique<ReadAttribute>(Id, "thermostat-running-state", Attributes::ThermostatRunningState::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "setpoint-change-source", Attributes::SetpointChangeSource::Id, credsIssuerConfig),     // | 
|  | make_unique<ReadAttribute>(Id, "setpoint-change-amount", Attributes::SetpointChangeAmount::Id, credsIssuerConfig),     // | 
|  | make_unique<ReadAttribute>(Id, "setpoint-change-source-timestamp", Attributes::SetpointChangeSourceTimestamp::Id, | 
|  | credsIssuerConfig),                                                                     // | 
|  | make_unique<ReadAttribute>(Id, "occupied-setback", Attributes::OccupiedSetback::Id, credsIssuerConfig),            // | 
|  | make_unique<ReadAttribute>(Id, "occupied-setback-min", Attributes::OccupiedSetbackMin::Id, credsIssuerConfig),     // | 
|  | make_unique<ReadAttribute>(Id, "occupied-setback-max", Attributes::OccupiedSetbackMax::Id, credsIssuerConfig),     // | 
|  | make_unique<ReadAttribute>(Id, "unoccupied-setback", Attributes::UnoccupiedSetback::Id, credsIssuerConfig),        // | 
|  | make_unique<ReadAttribute>(Id, "unoccupied-setback-min", Attributes::UnoccupiedSetbackMin::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "unoccupied-setback-max", Attributes::UnoccupiedSetbackMax::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "emergency-heat-delta", Attributes::EmergencyHeatDelta::Id, credsIssuerConfig),     // | 
|  | make_unique<ReadAttribute>(Id, "actype", Attributes::ACType::Id, credsIssuerConfig),                               // | 
|  | make_unique<ReadAttribute>(Id, "accapacity", Attributes::ACCapacity::Id, credsIssuerConfig),                       // | 
|  | make_unique<ReadAttribute>(Id, "acrefrigerant-type", Attributes::ACRefrigerantType::Id, credsIssuerConfig),        // | 
|  | make_unique<ReadAttribute>(Id, "accompressor-type", Attributes::ACCompressorType::Id, credsIssuerConfig),          // | 
|  | make_unique<ReadAttribute>(Id, "acerror-code", Attributes::ACErrorCode::Id, credsIssuerConfig),                    // | 
|  | make_unique<ReadAttribute>(Id, "aclouver-position", Attributes::ACLouverPosition::Id, credsIssuerConfig),          // | 
|  | make_unique<ReadAttribute>(Id, "accoil-temperature", Attributes::ACCoilTemperature::Id, credsIssuerConfig),        // | 
|  | make_unique<ReadAttribute>(Id, "accapacityformat", Attributes::ACCapacityformat::Id, credsIssuerConfig),           // | 
|  | make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<int16_t>>>(Id, "local-temperature", INT16_MIN, INT16_MAX, | 
|  | Attributes::LocalTemperature::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<int16_t>>>(Id, "outdoor-temperature", INT16_MIN, INT16_MAX, | 
|  | Attributes::OutdoorTemperature::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "occupancy", 0, UINT8_MAX, Attributes::Occupancy::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<int16_t>>(Id, "abs-min-heat-setpoint-limit", INT16_MIN, INT16_MAX, | 
|  | Attributes::AbsMinHeatSetpointLimit::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<int16_t>>(Id, "abs-max-heat-setpoint-limit", INT16_MIN, INT16_MAX, | 
|  | Attributes::AbsMaxHeatSetpointLimit::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<int16_t>>(Id, "abs-min-cool-setpoint-limit", INT16_MIN, INT16_MAX, | 
|  | Attributes::AbsMinCoolSetpointLimit::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<int16_t>>(Id, "abs-max-cool-setpoint-limit", INT16_MIN, INT16_MAX, | 
|  | Attributes::AbsMaxCoolSetpointLimit::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "picooling-demand", 0, UINT8_MAX, Attributes::PICoolingDemand::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "piheating-demand", 0, UINT8_MAX, Attributes::PIHeatingDemand::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "hvacsystem-type-configuration", 0, UINT8_MAX, | 
|  | Attributes::HVACSystemTypeConfiguration::Id, WriteCommandType::kWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<int8_t>>(Id, "local-temperature-calibration", INT8_MIN, INT8_MAX, | 
|  | Attributes::LocalTemperatureCalibration::Id, WriteCommandType::kWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<int16_t>>(Id, "occupied-cooling-setpoint", INT16_MIN, INT16_MAX, | 
|  | Attributes::OccupiedCoolingSetpoint::Id, WriteCommandType::kWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<int16_t>>(Id, "occupied-heating-setpoint", INT16_MIN, INT16_MAX, | 
|  | Attributes::OccupiedHeatingSetpoint::Id, WriteCommandType::kWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<int16_t>>(Id, "unoccupied-cooling-setpoint", INT16_MIN, INT16_MAX, | 
|  | Attributes::UnoccupiedCoolingSetpoint::Id, WriteCommandType::kWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<int16_t>>(Id, "unoccupied-heating-setpoint", INT16_MIN, INT16_MAX, | 
|  | Attributes::UnoccupiedHeatingSetpoint::Id, WriteCommandType::kWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<int16_t>>(Id, "min-heat-setpoint-limit", INT16_MIN, INT16_MAX, | 
|  | Attributes::MinHeatSetpointLimit::Id, WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<int16_t>>(Id, "max-heat-setpoint-limit", INT16_MIN, INT16_MAX, | 
|  | Attributes::MaxHeatSetpointLimit::Id, WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<int16_t>>(Id, "min-cool-setpoint-limit", INT16_MIN, INT16_MAX, | 
|  | Attributes::MinCoolSetpointLimit::Id, WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<int16_t>>(Id, "max-cool-setpoint-limit", INT16_MIN, INT16_MAX, | 
|  | Attributes::MaxCoolSetpointLimit::Id, WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<int8_t>>(Id, "min-setpoint-dead-band", INT8_MIN, INT8_MAX, Attributes::MinSetpointDeadBand::Id, | 
|  | WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "remote-sensing", 0, UINT8_MAX, Attributes::RemoteSensing::Id, | 
|  | WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::Clusters::Thermostat::ThermostatControlSequence>>( | 
|  | Id, "control-sequence-of-operation", 0, UINT8_MAX, Attributes::ControlSequenceOfOperation::Id, WriteCommandType::kWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "system-mode", 0, UINT8_MAX, Attributes::SystemMode::Id, WriteCommandType::kWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "thermostat-running-mode", 0, UINT8_MAX, Attributes::ThermostatRunningMode::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "start-of-week", 0, UINT8_MAX, Attributes::StartOfWeek::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "number-of-weekly-transitions", 0, UINT8_MAX, | 
|  | Attributes::NumberOfWeeklyTransitions::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "number-of-daily-transitions", 0, UINT8_MAX, | 
|  | Attributes::NumberOfDailyTransitions::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "temperature-setpoint-hold", 0, UINT8_MAX, Attributes::TemperatureSetpointHold::Id, | 
|  | WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint16_t>>>( | 
|  | Id, "temperature-setpoint-hold-duration", 0, UINT16_MAX, Attributes::TemperatureSetpointHoldDuration::Id, | 
|  | WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "thermostat-programming-operation-mode", 0, UINT8_MAX, | 
|  | Attributes::ThermostatProgrammingOperationMode::Id, WriteCommandType::kWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "thermostat-running-state", 0, UINT16_MAX, Attributes::ThermostatRunningState::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "setpoint-change-source", 0, UINT8_MAX, Attributes::SetpointChangeSource::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<int16_t>>>(Id, "setpoint-change-amount", INT16_MIN, INT16_MAX, | 
|  | Attributes::SetpointChangeAmount::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "setpoint-change-source-timestamp", 0, UINT32_MAX, | 
|  | Attributes::SetpointChangeSourceTimestamp::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint8_t>>>( | 
|  | Id, "occupied-setback", 0, UINT8_MAX, Attributes::OccupiedSetback::Id, WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint8_t>>>(Id, "occupied-setback-min", 0, UINT8_MAX, | 
|  | Attributes::OccupiedSetbackMin::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint8_t>>>(Id, "occupied-setback-max", 0, UINT8_MAX, | 
|  | Attributes::OccupiedSetbackMax::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint8_t>>>(Id, "unoccupied-setback", 0, UINT8_MAX, | 
|  | Attributes::UnoccupiedSetback::Id, | 
|  | WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint8_t>>>(Id, "unoccupied-setback-min", 0, UINT8_MAX, | 
|  | Attributes::UnoccupiedSetbackMin::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint8_t>>>(Id, "unoccupied-setback-max", 0, UINT8_MAX, | 
|  | Attributes::UnoccupiedSetbackMax::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "emergency-heat-delta", 0, UINT8_MAX, Attributes::EmergencyHeatDelta::Id, | 
|  | WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "actype", 0, UINT8_MAX, Attributes::ACType::Id, WriteCommandType::kWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "accapacity", 0, UINT16_MAX, Attributes::ACCapacity::Id, WriteCommandType::kWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "acrefrigerant-type", 0, UINT8_MAX, Attributes::ACRefrigerantType::Id, | 
|  | WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "accompressor-type", 0, UINT8_MAX, Attributes::ACCompressorType::Id, | 
|  | WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "acerror-code", 0, UINT32_MAX, Attributes::ACErrorCode::Id, | 
|  | WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "aclouver-position", 0, UINT8_MAX, Attributes::ACLouverPosition::Id, | 
|  | WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<int16_t>>>(Id, "accoil-temperature", INT16_MIN, INT16_MAX, | 
|  | Attributes::ACCoilTemperature::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "accapacityformat", 0, UINT8_MAX, Attributes::ACCapacityformat::Id, | 
|  | WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>( | 
|  | Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>( | 
|  | Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig),                           // | 
|  | make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                            // | 
|  | make_unique<SubscribeAttribute>(Id, "local-temperature", Attributes::LocalTemperature::Id, credsIssuerConfig),     // | 
|  | make_unique<SubscribeAttribute>(Id, "outdoor-temperature", Attributes::OutdoorTemperature::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "occupancy", Attributes::Occupancy::Id, credsIssuerConfig),                    // | 
|  | make_unique<SubscribeAttribute>(Id, "abs-min-heat-setpoint-limit", Attributes::AbsMinHeatSetpointLimit::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "abs-max-heat-setpoint-limit", Attributes::AbsMaxHeatSetpointLimit::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "abs-min-cool-setpoint-limit", Attributes::AbsMinCoolSetpointLimit::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "abs-max-cool-setpoint-limit", Attributes::AbsMaxCoolSetpointLimit::Id, | 
|  | credsIssuerConfig),                                                          // | 
|  | make_unique<SubscribeAttribute>(Id, "picooling-demand", Attributes::PICoolingDemand::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "piheating-demand", Attributes::PIHeatingDemand::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "hvacsystem-type-configuration", Attributes::HVACSystemTypeConfiguration::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "local-temperature-calibration", Attributes::LocalTemperatureCalibration::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "occupied-cooling-setpoint", Attributes::OccupiedCoolingSetpoint::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "occupied-heating-setpoint", Attributes::OccupiedHeatingSetpoint::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "unoccupied-cooling-setpoint", Attributes::UnoccupiedCoolingSetpoint::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "unoccupied-heating-setpoint", Attributes::UnoccupiedHeatingSetpoint::Id, | 
|  | credsIssuerConfig),                                                                      // | 
|  | make_unique<SubscribeAttribute>(Id, "min-heat-setpoint-limit", Attributes::MinHeatSetpointLimit::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "max-heat-setpoint-limit", Attributes::MaxHeatSetpointLimit::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "min-cool-setpoint-limit", Attributes::MinCoolSetpointLimit::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "max-cool-setpoint-limit", Attributes::MaxCoolSetpointLimit::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "min-setpoint-dead-band", Attributes::MinSetpointDeadBand::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "remote-sensing", Attributes::RemoteSensing::Id, credsIssuerConfig),                 // | 
|  | make_unique<SubscribeAttribute>(Id, "control-sequence-of-operation", Attributes::ControlSequenceOfOperation::Id, | 
|  | credsIssuerConfig),                                                                       // | 
|  | make_unique<SubscribeAttribute>(Id, "system-mode", Attributes::SystemMode::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "thermostat-running-mode", Attributes::ThermostatRunningMode::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "start-of-week", Attributes::StartOfWeek::Id, credsIssuerConfig),                     // | 
|  | make_unique<SubscribeAttribute>(Id, "number-of-weekly-transitions", Attributes::NumberOfWeeklyTransitions::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "number-of-daily-transitions", Attributes::NumberOfDailyTransitions::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "temperature-setpoint-hold", Attributes::TemperatureSetpointHold::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "temperature-setpoint-hold-duration", Attributes::TemperatureSetpointHoldDuration::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "thermostat-programming-operation-mode", | 
|  | Attributes::ThermostatProgrammingOperationMode::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "thermostat-running-state", Attributes::ThermostatRunningState::Id, | 
|  | credsIssuerConfig),                                                                     // | 
|  | make_unique<SubscribeAttribute>(Id, "setpoint-change-source", Attributes::SetpointChangeSource::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "setpoint-change-amount", Attributes::SetpointChangeAmount::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "setpoint-change-source-timestamp", Attributes::SetpointChangeSourceTimestamp::Id, | 
|  | credsIssuerConfig),                                                                     // | 
|  | make_unique<SubscribeAttribute>(Id, "occupied-setback", Attributes::OccupiedSetback::Id, credsIssuerConfig),            // | 
|  | make_unique<SubscribeAttribute>(Id, "occupied-setback-min", Attributes::OccupiedSetbackMin::Id, credsIssuerConfig),     // | 
|  | make_unique<SubscribeAttribute>(Id, "occupied-setback-max", Attributes::OccupiedSetbackMax::Id, credsIssuerConfig),     // | 
|  | make_unique<SubscribeAttribute>(Id, "unoccupied-setback", Attributes::UnoccupiedSetback::Id, credsIssuerConfig),        // | 
|  | make_unique<SubscribeAttribute>(Id, "unoccupied-setback-min", Attributes::UnoccupiedSetbackMin::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "unoccupied-setback-max", Attributes::UnoccupiedSetbackMax::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "emergency-heat-delta", Attributes::EmergencyHeatDelta::Id, credsIssuerConfig),     // | 
|  | make_unique<SubscribeAttribute>(Id, "actype", Attributes::ACType::Id, credsIssuerConfig),                               // | 
|  | make_unique<SubscribeAttribute>(Id, "accapacity", Attributes::ACCapacity::Id, credsIssuerConfig),                       // | 
|  | make_unique<SubscribeAttribute>(Id, "acrefrigerant-type", Attributes::ACRefrigerantType::Id, credsIssuerConfig),        // | 
|  | make_unique<SubscribeAttribute>(Id, "accompressor-type", Attributes::ACCompressorType::Id, credsIssuerConfig),          // | 
|  | make_unique<SubscribeAttribute>(Id, "acerror-code", Attributes::ACErrorCode::Id, credsIssuerConfig),                    // | 
|  | make_unique<SubscribeAttribute>(Id, "aclouver-position", Attributes::ACLouverPosition::Id, credsIssuerConfig),          // | 
|  | make_unique<SubscribeAttribute>(Id, "accoil-temperature", Attributes::ACCoilTemperature::Id, credsIssuerConfig),        // | 
|  | make_unique<SubscribeAttribute>(Id, "accapacityformat", Attributes::ACCapacityformat::Id, credsIssuerConfig),           // | 
|  | make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | // | 
|  | // Events | 
|  | // | 
|  | make_unique<ReadEvent>(Id, credsIssuerConfig),      // | 
|  | make_unique<SubscribeEvent>(Id, credsIssuerConfig), // | 
|  | }; | 
|  |  | 
|  | commands.Register(clusterName, clusterCommands); | 
|  | } | 
|  | void registerClusterFanControl(Commands & commands, CredentialIssuerCommands * credsIssuerConfig) | 
|  | { | 
|  | using namespace chip::app::Clusters::FanControl; | 
|  |  | 
|  | const char * clusterName = "FanControl"; | 
|  |  | 
|  | commands_list clusterCommands = { | 
|  | // | 
|  | // Commands | 
|  | // | 
|  | make_unique<ClusterCommand>(Id, credsIssuerConfig), // | 
|  | // | 
|  | // Attributes | 
|  | // | 
|  | make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<ReadAttribute>(Id, "fan-mode", Attributes::FanMode::Id, credsIssuerConfig),                            // | 
|  | make_unique<ReadAttribute>(Id, "fan-mode-sequence", Attributes::FanModeSequence::Id, credsIssuerConfig),           // | 
|  | make_unique<ReadAttribute>(Id, "percent-setting", Attributes::PercentSetting::Id, credsIssuerConfig),              // | 
|  | make_unique<ReadAttribute>(Id, "percent-current", Attributes::PercentCurrent::Id, credsIssuerConfig),              // | 
|  | make_unique<ReadAttribute>(Id, "speed-max", Attributes::SpeedMax::Id, credsIssuerConfig),                          // | 
|  | make_unique<ReadAttribute>(Id, "speed-setting", Attributes::SpeedSetting::Id, credsIssuerConfig),                  // | 
|  | make_unique<ReadAttribute>(Id, "speed-current", Attributes::SpeedCurrent::Id, credsIssuerConfig),                  // | 
|  | make_unique<ReadAttribute>(Id, "rock-support", Attributes::RockSupport::Id, credsIssuerConfig),                    // | 
|  | make_unique<ReadAttribute>(Id, "rock-setting", Attributes::RockSetting::Id, credsIssuerConfig),                    // | 
|  | make_unique<ReadAttribute>(Id, "wind-support", Attributes::WindSupport::Id, credsIssuerConfig),                    // | 
|  | make_unique<ReadAttribute>(Id, "wind-setting", Attributes::WindSetting::Id, credsIssuerConfig),                    // | 
|  | make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              // | 
|  | make_unique<WriteAttribute<chip::app::Clusters::FanControl::FanModeType>>( | 
|  | Id, "fan-mode", 0, UINT8_MAX, Attributes::FanMode::Id, WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::Clusters::FanControl::FanModeSequenceType>>( | 
|  | Id, "fan-mode-sequence", 0, UINT8_MAX, Attributes::FanModeSequence::Id, WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint8_t>>>( | 
|  | Id, "percent-setting", 0, UINT8_MAX, Attributes::PercentSetting::Id, WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "percent-current", 0, UINT8_MAX, Attributes::PercentCurrent::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "speed-max", 0, UINT8_MAX, Attributes::SpeedMax::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint8_t>>>( | 
|  | Id, "speed-setting", 0, UINT8_MAX, Attributes::SpeedSetting::Id, WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "speed-current", 0, UINT8_MAX, Attributes::SpeedCurrent::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "rock-support", 0, UINT8_MAX, Attributes::RockSupport::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "rock-setting", 0, UINT8_MAX, Attributes::RockSetting::Id, | 
|  | WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "wind-support", 0, UINT8_MAX, Attributes::WindSupport::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "wind-setting", 0, UINT8_MAX, Attributes::WindSetting::Id, | 
|  | WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>( | 
|  | Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>( | 
|  | Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig),                                // | 
|  | make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<SubscribeAttribute>(Id, "fan-mode", Attributes::FanMode::Id, credsIssuerConfig),                            // | 
|  | make_unique<SubscribeAttribute>(Id, "fan-mode-sequence", Attributes::FanModeSequence::Id, credsIssuerConfig),           // | 
|  | make_unique<SubscribeAttribute>(Id, "percent-setting", Attributes::PercentSetting::Id, credsIssuerConfig),              // | 
|  | make_unique<SubscribeAttribute>(Id, "percent-current", Attributes::PercentCurrent::Id, credsIssuerConfig),              // | 
|  | make_unique<SubscribeAttribute>(Id, "speed-max", Attributes::SpeedMax::Id, credsIssuerConfig),                          // | 
|  | make_unique<SubscribeAttribute>(Id, "speed-setting", Attributes::SpeedSetting::Id, credsIssuerConfig),                  // | 
|  | make_unique<SubscribeAttribute>(Id, "speed-current", Attributes::SpeedCurrent::Id, credsIssuerConfig),                  // | 
|  | make_unique<SubscribeAttribute>(Id, "rock-support", Attributes::RockSupport::Id, credsIssuerConfig),                    // | 
|  | make_unique<SubscribeAttribute>(Id, "rock-setting", Attributes::RockSetting::Id, credsIssuerConfig),                    // | 
|  | make_unique<SubscribeAttribute>(Id, "wind-support", Attributes::WindSupport::Id, credsIssuerConfig),                    // | 
|  | make_unique<SubscribeAttribute>(Id, "wind-setting", Attributes::WindSetting::Id, credsIssuerConfig),                    // | 
|  | make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | // | 
|  | // Events | 
|  | // | 
|  | make_unique<ReadEvent>(Id, credsIssuerConfig),      // | 
|  | make_unique<SubscribeEvent>(Id, credsIssuerConfig), // | 
|  | }; | 
|  |  | 
|  | commands.Register(clusterName, clusterCommands); | 
|  | } | 
|  | void registerClusterThermostatUserInterfaceConfiguration(Commands & commands, CredentialIssuerCommands * credsIssuerConfig) | 
|  | { | 
|  | using namespace chip::app::Clusters::ThermostatUserInterfaceConfiguration; | 
|  |  | 
|  | const char * clusterName = "ThermostatUserInterfaceConfiguration"; | 
|  |  | 
|  | commands_list clusterCommands = { | 
|  | // | 
|  | // Commands | 
|  | // | 
|  | make_unique<ClusterCommand>(Id, credsIssuerConfig), // | 
|  | // | 
|  | // Attributes | 
|  | // | 
|  | make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                     // | 
|  | make_unique<ReadAttribute>(Id, "temperature-display-mode", Attributes::TemperatureDisplayMode::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "keypad-lockout", Attributes::KeypadLockout::Id, credsIssuerConfig),                    // | 
|  | make_unique<ReadAttribute>(Id, "schedule-programming-visibility", Attributes::ScheduleProgrammingVisibility::Id, | 
|  | credsIssuerConfig),                                                                     // | 
|  | make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "temperature-display-mode", 0, UINT8_MAX, Attributes::TemperatureDisplayMode::Id, | 
|  | WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "keypad-lockout", 0, UINT8_MAX, Attributes::KeypadLockout::Id, | 
|  | WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "schedule-programming-visibility", 0, UINT8_MAX, | 
|  | Attributes::ScheduleProgrammingVisibility::Id, WriteCommandType::kWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>( | 
|  | Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>( | 
|  | Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                  // | 
|  | make_unique<SubscribeAttribute>(Id, "temperature-display-mode", Attributes::TemperatureDisplayMode::Id, | 
|  | credsIssuerConfig),                                                      // | 
|  | make_unique<SubscribeAttribute>(Id, "keypad-lockout", Attributes::KeypadLockout::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "schedule-programming-visibility", Attributes::ScheduleProgrammingVisibility::Id, | 
|  | credsIssuerConfig),                                                                     // | 
|  | make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | // | 
|  | // Events | 
|  | // | 
|  | make_unique<ReadEvent>(Id, credsIssuerConfig),      // | 
|  | make_unique<SubscribeEvent>(Id, credsIssuerConfig), // | 
|  | }; | 
|  |  | 
|  | commands.Register(clusterName, clusterCommands); | 
|  | } | 
|  | void registerClusterColorControl(Commands & commands, CredentialIssuerCommands * credsIssuerConfig) | 
|  | { | 
|  | using namespace chip::app::Clusters::ColorControl; | 
|  |  | 
|  | const char * clusterName = "ColorControl"; | 
|  |  | 
|  | commands_list clusterCommands = { | 
|  | // | 
|  | // Commands | 
|  | // | 
|  | make_unique<ClusterCommand>(Id, credsIssuerConfig),                         // | 
|  | make_unique<ColorControlMoveToHue>(credsIssuerConfig),                      // | 
|  | make_unique<ColorControlMoveHue>(credsIssuerConfig),                        // | 
|  | make_unique<ColorControlStepHue>(credsIssuerConfig),                        // | 
|  | make_unique<ColorControlMoveToSaturation>(credsIssuerConfig),               // | 
|  | make_unique<ColorControlMoveSaturation>(credsIssuerConfig),                 // | 
|  | make_unique<ColorControlStepSaturation>(credsIssuerConfig),                 // | 
|  | make_unique<ColorControlMoveToHueAndSaturation>(credsIssuerConfig),         // | 
|  | make_unique<ColorControlMoveToColor>(credsIssuerConfig),                    // | 
|  | make_unique<ColorControlMoveColor>(credsIssuerConfig),                      // | 
|  | make_unique<ColorControlStepColor>(credsIssuerConfig),                      // | 
|  | make_unique<ColorControlMoveToColorTemperature>(credsIssuerConfig),         // | 
|  | make_unique<ColorControlEnhancedMoveToHue>(credsIssuerConfig),              // | 
|  | make_unique<ColorControlEnhancedMoveHue>(credsIssuerConfig),                // | 
|  | make_unique<ColorControlEnhancedStepHue>(credsIssuerConfig),                // | 
|  | make_unique<ColorControlEnhancedMoveToHueAndSaturation>(credsIssuerConfig), // | 
|  | make_unique<ColorControlColorLoopSet>(credsIssuerConfig),                   // | 
|  | make_unique<ColorControlStopMoveStep>(credsIssuerConfig),                   // | 
|  | make_unique<ColorControlMoveColorTemperature>(credsIssuerConfig),           // | 
|  | make_unique<ColorControlStepColorTemperature>(credsIssuerConfig),           // | 
|  | // | 
|  | // Attributes | 
|  | // | 
|  | make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                     // | 
|  | make_unique<ReadAttribute>(Id, "current-hue", Attributes::CurrentHue::Id, credsIssuerConfig),                          // | 
|  | make_unique<ReadAttribute>(Id, "current-saturation", Attributes::CurrentSaturation::Id, credsIssuerConfig),            // | 
|  | make_unique<ReadAttribute>(Id, "remaining-time", Attributes::RemainingTime::Id, credsIssuerConfig),                    // | 
|  | make_unique<ReadAttribute>(Id, "current-x", Attributes::CurrentX::Id, credsIssuerConfig),                              // | 
|  | make_unique<ReadAttribute>(Id, "current-y", Attributes::CurrentY::Id, credsIssuerConfig),                              // | 
|  | make_unique<ReadAttribute>(Id, "drift-compensation", Attributes::DriftCompensation::Id, credsIssuerConfig),            // | 
|  | make_unique<ReadAttribute>(Id, "compensation-text", Attributes::CompensationText::Id, credsIssuerConfig),              // | 
|  | make_unique<ReadAttribute>(Id, "color-temperature-mireds", Attributes::ColorTemperatureMireds::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "color-mode", Attributes::ColorMode::Id, credsIssuerConfig),                            // | 
|  | make_unique<ReadAttribute>(Id, "options", Attributes::Options::Id, credsIssuerConfig),                                 // | 
|  | make_unique<ReadAttribute>(Id, "number-of-primaries", Attributes::NumberOfPrimaries::Id, credsIssuerConfig),           // | 
|  | make_unique<ReadAttribute>(Id, "primary1x", Attributes::Primary1X::Id, credsIssuerConfig),                             // | 
|  | make_unique<ReadAttribute>(Id, "primary1y", Attributes::Primary1Y::Id, credsIssuerConfig),                             // | 
|  | make_unique<ReadAttribute>(Id, "primary1intensity", Attributes::Primary1Intensity::Id, credsIssuerConfig),             // | 
|  | make_unique<ReadAttribute>(Id, "primary2x", Attributes::Primary2X::Id, credsIssuerConfig),                             // | 
|  | make_unique<ReadAttribute>(Id, "primary2y", Attributes::Primary2Y::Id, credsIssuerConfig),                             // | 
|  | make_unique<ReadAttribute>(Id, "primary2intensity", Attributes::Primary2Intensity::Id, credsIssuerConfig),             // | 
|  | make_unique<ReadAttribute>(Id, "primary3x", Attributes::Primary3X::Id, credsIssuerConfig),                             // | 
|  | make_unique<ReadAttribute>(Id, "primary3y", Attributes::Primary3Y::Id, credsIssuerConfig),                             // | 
|  | make_unique<ReadAttribute>(Id, "primary3intensity", Attributes::Primary3Intensity::Id, credsIssuerConfig),             // | 
|  | make_unique<ReadAttribute>(Id, "primary4x", Attributes::Primary4X::Id, credsIssuerConfig),                             // | 
|  | make_unique<ReadAttribute>(Id, "primary4y", Attributes::Primary4Y::Id, credsIssuerConfig),                             // | 
|  | make_unique<ReadAttribute>(Id, "primary4intensity", Attributes::Primary4Intensity::Id, credsIssuerConfig),             // | 
|  | make_unique<ReadAttribute>(Id, "primary5x", Attributes::Primary5X::Id, credsIssuerConfig),                             // | 
|  | make_unique<ReadAttribute>(Id, "primary5y", Attributes::Primary5Y::Id, credsIssuerConfig),                             // | 
|  | make_unique<ReadAttribute>(Id, "primary5intensity", Attributes::Primary5Intensity::Id, credsIssuerConfig),             // | 
|  | make_unique<ReadAttribute>(Id, "primary6x", Attributes::Primary6X::Id, credsIssuerConfig),                             // | 
|  | make_unique<ReadAttribute>(Id, "primary6y", Attributes::Primary6Y::Id, credsIssuerConfig),                             // | 
|  | make_unique<ReadAttribute>(Id, "primary6intensity", Attributes::Primary6Intensity::Id, credsIssuerConfig),             // | 
|  | make_unique<ReadAttribute>(Id, "white-point-x", Attributes::WhitePointX::Id, credsIssuerConfig),                       // | 
|  | make_unique<ReadAttribute>(Id, "white-point-y", Attributes::WhitePointY::Id, credsIssuerConfig),                       // | 
|  | make_unique<ReadAttribute>(Id, "color-point-rx", Attributes::ColorPointRX::Id, credsIssuerConfig),                     // | 
|  | make_unique<ReadAttribute>(Id, "color-point-ry", Attributes::ColorPointRY::Id, credsIssuerConfig),                     // | 
|  | make_unique<ReadAttribute>(Id, "color-point-rintensity", Attributes::ColorPointRIntensity::Id, credsIssuerConfig),     // | 
|  | make_unique<ReadAttribute>(Id, "color-point-gx", Attributes::ColorPointGX::Id, credsIssuerConfig),                     // | 
|  | make_unique<ReadAttribute>(Id, "color-point-gy", Attributes::ColorPointGY::Id, credsIssuerConfig),                     // | 
|  | make_unique<ReadAttribute>(Id, "color-point-gintensity", Attributes::ColorPointGIntensity::Id, credsIssuerConfig),     // | 
|  | make_unique<ReadAttribute>(Id, "color-point-bx", Attributes::ColorPointBX::Id, credsIssuerConfig),                     // | 
|  | make_unique<ReadAttribute>(Id, "color-point-by", Attributes::ColorPointBY::Id, credsIssuerConfig),                     // | 
|  | make_unique<ReadAttribute>(Id, "color-point-bintensity", Attributes::ColorPointBIntensity::Id, credsIssuerConfig),     // | 
|  | make_unique<ReadAttribute>(Id, "enhanced-current-hue", Attributes::EnhancedCurrentHue::Id, credsIssuerConfig),         // | 
|  | make_unique<ReadAttribute>(Id, "enhanced-color-mode", Attributes::EnhancedColorMode::Id, credsIssuerConfig),           // | 
|  | make_unique<ReadAttribute>(Id, "color-loop-active", Attributes::ColorLoopActive::Id, credsIssuerConfig),               // | 
|  | make_unique<ReadAttribute>(Id, "color-loop-direction", Attributes::ColorLoopDirection::Id, credsIssuerConfig),         // | 
|  | make_unique<ReadAttribute>(Id, "color-loop-time", Attributes::ColorLoopTime::Id, credsIssuerConfig),                   // | 
|  | make_unique<ReadAttribute>(Id, "color-loop-start-enhanced-hue", Attributes::ColorLoopStartEnhancedHue::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "color-loop-stored-enhanced-hue", Attributes::ColorLoopStoredEnhancedHue::Id, | 
|  | credsIssuerConfig),                                                              // | 
|  | make_unique<ReadAttribute>(Id, "color-capabilities", Attributes::ColorCapabilities::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "color-temp-physical-min-mireds", Attributes::ColorTempPhysicalMinMireds::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "color-temp-physical-max-mireds", Attributes::ColorTempPhysicalMaxMireds::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "couple-color-temp-to-level-min-mireds", Attributes::CoupleColorTempToLevelMinMireds::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "start-up-color-temperature-mireds", Attributes::StartUpColorTemperatureMireds::Id, | 
|  | credsIssuerConfig),                                                                     // | 
|  | make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "current-hue", 0, UINT8_MAX, Attributes::CurrentHue::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "current-saturation", 0, UINT8_MAX, Attributes::CurrentSaturation::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "remaining-time", 0, UINT16_MAX, Attributes::RemainingTime::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "current-x", 0, UINT16_MAX, Attributes::CurrentX::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "current-y", 0, UINT16_MAX, Attributes::CurrentY::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "drift-compensation", 0, UINT8_MAX, Attributes::DriftCompensation::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::CharSpan>>(Id, "compensation-text", Attributes::CompensationText::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "color-temperature-mireds", 0, UINT16_MAX, Attributes::ColorTemperatureMireds::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "color-mode", 0, UINT8_MAX, Attributes::ColorMode::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "options", 0, UINT8_MAX, Attributes::Options::Id, WriteCommandType::kWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint8_t>>>(Id, "number-of-primaries", 0, UINT8_MAX, | 
|  | Attributes::NumberOfPrimaries::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "primary1x", 0, UINT16_MAX, Attributes::Primary1X::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "primary1y", 0, UINT16_MAX, Attributes::Primary1Y::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint8_t>>>(Id, "primary1intensity", 0, UINT8_MAX, | 
|  | Attributes::Primary1Intensity::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "primary2x", 0, UINT16_MAX, Attributes::Primary2X::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "primary2y", 0, UINT16_MAX, Attributes::Primary2Y::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint8_t>>>(Id, "primary2intensity", 0, UINT8_MAX, | 
|  | Attributes::Primary2Intensity::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "primary3x", 0, UINT16_MAX, Attributes::Primary3X::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "primary3y", 0, UINT16_MAX, Attributes::Primary3Y::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint8_t>>>(Id, "primary3intensity", 0, UINT8_MAX, | 
|  | Attributes::Primary3Intensity::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "primary4x", 0, UINT16_MAX, Attributes::Primary4X::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "primary4y", 0, UINT16_MAX, Attributes::Primary4Y::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint8_t>>>(Id, "primary4intensity", 0, UINT8_MAX, | 
|  | Attributes::Primary4Intensity::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "primary5x", 0, UINT16_MAX, Attributes::Primary5X::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "primary5y", 0, UINT16_MAX, Attributes::Primary5Y::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint8_t>>>(Id, "primary5intensity", 0, UINT8_MAX, | 
|  | Attributes::Primary5Intensity::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "primary6x", 0, UINT16_MAX, Attributes::Primary6X::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "primary6y", 0, UINT16_MAX, Attributes::Primary6Y::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint8_t>>>(Id, "primary6intensity", 0, UINT8_MAX, | 
|  | Attributes::Primary6Intensity::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "white-point-x", 0, UINT16_MAX, Attributes::WhitePointX::Id, | 
|  | WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "white-point-y", 0, UINT16_MAX, Attributes::WhitePointY::Id, | 
|  | WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "color-point-rx", 0, UINT16_MAX, Attributes::ColorPointRX::Id, | 
|  | WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "color-point-ry", 0, UINT16_MAX, Attributes::ColorPointRY::Id, | 
|  | WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint8_t>>>(Id, "color-point-rintensity", 0, UINT8_MAX, | 
|  | Attributes::ColorPointRIntensity::Id, | 
|  | WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "color-point-gx", 0, UINT16_MAX, Attributes::ColorPointGX::Id, | 
|  | WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "color-point-gy", 0, UINT16_MAX, Attributes::ColorPointGY::Id, | 
|  | WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint8_t>>>(Id, "color-point-gintensity", 0, UINT8_MAX, | 
|  | Attributes::ColorPointGIntensity::Id, | 
|  | WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "color-point-bx", 0, UINT16_MAX, Attributes::ColorPointBX::Id, | 
|  | WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "color-point-by", 0, UINT16_MAX, Attributes::ColorPointBY::Id, | 
|  | WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint8_t>>>(Id, "color-point-bintensity", 0, UINT8_MAX, | 
|  | Attributes::ColorPointBIntensity::Id, | 
|  | WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "enhanced-current-hue", 0, UINT16_MAX, Attributes::EnhancedCurrentHue::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "enhanced-color-mode", 0, UINT8_MAX, Attributes::EnhancedColorMode::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "color-loop-active", 0, UINT8_MAX, Attributes::ColorLoopActive::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "color-loop-direction", 0, UINT8_MAX, Attributes::ColorLoopDirection::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "color-loop-time", 0, UINT16_MAX, Attributes::ColorLoopTime::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "color-loop-start-enhanced-hue", 0, UINT16_MAX, | 
|  | Attributes::ColorLoopStartEnhancedHue::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "color-loop-stored-enhanced-hue", 0, UINT16_MAX, | 
|  | Attributes::ColorLoopStoredEnhancedHue::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "color-capabilities", 0, UINT16_MAX, Attributes::ColorCapabilities::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "color-temp-physical-min-mireds", 0, UINT16_MAX, | 
|  | Attributes::ColorTempPhysicalMinMireds::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "color-temp-physical-max-mireds", 0, UINT16_MAX, | 
|  | Attributes::ColorTempPhysicalMaxMireds::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "couple-color-temp-to-level-min-mireds", 0, UINT16_MAX, | 
|  | Attributes::CoupleColorTempToLevelMinMireds::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint16_t>>>( | 
|  | Id, "start-up-color-temperature-mireds", 0, UINT16_MAX, Attributes::StartUpColorTemperatureMireds::Id, | 
|  | WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>( | 
|  | Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>( | 
|  | Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig),                         // | 
|  | make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                          // | 
|  | make_unique<SubscribeAttribute>(Id, "current-hue", Attributes::CurrentHue::Id, credsIssuerConfig),               // | 
|  | make_unique<SubscribeAttribute>(Id, "current-saturation", Attributes::CurrentSaturation::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "remaining-time", Attributes::RemainingTime::Id, credsIssuerConfig),         // | 
|  | make_unique<SubscribeAttribute>(Id, "current-x", Attributes::CurrentX::Id, credsIssuerConfig),                   // | 
|  | make_unique<SubscribeAttribute>(Id, "current-y", Attributes::CurrentY::Id, credsIssuerConfig),                   // | 
|  | make_unique<SubscribeAttribute>(Id, "drift-compensation", Attributes::DriftCompensation::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "compensation-text", Attributes::CompensationText::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "color-temperature-mireds", Attributes::ColorTemperatureMireds::Id, | 
|  | credsIssuerConfig),                                                                     // | 
|  | make_unique<SubscribeAttribute>(Id, "color-mode", Attributes::ColorMode::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "options", Attributes::Options::Id, credsIssuerConfig),                             // | 
|  | make_unique<SubscribeAttribute>(Id, "number-of-primaries", Attributes::NumberOfPrimaries::Id, credsIssuerConfig),       // | 
|  | make_unique<SubscribeAttribute>(Id, "primary1x", Attributes::Primary1X::Id, credsIssuerConfig),                         // | 
|  | make_unique<SubscribeAttribute>(Id, "primary1y", Attributes::Primary1Y::Id, credsIssuerConfig),                         // | 
|  | make_unique<SubscribeAttribute>(Id, "primary1intensity", Attributes::Primary1Intensity::Id, credsIssuerConfig),         // | 
|  | make_unique<SubscribeAttribute>(Id, "primary2x", Attributes::Primary2X::Id, credsIssuerConfig),                         // | 
|  | make_unique<SubscribeAttribute>(Id, "primary2y", Attributes::Primary2Y::Id, credsIssuerConfig),                         // | 
|  | make_unique<SubscribeAttribute>(Id, "primary2intensity", Attributes::Primary2Intensity::Id, credsIssuerConfig),         // | 
|  | make_unique<SubscribeAttribute>(Id, "primary3x", Attributes::Primary3X::Id, credsIssuerConfig),                         // | 
|  | make_unique<SubscribeAttribute>(Id, "primary3y", Attributes::Primary3Y::Id, credsIssuerConfig),                         // | 
|  | make_unique<SubscribeAttribute>(Id, "primary3intensity", Attributes::Primary3Intensity::Id, credsIssuerConfig),         // | 
|  | make_unique<SubscribeAttribute>(Id, "primary4x", Attributes::Primary4X::Id, credsIssuerConfig),                         // | 
|  | make_unique<SubscribeAttribute>(Id, "primary4y", Attributes::Primary4Y::Id, credsIssuerConfig),                         // | 
|  | make_unique<SubscribeAttribute>(Id, "primary4intensity", Attributes::Primary4Intensity::Id, credsIssuerConfig),         // | 
|  | make_unique<SubscribeAttribute>(Id, "primary5x", Attributes::Primary5X::Id, credsIssuerConfig),                         // | 
|  | make_unique<SubscribeAttribute>(Id, "primary5y", Attributes::Primary5Y::Id, credsIssuerConfig),                         // | 
|  | make_unique<SubscribeAttribute>(Id, "primary5intensity", Attributes::Primary5Intensity::Id, credsIssuerConfig),         // | 
|  | make_unique<SubscribeAttribute>(Id, "primary6x", Attributes::Primary6X::Id, credsIssuerConfig),                         // | 
|  | make_unique<SubscribeAttribute>(Id, "primary6y", Attributes::Primary6Y::Id, credsIssuerConfig),                         // | 
|  | make_unique<SubscribeAttribute>(Id, "primary6intensity", Attributes::Primary6Intensity::Id, credsIssuerConfig),         // | 
|  | make_unique<SubscribeAttribute>(Id, "white-point-x", Attributes::WhitePointX::Id, credsIssuerConfig),                   // | 
|  | make_unique<SubscribeAttribute>(Id, "white-point-y", Attributes::WhitePointY::Id, credsIssuerConfig),                   // | 
|  | make_unique<SubscribeAttribute>(Id, "color-point-rx", Attributes::ColorPointRX::Id, credsIssuerConfig),                 // | 
|  | make_unique<SubscribeAttribute>(Id, "color-point-ry", Attributes::ColorPointRY::Id, credsIssuerConfig),                 // | 
|  | make_unique<SubscribeAttribute>(Id, "color-point-rintensity", Attributes::ColorPointRIntensity::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "color-point-gx", Attributes::ColorPointGX::Id, credsIssuerConfig),                 // | 
|  | make_unique<SubscribeAttribute>(Id, "color-point-gy", Attributes::ColorPointGY::Id, credsIssuerConfig),                 // | 
|  | make_unique<SubscribeAttribute>(Id, "color-point-gintensity", Attributes::ColorPointGIntensity::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "color-point-bx", Attributes::ColorPointBX::Id, credsIssuerConfig),                 // | 
|  | make_unique<SubscribeAttribute>(Id, "color-point-by", Attributes::ColorPointBY::Id, credsIssuerConfig),                 // | 
|  | make_unique<SubscribeAttribute>(Id, "color-point-bintensity", Attributes::ColorPointBIntensity::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "enhanced-current-hue", Attributes::EnhancedCurrentHue::Id, credsIssuerConfig),     // | 
|  | make_unique<SubscribeAttribute>(Id, "enhanced-color-mode", Attributes::EnhancedColorMode::Id, credsIssuerConfig),       // | 
|  | make_unique<SubscribeAttribute>(Id, "color-loop-active", Attributes::ColorLoopActive::Id, credsIssuerConfig),           // | 
|  | make_unique<SubscribeAttribute>(Id, "color-loop-direction", Attributes::ColorLoopDirection::Id, credsIssuerConfig),     // | 
|  | make_unique<SubscribeAttribute>(Id, "color-loop-time", Attributes::ColorLoopTime::Id, credsIssuerConfig),               // | 
|  | make_unique<SubscribeAttribute>(Id, "color-loop-start-enhanced-hue", Attributes::ColorLoopStartEnhancedHue::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "color-loop-stored-enhanced-hue", Attributes::ColorLoopStoredEnhancedHue::Id, | 
|  | credsIssuerConfig),                                                              // | 
|  | make_unique<SubscribeAttribute>(Id, "color-capabilities", Attributes::ColorCapabilities::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "color-temp-physical-min-mireds", Attributes::ColorTempPhysicalMinMireds::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "color-temp-physical-max-mireds", Attributes::ColorTempPhysicalMaxMireds::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "couple-color-temp-to-level-min-mireds", | 
|  | Attributes::CoupleColorTempToLevelMinMireds::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "start-up-color-temperature-mireds", Attributes::StartUpColorTemperatureMireds::Id, | 
|  | credsIssuerConfig),                                                                     // | 
|  | make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | // | 
|  | // Events | 
|  | // | 
|  | make_unique<ReadEvent>(Id, credsIssuerConfig),      // | 
|  | make_unique<SubscribeEvent>(Id, credsIssuerConfig), // | 
|  | }; | 
|  |  | 
|  | commands.Register(clusterName, clusterCommands); | 
|  | } | 
|  | void registerClusterBallastConfiguration(Commands & commands, CredentialIssuerCommands * credsIssuerConfig) | 
|  | { | 
|  | using namespace chip::app::Clusters::BallastConfiguration; | 
|  |  | 
|  | const char * clusterName = "BallastConfiguration"; | 
|  |  | 
|  | commands_list clusterCommands = { | 
|  | // | 
|  | // Commands | 
|  | // | 
|  | make_unique<ClusterCommand>(Id, credsIssuerConfig), // | 
|  | // | 
|  | // Attributes | 
|  | // | 
|  | make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                       // | 
|  | make_unique<ReadAttribute>(Id, "physical-min-level", Attributes::PhysicalMinLevel::Id, credsIssuerConfig),               // | 
|  | make_unique<ReadAttribute>(Id, "physical-max-level", Attributes::PhysicalMaxLevel::Id, credsIssuerConfig),               // | 
|  | make_unique<ReadAttribute>(Id, "ballast-status", Attributes::BallastStatus::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "min-level", Attributes::MinLevel::Id, credsIssuerConfig),                                // | 
|  | make_unique<ReadAttribute>(Id, "max-level", Attributes::MaxLevel::Id, credsIssuerConfig),                                // | 
|  | make_unique<ReadAttribute>(Id, "intrinsic-ballast-factor", Attributes::IntrinsicBallastFactor::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "ballast-factor-adjustment", Attributes::BallastFactorAdjustment::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "lamp-quantity", Attributes::LampQuantity::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "lamp-type", Attributes::LampType::Id, credsIssuerConfig),                                // | 
|  | make_unique<ReadAttribute>(Id, "lamp-manufacturer", Attributes::LampManufacturer::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "lamp-rated-hours", Attributes::LampRatedHours::Id, credsIssuerConfig),                   // | 
|  | make_unique<ReadAttribute>(Id, "lamp-burn-hours", Attributes::LampBurnHours::Id, credsIssuerConfig),                     // | 
|  | make_unique<ReadAttribute>(Id, "lamp-alarm-mode", Attributes::LampAlarmMode::Id, credsIssuerConfig),                     // | 
|  | make_unique<ReadAttribute>(Id, "lamp-burn-hours-trip-point", Attributes::LampBurnHoursTripPoint::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig),       // | 
|  | make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),         // | 
|  | make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                              // | 
|  | make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                            // | 
|  | make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),                  // | 
|  | make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                                    // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "physical-min-level", 0, UINT8_MAX, Attributes::PhysicalMinLevel::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "physical-max-level", 0, UINT8_MAX, Attributes::PhysicalMaxLevel::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "ballast-status", 0, UINT8_MAX, Attributes::BallastStatus::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "min-level", 0, UINT8_MAX, Attributes::MinLevel::Id, WriteCommandType::kWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "max-level", 0, UINT8_MAX, Attributes::MaxLevel::Id, WriteCommandType::kWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint8_t>>>(Id, "intrinsic-ballast-factor", 0, UINT8_MAX, | 
|  | Attributes::IntrinsicBallastFactor::Id, | 
|  | WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint8_t>>>(Id, "ballast-factor-adjustment", 0, UINT8_MAX, | 
|  | Attributes::BallastFactorAdjustment::Id, | 
|  | WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "lamp-quantity", 0, UINT8_MAX, Attributes::LampQuantity::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::CharSpan>>(Id, "lamp-type", Attributes::LampType::Id, WriteCommandType::kWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::CharSpan>>(Id, "lamp-manufacturer", Attributes::LampManufacturer::Id, | 
|  | WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint32_t>>>( | 
|  | Id, "lamp-rated-hours", 0, UINT32_MAX, Attributes::LampRatedHours::Id, WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint32_t>>>( | 
|  | Id, "lamp-burn-hours", 0, UINT32_MAX, Attributes::LampBurnHours::Id, WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "lamp-alarm-mode", 0, UINT8_MAX, Attributes::LampAlarmMode::Id, | 
|  | WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint32_t>>>(Id, "lamp-burn-hours-trip-point", 0, UINT32_MAX, | 
|  | Attributes::LampBurnHoursTripPoint::Id, | 
|  | WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>( | 
|  | Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>( | 
|  | Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                         // | 
|  | make_unique<SubscribeAttribute>(Id, "physical-min-level", Attributes::PhysicalMinLevel::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "physical-max-level", Attributes::PhysicalMaxLevel::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "ballast-status", Attributes::BallastStatus::Id, credsIssuerConfig),        // | 
|  | make_unique<SubscribeAttribute>(Id, "min-level", Attributes::MinLevel::Id, credsIssuerConfig),                  // | 
|  | make_unique<SubscribeAttribute>(Id, "max-level", Attributes::MaxLevel::Id, credsIssuerConfig),                  // | 
|  | make_unique<SubscribeAttribute>(Id, "intrinsic-ballast-factor", Attributes::IntrinsicBallastFactor::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "ballast-factor-adjustment", Attributes::BallastFactorAdjustment::Id, | 
|  | credsIssuerConfig),                                                            // | 
|  | make_unique<SubscribeAttribute>(Id, "lamp-quantity", Attributes::LampQuantity::Id, credsIssuerConfig),         // | 
|  | make_unique<SubscribeAttribute>(Id, "lamp-type", Attributes::LampType::Id, credsIssuerConfig),                 // | 
|  | make_unique<SubscribeAttribute>(Id, "lamp-manufacturer", Attributes::LampManufacturer::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "lamp-rated-hours", Attributes::LampRatedHours::Id, credsIssuerConfig),    // | 
|  | make_unique<SubscribeAttribute>(Id, "lamp-burn-hours", Attributes::LampBurnHours::Id, credsIssuerConfig),      // | 
|  | make_unique<SubscribeAttribute>(Id, "lamp-alarm-mode", Attributes::LampAlarmMode::Id, credsIssuerConfig),      // | 
|  | make_unique<SubscribeAttribute>(Id, "lamp-burn-hours-trip-point", Attributes::LampBurnHoursTripPoint::Id, | 
|  | credsIssuerConfig),                                                                     // | 
|  | make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | // | 
|  | // Events | 
|  | // | 
|  | make_unique<ReadEvent>(Id, credsIssuerConfig),      // | 
|  | make_unique<SubscribeEvent>(Id, credsIssuerConfig), // | 
|  | }; | 
|  |  | 
|  | commands.Register(clusterName, clusterCommands); | 
|  | } | 
|  | void registerClusterIlluminanceMeasurement(Commands & commands, CredentialIssuerCommands * credsIssuerConfig) | 
|  | { | 
|  | using namespace chip::app::Clusters::IlluminanceMeasurement; | 
|  |  | 
|  | const char * clusterName = "IlluminanceMeasurement"; | 
|  |  | 
|  | commands_list clusterCommands = { | 
|  | // | 
|  | // Commands | 
|  | // | 
|  | make_unique<ClusterCommand>(Id, credsIssuerConfig), // | 
|  | // | 
|  | // Attributes | 
|  | // | 
|  | make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<ReadAttribute>(Id, "measured-value", Attributes::MeasuredValue::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "min-measured-value", Attributes::MinMeasuredValue::Id, credsIssuerConfig),         // | 
|  | make_unique<ReadAttribute>(Id, "max-measured-value", Attributes::MaxMeasuredValue::Id, credsIssuerConfig),         // | 
|  | make_unique<ReadAttribute>(Id, "tolerance", Attributes::Tolerance::Id, credsIssuerConfig),                         // | 
|  | make_unique<ReadAttribute>(Id, "light-sensor-type", Attributes::LightSensorType::Id, credsIssuerConfig),           // | 
|  | make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint16_t>>>(Id, "measured-value", 0, UINT16_MAX, | 
|  | Attributes::MeasuredValue::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint16_t>>>(Id, "min-measured-value", 0, UINT16_MAX, | 
|  | Attributes::MinMeasuredValue::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint16_t>>>(Id, "max-measured-value", 0, UINT16_MAX, | 
|  | Attributes::MaxMeasuredValue::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "tolerance", 0, UINT16_MAX, Attributes::Tolerance::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint8_t>>>(Id, "light-sensor-type", 0, UINT8_MAX, | 
|  | Attributes::LightSensorType::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>( | 
|  | Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>( | 
|  | Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig),                                // | 
|  | make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<SubscribeAttribute>(Id, "measured-value", Attributes::MeasuredValue::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "min-measured-value", Attributes::MinMeasuredValue::Id, credsIssuerConfig),         // | 
|  | make_unique<SubscribeAttribute>(Id, "max-measured-value", Attributes::MaxMeasuredValue::Id, credsIssuerConfig),         // | 
|  | make_unique<SubscribeAttribute>(Id, "tolerance", Attributes::Tolerance::Id, credsIssuerConfig),                         // | 
|  | make_unique<SubscribeAttribute>(Id, "light-sensor-type", Attributes::LightSensorType::Id, credsIssuerConfig),           // | 
|  | make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | // | 
|  | // Events | 
|  | // | 
|  | make_unique<ReadEvent>(Id, credsIssuerConfig),      // | 
|  | make_unique<SubscribeEvent>(Id, credsIssuerConfig), // | 
|  | }; | 
|  |  | 
|  | commands.Register(clusterName, clusterCommands); | 
|  | } | 
|  | void registerClusterTemperatureMeasurement(Commands & commands, CredentialIssuerCommands * credsIssuerConfig) | 
|  | { | 
|  | using namespace chip::app::Clusters::TemperatureMeasurement; | 
|  |  | 
|  | const char * clusterName = "TemperatureMeasurement"; | 
|  |  | 
|  | commands_list clusterCommands = { | 
|  | // | 
|  | // Commands | 
|  | // | 
|  | make_unique<ClusterCommand>(Id, credsIssuerConfig), // | 
|  | // | 
|  | // Attributes | 
|  | // | 
|  | make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<ReadAttribute>(Id, "measured-value", Attributes::MeasuredValue::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "min-measured-value", Attributes::MinMeasuredValue::Id, credsIssuerConfig),         // | 
|  | make_unique<ReadAttribute>(Id, "max-measured-value", Attributes::MaxMeasuredValue::Id, credsIssuerConfig),         // | 
|  | make_unique<ReadAttribute>(Id, "tolerance", Attributes::Tolerance::Id, credsIssuerConfig),                         // | 
|  | make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<int16_t>>>(Id, "measured-value", INT16_MIN, INT16_MAX, | 
|  | Attributes::MeasuredValue::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<int16_t>>>(Id, "min-measured-value", INT16_MIN, INT16_MAX, | 
|  | Attributes::MinMeasuredValue::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<int16_t>>>(Id, "max-measured-value", INT16_MIN, INT16_MAX, | 
|  | Attributes::MaxMeasuredValue::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "tolerance", 0, UINT16_MAX, Attributes::Tolerance::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>( | 
|  | Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>( | 
|  | Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig),                                // | 
|  | make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<SubscribeAttribute>(Id, "measured-value", Attributes::MeasuredValue::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "min-measured-value", Attributes::MinMeasuredValue::Id, credsIssuerConfig),         // | 
|  | make_unique<SubscribeAttribute>(Id, "max-measured-value", Attributes::MaxMeasuredValue::Id, credsIssuerConfig),         // | 
|  | make_unique<SubscribeAttribute>(Id, "tolerance", Attributes::Tolerance::Id, credsIssuerConfig),                         // | 
|  | make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | // | 
|  | // Events | 
|  | // | 
|  | make_unique<ReadEvent>(Id, credsIssuerConfig),      // | 
|  | make_unique<SubscribeEvent>(Id, credsIssuerConfig), // | 
|  | }; | 
|  |  | 
|  | commands.Register(clusterName, clusterCommands); | 
|  | } | 
|  | void registerClusterPressureMeasurement(Commands & commands, CredentialIssuerCommands * credsIssuerConfig) | 
|  | { | 
|  | using namespace chip::app::Clusters::PressureMeasurement; | 
|  |  | 
|  | const char * clusterName = "PressureMeasurement"; | 
|  |  | 
|  | commands_list clusterCommands = { | 
|  | // | 
|  | // Commands | 
|  | // | 
|  | make_unique<ClusterCommand>(Id, credsIssuerConfig), // | 
|  | // | 
|  | // Attributes | 
|  | // | 
|  | make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<ReadAttribute>(Id, "measured-value", Attributes::MeasuredValue::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "min-measured-value", Attributes::MinMeasuredValue::Id, credsIssuerConfig),         // | 
|  | make_unique<ReadAttribute>(Id, "max-measured-value", Attributes::MaxMeasuredValue::Id, credsIssuerConfig),         // | 
|  | make_unique<ReadAttribute>(Id, "tolerance", Attributes::Tolerance::Id, credsIssuerConfig),                         // | 
|  | make_unique<ReadAttribute>(Id, "scaled-value", Attributes::ScaledValue::Id, credsIssuerConfig),                    // | 
|  | make_unique<ReadAttribute>(Id, "min-scaled-value", Attributes::MinScaledValue::Id, credsIssuerConfig),             // | 
|  | make_unique<ReadAttribute>(Id, "max-scaled-value", Attributes::MaxScaledValue::Id, credsIssuerConfig),             // | 
|  | make_unique<ReadAttribute>(Id, "scaled-tolerance", Attributes::ScaledTolerance::Id, credsIssuerConfig),            // | 
|  | make_unique<ReadAttribute>(Id, "scale", Attributes::Scale::Id, credsIssuerConfig),                                 // | 
|  | make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<int16_t>>>(Id, "measured-value", INT16_MIN, INT16_MAX, | 
|  | Attributes::MeasuredValue::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<int16_t>>>(Id, "min-measured-value", INT16_MIN, INT16_MAX, | 
|  | Attributes::MinMeasuredValue::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<int16_t>>>(Id, "max-measured-value", INT16_MIN, INT16_MAX, | 
|  | Attributes::MaxMeasuredValue::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "tolerance", 0, UINT16_MAX, Attributes::Tolerance::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<int16_t>>>(Id, "scaled-value", INT16_MIN, INT16_MAX, | 
|  | Attributes::ScaledValue::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<int16_t>>>(Id, "min-scaled-value", INT16_MIN, INT16_MAX, | 
|  | Attributes::MinScaledValue::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<int16_t>>>(Id, "max-scaled-value", INT16_MIN, INT16_MAX, | 
|  | Attributes::MaxScaledValue::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "scaled-tolerance", 0, UINT16_MAX, Attributes::ScaledTolerance::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<int8_t>>(Id, "scale", INT8_MIN, INT8_MAX, Attributes::Scale::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>( | 
|  | Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>( | 
|  | Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig),                                // | 
|  | make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<SubscribeAttribute>(Id, "measured-value", Attributes::MeasuredValue::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "min-measured-value", Attributes::MinMeasuredValue::Id, credsIssuerConfig),         // | 
|  | make_unique<SubscribeAttribute>(Id, "max-measured-value", Attributes::MaxMeasuredValue::Id, credsIssuerConfig),         // | 
|  | make_unique<SubscribeAttribute>(Id, "tolerance", Attributes::Tolerance::Id, credsIssuerConfig),                         // | 
|  | make_unique<SubscribeAttribute>(Id, "scaled-value", Attributes::ScaledValue::Id, credsIssuerConfig),                    // | 
|  | make_unique<SubscribeAttribute>(Id, "min-scaled-value", Attributes::MinScaledValue::Id, credsIssuerConfig),             // | 
|  | make_unique<SubscribeAttribute>(Id, "max-scaled-value", Attributes::MaxScaledValue::Id, credsIssuerConfig),             // | 
|  | make_unique<SubscribeAttribute>(Id, "scaled-tolerance", Attributes::ScaledTolerance::Id, credsIssuerConfig),            // | 
|  | make_unique<SubscribeAttribute>(Id, "scale", Attributes::Scale::Id, credsIssuerConfig),                                 // | 
|  | make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | // | 
|  | // Events | 
|  | // | 
|  | make_unique<ReadEvent>(Id, credsIssuerConfig),      // | 
|  | make_unique<SubscribeEvent>(Id, credsIssuerConfig), // | 
|  | }; | 
|  |  | 
|  | commands.Register(clusterName, clusterCommands); | 
|  | } | 
|  | void registerClusterFlowMeasurement(Commands & commands, CredentialIssuerCommands * credsIssuerConfig) | 
|  | { | 
|  | using namespace chip::app::Clusters::FlowMeasurement; | 
|  |  | 
|  | const char * clusterName = "FlowMeasurement"; | 
|  |  | 
|  | commands_list clusterCommands = { | 
|  | // | 
|  | // Commands | 
|  | // | 
|  | make_unique<ClusterCommand>(Id, credsIssuerConfig), // | 
|  | // | 
|  | // Attributes | 
|  | // | 
|  | make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<ReadAttribute>(Id, "measured-value", Attributes::MeasuredValue::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "min-measured-value", Attributes::MinMeasuredValue::Id, credsIssuerConfig),         // | 
|  | make_unique<ReadAttribute>(Id, "max-measured-value", Attributes::MaxMeasuredValue::Id, credsIssuerConfig),         // | 
|  | make_unique<ReadAttribute>(Id, "tolerance", Attributes::Tolerance::Id, credsIssuerConfig),                         // | 
|  | make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint16_t>>>(Id, "measured-value", 0, UINT16_MAX, | 
|  | Attributes::MeasuredValue::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint16_t>>>(Id, "min-measured-value", 0, UINT16_MAX, | 
|  | Attributes::MinMeasuredValue::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint16_t>>>(Id, "max-measured-value", 0, UINT16_MAX, | 
|  | Attributes::MaxMeasuredValue::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "tolerance", 0, UINT16_MAX, Attributes::Tolerance::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>( | 
|  | Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>( | 
|  | Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig),                                // | 
|  | make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<SubscribeAttribute>(Id, "measured-value", Attributes::MeasuredValue::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "min-measured-value", Attributes::MinMeasuredValue::Id, credsIssuerConfig),         // | 
|  | make_unique<SubscribeAttribute>(Id, "max-measured-value", Attributes::MaxMeasuredValue::Id, credsIssuerConfig),         // | 
|  | make_unique<SubscribeAttribute>(Id, "tolerance", Attributes::Tolerance::Id, credsIssuerConfig),                         // | 
|  | make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | // | 
|  | // Events | 
|  | // | 
|  | make_unique<ReadEvent>(Id, credsIssuerConfig),      // | 
|  | make_unique<SubscribeEvent>(Id, credsIssuerConfig), // | 
|  | }; | 
|  |  | 
|  | commands.Register(clusterName, clusterCommands); | 
|  | } | 
|  | void registerClusterRelativeHumidityMeasurement(Commands & commands, CredentialIssuerCommands * credsIssuerConfig) | 
|  | { | 
|  | using namespace chip::app::Clusters::RelativeHumidityMeasurement; | 
|  |  | 
|  | const char * clusterName = "RelativeHumidityMeasurement"; | 
|  |  | 
|  | commands_list clusterCommands = { | 
|  | // | 
|  | // Commands | 
|  | // | 
|  | make_unique<ClusterCommand>(Id, credsIssuerConfig), // | 
|  | // | 
|  | // Attributes | 
|  | // | 
|  | make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<ReadAttribute>(Id, "measured-value", Attributes::MeasuredValue::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "min-measured-value", Attributes::MinMeasuredValue::Id, credsIssuerConfig),         // | 
|  | make_unique<ReadAttribute>(Id, "max-measured-value", Attributes::MaxMeasuredValue::Id, credsIssuerConfig),         // | 
|  | make_unique<ReadAttribute>(Id, "tolerance", Attributes::Tolerance::Id, credsIssuerConfig),                         // | 
|  | make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint16_t>>>(Id, "measured-value", 0, UINT16_MAX, | 
|  | Attributes::MeasuredValue::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint16_t>>>(Id, "min-measured-value", 0, UINT16_MAX, | 
|  | Attributes::MinMeasuredValue::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint16_t>>>(Id, "max-measured-value", 0, UINT16_MAX, | 
|  | Attributes::MaxMeasuredValue::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "tolerance", 0, UINT16_MAX, Attributes::Tolerance::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>( | 
|  | Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>( | 
|  | Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig),                                // | 
|  | make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<SubscribeAttribute>(Id, "measured-value", Attributes::MeasuredValue::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "min-measured-value", Attributes::MinMeasuredValue::Id, credsIssuerConfig),         // | 
|  | make_unique<SubscribeAttribute>(Id, "max-measured-value", Attributes::MaxMeasuredValue::Id, credsIssuerConfig),         // | 
|  | make_unique<SubscribeAttribute>(Id, "tolerance", Attributes::Tolerance::Id, credsIssuerConfig),                         // | 
|  | make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | // | 
|  | // Events | 
|  | // | 
|  | make_unique<ReadEvent>(Id, credsIssuerConfig),      // | 
|  | make_unique<SubscribeEvent>(Id, credsIssuerConfig), // | 
|  | }; | 
|  |  | 
|  | commands.Register(clusterName, clusterCommands); | 
|  | } | 
|  | void registerClusterOccupancySensing(Commands & commands, CredentialIssuerCommands * credsIssuerConfig) | 
|  | { | 
|  | using namespace chip::app::Clusters::OccupancySensing; | 
|  |  | 
|  | const char * clusterName = "OccupancySensing"; | 
|  |  | 
|  | commands_list clusterCommands = { | 
|  | // | 
|  | // Commands | 
|  | // | 
|  | make_unique<ClusterCommand>(Id, credsIssuerConfig), // | 
|  | // | 
|  | // Attributes | 
|  | // | 
|  | make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                               // | 
|  | make_unique<ReadAttribute>(Id, "occupancy", Attributes::Occupancy::Id, credsIssuerConfig),                       // | 
|  | make_unique<ReadAttribute>(Id, "occupancy-sensor-type", Attributes::OccupancySensorType::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "occupancy-sensor-type-bitmap", Attributes::OccupancySensorTypeBitmap::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "piroccupied-to-unoccupied-delay", Attributes::PIROccupiedToUnoccupiedDelay::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "pirunoccupied-to-occupied-delay", Attributes::PIRUnoccupiedToOccupiedDelay::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "pirunoccupied-to-occupied-threshold", Attributes::PIRUnoccupiedToOccupiedThreshold::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "ultrasonic-occupied-to-unoccupied-delay", | 
|  | Attributes::UltrasonicOccupiedToUnoccupiedDelay::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "ultrasonic-unoccupied-to-occupied-delay", | 
|  | Attributes::UltrasonicUnoccupiedToOccupiedDelay::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "ultrasonic-unoccupied-to-occupied-threshold", | 
|  | Attributes::UltrasonicUnoccupiedToOccupiedThreshold::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "physical-contact-occupied-to-unoccupied-delay", | 
|  | Attributes::PhysicalContactOccupiedToUnoccupiedDelay::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "physical-contact-unoccupied-to-occupied-delay", | 
|  | Attributes::PhysicalContactUnoccupiedToOccupiedDelay::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "physical-contact-unoccupied-to-occupied-threshold", | 
|  | Attributes::PhysicalContactUnoccupiedToOccupiedThreshold::Id, credsIssuerConfig),       // | 
|  | make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              // | 
|  | make_unique<WriteAttribute<chip::BitMask<chip::app::Clusters::OccupancySensing::OccupancyBitmap>>>( | 
|  | Id, "occupancy", 0, UINT8_MAX, Attributes::Occupancy::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::Clusters::OccupancySensing::OccupancySensorTypeEnum>>( | 
|  | Id, "occupancy-sensor-type", 0, UINT8_MAX, Attributes::OccupancySensorType::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::BitMask<chip::app::Clusters::OccupancySensing::OccupancySensorTypeBitmap>>>( | 
|  | Id, "occupancy-sensor-type-bitmap", 0, UINT8_MAX, Attributes::OccupancySensorTypeBitmap::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "piroccupied-to-unoccupied-delay", 0, UINT16_MAX, | 
|  | Attributes::PIROccupiedToUnoccupiedDelay::Id, WriteCommandType::kWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "pirunoccupied-to-occupied-delay", 0, UINT16_MAX, | 
|  | Attributes::PIRUnoccupiedToOccupiedDelay::Id, WriteCommandType::kWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "pirunoccupied-to-occupied-threshold", 0, UINT8_MAX, | 
|  | Attributes::PIRUnoccupiedToOccupiedThreshold::Id, WriteCommandType::kWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "ultrasonic-occupied-to-unoccupied-delay", 0, UINT16_MAX, | 
|  | Attributes::UltrasonicOccupiedToUnoccupiedDelay::Id, WriteCommandType::kWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "ultrasonic-unoccupied-to-occupied-delay", 0, UINT16_MAX, | 
|  | Attributes::UltrasonicUnoccupiedToOccupiedDelay::Id, WriteCommandType::kWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "ultrasonic-unoccupied-to-occupied-threshold", 0, UINT8_MAX, | 
|  | Attributes::UltrasonicUnoccupiedToOccupiedThreshold::Id, WriteCommandType::kWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "physical-contact-occupied-to-unoccupied-delay", 0, UINT16_MAX, | 
|  | Attributes::PhysicalContactOccupiedToUnoccupiedDelay::Id, WriteCommandType::kWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "physical-contact-unoccupied-to-occupied-delay", 0, UINT16_MAX, | 
|  | Attributes::PhysicalContactUnoccupiedToOccupiedDelay::Id, WriteCommandType::kWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "physical-contact-unoccupied-to-occupied-threshold", 0, UINT8_MAX, | 
|  | Attributes::PhysicalContactUnoccupiedToOccupiedThreshold::Id, WriteCommandType::kWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>( | 
|  | Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>( | 
|  | Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig),                              // | 
|  | make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                               // | 
|  | make_unique<SubscribeAttribute>(Id, "occupancy", Attributes::Occupancy::Id, credsIssuerConfig),                       // | 
|  | make_unique<SubscribeAttribute>(Id, "occupancy-sensor-type", Attributes::OccupancySensorType::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "occupancy-sensor-type-bitmap", Attributes::OccupancySensorTypeBitmap::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "piroccupied-to-unoccupied-delay", Attributes::PIROccupiedToUnoccupiedDelay::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "pirunoccupied-to-occupied-delay", Attributes::PIRUnoccupiedToOccupiedDelay::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "pirunoccupied-to-occupied-threshold", Attributes::PIRUnoccupiedToOccupiedThreshold::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "ultrasonic-occupied-to-unoccupied-delay", | 
|  | Attributes::UltrasonicOccupiedToUnoccupiedDelay::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "ultrasonic-unoccupied-to-occupied-delay", | 
|  | Attributes::UltrasonicUnoccupiedToOccupiedDelay::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "ultrasonic-unoccupied-to-occupied-threshold", | 
|  | Attributes::UltrasonicUnoccupiedToOccupiedThreshold::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "physical-contact-occupied-to-unoccupied-delay", | 
|  | Attributes::PhysicalContactOccupiedToUnoccupiedDelay::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "physical-contact-unoccupied-to-occupied-delay", | 
|  | Attributes::PhysicalContactUnoccupiedToOccupiedDelay::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "physical-contact-unoccupied-to-occupied-threshold", | 
|  | Attributes::PhysicalContactUnoccupiedToOccupiedThreshold::Id, credsIssuerConfig),       // | 
|  | make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | // | 
|  | // Events | 
|  | // | 
|  | make_unique<ReadEvent>(Id, credsIssuerConfig),      // | 
|  | make_unique<SubscribeEvent>(Id, credsIssuerConfig), // | 
|  | }; | 
|  |  | 
|  | commands.Register(clusterName, clusterCommands); | 
|  | } | 
|  | void registerClusterWakeOnLan(Commands & commands, CredentialIssuerCommands * credsIssuerConfig) | 
|  | { | 
|  | using namespace chip::app::Clusters::WakeOnLan; | 
|  |  | 
|  | const char * clusterName = "WakeOnLan"; | 
|  |  | 
|  | commands_list clusterCommands = { | 
|  | // | 
|  | // Commands | 
|  | // | 
|  | make_unique<ClusterCommand>(Id, credsIssuerConfig), // | 
|  | // | 
|  | // Attributes | 
|  | // | 
|  | make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<ReadAttribute>(Id, "macaddress", Attributes::MACAddress::Id, credsIssuerConfig),                       // | 
|  | make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              // | 
|  | make_unique<WriteAttribute<chip::CharSpan>>(Id, "macaddress", Attributes::MACAddress::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>( | 
|  | Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>( | 
|  | Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig),                                // | 
|  | make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<SubscribeAttribute>(Id, "macaddress", Attributes::MACAddress::Id, credsIssuerConfig),                       // | 
|  | make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | // | 
|  | // Events | 
|  | // | 
|  | make_unique<ReadEvent>(Id, credsIssuerConfig),      // | 
|  | make_unique<SubscribeEvent>(Id, credsIssuerConfig), // | 
|  | }; | 
|  |  | 
|  | commands.Register(clusterName, clusterCommands); | 
|  | } | 
|  | void registerClusterChannel(Commands & commands, CredentialIssuerCommands * credsIssuerConfig) | 
|  | { | 
|  | using namespace chip::app::Clusters::Channel; | 
|  |  | 
|  | const char * clusterName = "Channel"; | 
|  |  | 
|  | commands_list clusterCommands = { | 
|  | // | 
|  | // Commands | 
|  | // | 
|  | make_unique<ClusterCommand>(Id, credsIssuerConfig),           // | 
|  | make_unique<ChannelChangeChannel>(credsIssuerConfig),         // | 
|  | make_unique<ChannelChangeChannelByNumber>(credsIssuerConfig), // | 
|  | make_unique<ChannelSkipChannel>(credsIssuerConfig),           // | 
|  | // | 
|  | // Attributes | 
|  | // | 
|  | make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<ReadAttribute>(Id, "channel-list", Attributes::ChannelList::Id, credsIssuerConfig),                    // | 
|  | make_unique<ReadAttribute>(Id, "lineup", Attributes::Lineup::Id, credsIssuerConfig),                               // | 
|  | make_unique<ReadAttribute>(Id, "current-channel", Attributes::CurrentChannel::Id, credsIssuerConfig),              // | 
|  | make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              // | 
|  | make_unique<WriteAttributeAsComplex< | 
|  | chip::app::DataModel::List<const chip::app::Clusters::Channel::Structs::ChannelInfoStruct::Type>>>( | 
|  | Id, "channel-list", Attributes::ChannelList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique< | 
|  | WriteAttributeAsComplex<chip::app::DataModel::Nullable<chip::app::Clusters::Channel::Structs::LineupInfoStruct::Type>>>( | 
|  | Id, "lineup", Attributes::Lineup::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex< | 
|  | chip::app::DataModel::Nullable<chip::app::Clusters::Channel::Structs::ChannelInfoStruct::Type>>>( | 
|  | Id, "current-channel", Attributes::CurrentChannel::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>( | 
|  | Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>( | 
|  | Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig),                                // | 
|  | make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<SubscribeAttribute>(Id, "channel-list", Attributes::ChannelList::Id, credsIssuerConfig),                    // | 
|  | make_unique<SubscribeAttribute>(Id, "lineup", Attributes::Lineup::Id, credsIssuerConfig),                               // | 
|  | make_unique<SubscribeAttribute>(Id, "current-channel", Attributes::CurrentChannel::Id, credsIssuerConfig),              // | 
|  | make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | // | 
|  | // Events | 
|  | // | 
|  | make_unique<ReadEvent>(Id, credsIssuerConfig),      // | 
|  | make_unique<SubscribeEvent>(Id, credsIssuerConfig), // | 
|  | }; | 
|  |  | 
|  | commands.Register(clusterName, clusterCommands); | 
|  | } | 
|  | void registerClusterTargetNavigator(Commands & commands, CredentialIssuerCommands * credsIssuerConfig) | 
|  | { | 
|  | using namespace chip::app::Clusters::TargetNavigator; | 
|  |  | 
|  | const char * clusterName = "TargetNavigator"; | 
|  |  | 
|  | commands_list clusterCommands = { | 
|  | // | 
|  | // Commands | 
|  | // | 
|  | make_unique<ClusterCommand>(Id, credsIssuerConfig),            // | 
|  | make_unique<TargetNavigatorNavigateTarget>(credsIssuerConfig), // | 
|  | // | 
|  | // Attributes | 
|  | // | 
|  | make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<ReadAttribute>(Id, "target-list", Attributes::TargetList::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "current-target", Attributes::CurrentTarget::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              // | 
|  | make_unique<WriteAttributeAsComplex< | 
|  | chip::app::DataModel::List<const chip::app::Clusters::TargetNavigator::Structs::TargetInfoStruct::Type>>>( | 
|  | Id, "target-list", Attributes::TargetList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "current-target", 0, UINT8_MAX, Attributes::CurrentTarget::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>( | 
|  | Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>( | 
|  | Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig),                                // | 
|  | make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<SubscribeAttribute>(Id, "target-list", Attributes::TargetList::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "current-target", Attributes::CurrentTarget::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | // | 
|  | // Events | 
|  | // | 
|  | make_unique<ReadEvent>(Id, credsIssuerConfig),      // | 
|  | make_unique<SubscribeEvent>(Id, credsIssuerConfig), // | 
|  | }; | 
|  |  | 
|  | commands.Register(clusterName, clusterCommands); | 
|  | } | 
|  | void registerClusterMediaPlayback(Commands & commands, CredentialIssuerCommands * credsIssuerConfig) | 
|  | { | 
|  | using namespace chip::app::Clusters::MediaPlayback; | 
|  |  | 
|  | const char * clusterName = "MediaPlayback"; | 
|  |  | 
|  | commands_list clusterCommands = { | 
|  | // | 
|  | // Commands | 
|  | // | 
|  | make_unique<ClusterCommand>(Id, credsIssuerConfig),        // | 
|  | make_unique<MediaPlaybackPlay>(credsIssuerConfig),         // | 
|  | make_unique<MediaPlaybackPause>(credsIssuerConfig),        // | 
|  | make_unique<MediaPlaybackStop>(credsIssuerConfig),         // | 
|  | make_unique<MediaPlaybackStartOver>(credsIssuerConfig),    // | 
|  | make_unique<MediaPlaybackPrevious>(credsIssuerConfig),     // | 
|  | make_unique<MediaPlaybackNext>(credsIssuerConfig),         // | 
|  | make_unique<MediaPlaybackRewind>(credsIssuerConfig),       // | 
|  | make_unique<MediaPlaybackFastForward>(credsIssuerConfig),  // | 
|  | make_unique<MediaPlaybackSkipForward>(credsIssuerConfig),  // | 
|  | make_unique<MediaPlaybackSkipBackward>(credsIssuerConfig), // | 
|  | make_unique<MediaPlaybackSeek>(credsIssuerConfig),         // | 
|  | // | 
|  | // Attributes | 
|  | // | 
|  | make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<ReadAttribute>(Id, "current-state", Attributes::CurrentState::Id, credsIssuerConfig),                  // | 
|  | make_unique<ReadAttribute>(Id, "start-time", Attributes::StartTime::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "duration", Attributes::Duration::Id, credsIssuerConfig),                           // | 
|  | make_unique<ReadAttribute>(Id, "sampled-position", Attributes::SampledPosition::Id, credsIssuerConfig),            // | 
|  | make_unique<ReadAttribute>(Id, "playback-speed", Attributes::PlaybackSpeed::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "seek-range-end", Attributes::SeekRangeEnd::Id, credsIssuerConfig),                 // | 
|  | make_unique<ReadAttribute>(Id, "seek-range-start", Attributes::SeekRangeStart::Id, credsIssuerConfig),             // | 
|  | make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              // | 
|  | make_unique<WriteAttribute<chip::app::Clusters::MediaPlayback::PlaybackStateEnum>>( | 
|  | Id, "current-state", 0, UINT8_MAX, Attributes::CurrentState::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint64_t>>>( | 
|  | Id, "start-time", 0, UINT64_MAX, Attributes::StartTime::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint64_t>>>( | 
|  | Id, "duration", 0, UINT64_MAX, Attributes::Duration::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex< | 
|  | chip::app::DataModel::Nullable<chip::app::Clusters::MediaPlayback::Structs::PlaybackPositionStruct::Type>>>( | 
|  | Id, "sampled-position", Attributes::SampledPosition::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<float>>(Id, "playback-speed", -std::numeric_limits<float>::infinity(), | 
|  | std::numeric_limits<float>::infinity(), Attributes::PlaybackSpeed::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint64_t>>>( | 
|  | Id, "seek-range-end", 0, UINT64_MAX, Attributes::SeekRangeEnd::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint64_t>>>(Id, "seek-range-start", 0, UINT64_MAX, | 
|  | Attributes::SeekRangeStart::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>( | 
|  | Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>( | 
|  | Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig),                                // | 
|  | make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<SubscribeAttribute>(Id, "current-state", Attributes::CurrentState::Id, credsIssuerConfig),                  // | 
|  | make_unique<SubscribeAttribute>(Id, "start-time", Attributes::StartTime::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "duration", Attributes::Duration::Id, credsIssuerConfig),                           // | 
|  | make_unique<SubscribeAttribute>(Id, "sampled-position", Attributes::SampledPosition::Id, credsIssuerConfig),            // | 
|  | make_unique<SubscribeAttribute>(Id, "playback-speed", Attributes::PlaybackSpeed::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "seek-range-end", Attributes::SeekRangeEnd::Id, credsIssuerConfig),                 // | 
|  | make_unique<SubscribeAttribute>(Id, "seek-range-start", Attributes::SeekRangeStart::Id, credsIssuerConfig),             // | 
|  | make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | // | 
|  | // Events | 
|  | // | 
|  | make_unique<ReadEvent>(Id, credsIssuerConfig),      // | 
|  | make_unique<SubscribeEvent>(Id, credsIssuerConfig), // | 
|  | }; | 
|  |  | 
|  | commands.Register(clusterName, clusterCommands); | 
|  | } | 
|  | void registerClusterMediaInput(Commands & commands, CredentialIssuerCommands * credsIssuerConfig) | 
|  | { | 
|  | using namespace chip::app::Clusters::MediaInput; | 
|  |  | 
|  | const char * clusterName = "MediaInput"; | 
|  |  | 
|  | commands_list clusterCommands = { | 
|  | // | 
|  | // Commands | 
|  | // | 
|  | make_unique<ClusterCommand>(Id, credsIssuerConfig),        // | 
|  | make_unique<MediaInputSelectInput>(credsIssuerConfig),     // | 
|  | make_unique<MediaInputShowInputStatus>(credsIssuerConfig), // | 
|  | make_unique<MediaInputHideInputStatus>(credsIssuerConfig), // | 
|  | make_unique<MediaInputRenameInput>(credsIssuerConfig),     // | 
|  | // | 
|  | // Attributes | 
|  | // | 
|  | make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<ReadAttribute>(Id, "input-list", Attributes::InputList::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "current-input", Attributes::CurrentInput::Id, credsIssuerConfig),                  // | 
|  | make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              // | 
|  | make_unique<WriteAttributeAsComplex< | 
|  | chip::app::DataModel::List<const chip::app::Clusters::MediaInput::Structs::InputInfoStruct::Type>>>( | 
|  | Id, "input-list", Attributes::InputList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "current-input", 0, UINT8_MAX, Attributes::CurrentInput::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>( | 
|  | Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>( | 
|  | Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig),                                // | 
|  | make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<SubscribeAttribute>(Id, "input-list", Attributes::InputList::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "current-input", Attributes::CurrentInput::Id, credsIssuerConfig),                  // | 
|  | make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | // | 
|  | // Events | 
|  | // | 
|  | make_unique<ReadEvent>(Id, credsIssuerConfig),      // | 
|  | make_unique<SubscribeEvent>(Id, credsIssuerConfig), // | 
|  | }; | 
|  |  | 
|  | commands.Register(clusterName, clusterCommands); | 
|  | } | 
|  | void registerClusterLowPower(Commands & commands, CredentialIssuerCommands * credsIssuerConfig) | 
|  | { | 
|  | using namespace chip::app::Clusters::LowPower; | 
|  |  | 
|  | const char * clusterName = "LowPower"; | 
|  |  | 
|  | commands_list clusterCommands = { | 
|  | // | 
|  | // Commands | 
|  | // | 
|  | make_unique<ClusterCommand>(Id, credsIssuerConfig), // | 
|  | make_unique<LowPowerSleep>(credsIssuerConfig),      // | 
|  | // | 
|  | // Attributes | 
|  | // | 
|  | make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>( | 
|  | Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>( | 
|  | Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig),                                // | 
|  | make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | // | 
|  | // Events | 
|  | // | 
|  | make_unique<ReadEvent>(Id, credsIssuerConfig),      // | 
|  | make_unique<SubscribeEvent>(Id, credsIssuerConfig), // | 
|  | }; | 
|  |  | 
|  | commands.Register(clusterName, clusterCommands); | 
|  | } | 
|  | void registerClusterKeypadInput(Commands & commands, CredentialIssuerCommands * credsIssuerConfig) | 
|  | { | 
|  | using namespace chip::app::Clusters::KeypadInput; | 
|  |  | 
|  | const char * clusterName = "KeypadInput"; | 
|  |  | 
|  | commands_list clusterCommands = { | 
|  | // | 
|  | // Commands | 
|  | // | 
|  | make_unique<ClusterCommand>(Id, credsIssuerConfig), // | 
|  | make_unique<KeypadInputSendKey>(credsIssuerConfig), // | 
|  | // | 
|  | // Attributes | 
|  | // | 
|  | make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>( | 
|  | Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>( | 
|  | Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig),                                // | 
|  | make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | // | 
|  | // Events | 
|  | // | 
|  | make_unique<ReadEvent>(Id, credsIssuerConfig),      // | 
|  | make_unique<SubscribeEvent>(Id, credsIssuerConfig), // | 
|  | }; | 
|  |  | 
|  | commands.Register(clusterName, clusterCommands); | 
|  | } | 
|  | void registerClusterContentLauncher(Commands & commands, CredentialIssuerCommands * credsIssuerConfig) | 
|  | { | 
|  | using namespace chip::app::Clusters::ContentLauncher; | 
|  |  | 
|  | const char * clusterName = "ContentLauncher"; | 
|  |  | 
|  | commands_list clusterCommands = { | 
|  | // | 
|  | // Commands | 
|  | // | 
|  | make_unique<ClusterCommand>(Id, credsIssuerConfig),           // | 
|  | make_unique<ContentLauncherLaunchContent>(credsIssuerConfig), // | 
|  | make_unique<ContentLauncherLaunchURL>(credsIssuerConfig),     // | 
|  | // | 
|  | // Attributes | 
|  | // | 
|  | make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                // | 
|  | make_unique<ReadAttribute>(Id, "accept-header", Attributes::AcceptHeader::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "supported-streaming-protocols", Attributes::SupportedStreamingProtocols::Id, | 
|  | credsIssuerConfig),                                                                     // | 
|  | make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CharSpan>>>( | 
|  | Id, "accept-header", Attributes::AcceptHeader::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "supported-streaming-protocols", 0, UINT32_MAX, | 
|  | Attributes::SupportedStreamingProtocols::Id, WriteCommandType::kWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>( | 
|  | Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>( | 
|  | Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig),               // | 
|  | make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                // | 
|  | make_unique<SubscribeAttribute>(Id, "accept-header", Attributes::AcceptHeader::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "supported-streaming-protocols", Attributes::SupportedStreamingProtocols::Id, | 
|  | credsIssuerConfig),                                                                     // | 
|  | make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | // | 
|  | // Events | 
|  | // | 
|  | make_unique<ReadEvent>(Id, credsIssuerConfig),      // | 
|  | make_unique<SubscribeEvent>(Id, credsIssuerConfig), // | 
|  | }; | 
|  |  | 
|  | commands.Register(clusterName, clusterCommands); | 
|  | } | 
|  | void registerClusterAudioOutput(Commands & commands, CredentialIssuerCommands * credsIssuerConfig) | 
|  | { | 
|  | using namespace chip::app::Clusters::AudioOutput; | 
|  |  | 
|  | const char * clusterName = "AudioOutput"; | 
|  |  | 
|  | commands_list clusterCommands = { | 
|  | // | 
|  | // Commands | 
|  | // | 
|  | make_unique<ClusterCommand>(Id, credsIssuerConfig),      // | 
|  | make_unique<AudioOutputSelectOutput>(credsIssuerConfig), // | 
|  | make_unique<AudioOutputRenameOutput>(credsIssuerConfig), // | 
|  | // | 
|  | // Attributes | 
|  | // | 
|  | make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<ReadAttribute>(Id, "output-list", Attributes::OutputList::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "current-output", Attributes::CurrentOutput::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              // | 
|  | make_unique<WriteAttributeAsComplex< | 
|  | chip::app::DataModel::List<const chip::app::Clusters::AudioOutput::Structs::OutputInfoStruct::Type>>>( | 
|  | Id, "output-list", Attributes::OutputList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "current-output", 0, UINT8_MAX, Attributes::CurrentOutput::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>( | 
|  | Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>( | 
|  | Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig),                                // | 
|  | make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<SubscribeAttribute>(Id, "output-list", Attributes::OutputList::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "current-output", Attributes::CurrentOutput::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | // | 
|  | // Events | 
|  | // | 
|  | make_unique<ReadEvent>(Id, credsIssuerConfig),      // | 
|  | make_unique<SubscribeEvent>(Id, credsIssuerConfig), // | 
|  | }; | 
|  |  | 
|  | commands.Register(clusterName, clusterCommands); | 
|  | } | 
|  | void registerClusterApplicationLauncher(Commands & commands, CredentialIssuerCommands * credsIssuerConfig) | 
|  | { | 
|  | using namespace chip::app::Clusters::ApplicationLauncher; | 
|  |  | 
|  | const char * clusterName = "ApplicationLauncher"; | 
|  |  | 
|  | commands_list clusterCommands = { | 
|  | // | 
|  | // Commands | 
|  | // | 
|  | make_unique<ClusterCommand>(Id, credsIssuerConfig),           // | 
|  | make_unique<ApplicationLauncherLaunchApp>(credsIssuerConfig), // | 
|  | make_unique<ApplicationLauncherStopApp>(credsIssuerConfig),   // | 
|  | make_unique<ApplicationLauncherHideApp>(credsIssuerConfig),   // | 
|  | // | 
|  | // Attributes | 
|  | // | 
|  | make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<ReadAttribute>(Id, "catalog-list", Attributes::CatalogList::Id, credsIssuerConfig),                    // | 
|  | make_unique<ReadAttribute>(Id, "current-app", Attributes::CurrentApp::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const uint16_t>>>( | 
|  | Id, "catalog-list", Attributes::CatalogList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex< | 
|  | chip::app::DataModel::Nullable<chip::app::Clusters::ApplicationLauncher::Structs::ApplicationEPStruct::Type>>>( | 
|  | Id, "current-app", Attributes::CurrentApp::Id, WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>( | 
|  | Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>( | 
|  | Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig),                                // | 
|  | make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<SubscribeAttribute>(Id, "catalog-list", Attributes::CatalogList::Id, credsIssuerConfig),                    // | 
|  | make_unique<SubscribeAttribute>(Id, "current-app", Attributes::CurrentApp::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | // | 
|  | // Events | 
|  | // | 
|  | make_unique<ReadEvent>(Id, credsIssuerConfig),      // | 
|  | make_unique<SubscribeEvent>(Id, credsIssuerConfig), // | 
|  | }; | 
|  |  | 
|  | commands.Register(clusterName, clusterCommands); | 
|  | } | 
|  | void registerClusterApplicationBasic(Commands & commands, CredentialIssuerCommands * credsIssuerConfig) | 
|  | { | 
|  | using namespace chip::app::Clusters::ApplicationBasic; | 
|  |  | 
|  | const char * clusterName = "ApplicationBasic"; | 
|  |  | 
|  | commands_list clusterCommands = { | 
|  | // | 
|  | // Commands | 
|  | // | 
|  | make_unique<ClusterCommand>(Id, credsIssuerConfig), // | 
|  | // | 
|  | // Attributes | 
|  | // | 
|  | make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<ReadAttribute>(Id, "vendor-name", Attributes::VendorName::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "vendor-id", Attributes::VendorID::Id, credsIssuerConfig),                          // | 
|  | make_unique<ReadAttribute>(Id, "application-name", Attributes::ApplicationName::Id, credsIssuerConfig),            // | 
|  | make_unique<ReadAttribute>(Id, "product-id", Attributes::ProductID::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "application", Attributes::Application::Id, credsIssuerConfig),                     // | 
|  | make_unique<ReadAttribute>(Id, "status", Attributes::Status::Id, credsIssuerConfig),                               // | 
|  | make_unique<ReadAttribute>(Id, "application-version", Attributes::ApplicationVersion::Id, credsIssuerConfig),      // | 
|  | make_unique<ReadAttribute>(Id, "allowed-vendor-list", Attributes::AllowedVendorList::Id, credsIssuerConfig),       // | 
|  | make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              // | 
|  | make_unique<WriteAttribute<chip::CharSpan>>(Id, "vendor-name", Attributes::VendorName::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::VendorId>>(Id, "vendor-id", 0, UINT16_MAX, Attributes::VendorID::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::CharSpan>>(Id, "application-name", Attributes::ApplicationName::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "product-id", 0, UINT16_MAX, Attributes::ProductID::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::Clusters::ApplicationBasic::Structs::ApplicationStruct::Type>>( | 
|  | Id, "application", Attributes::Application::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::Clusters::ApplicationBasic::ApplicationStatusEnum>>( | 
|  | Id, "status", 0, UINT8_MAX, Attributes::Status::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::CharSpan>>(Id, "application-version", Attributes::ApplicationVersion::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::VendorId>>>( | 
|  | Id, "allowed-vendor-list", Attributes::AllowedVendorList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>( | 
|  | Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>( | 
|  | Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig),                                // | 
|  | make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<SubscribeAttribute>(Id, "vendor-name", Attributes::VendorName::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "vendor-id", Attributes::VendorID::Id, credsIssuerConfig),                          // | 
|  | make_unique<SubscribeAttribute>(Id, "application-name", Attributes::ApplicationName::Id, credsIssuerConfig),            // | 
|  | make_unique<SubscribeAttribute>(Id, "product-id", Attributes::ProductID::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "application", Attributes::Application::Id, credsIssuerConfig),                     // | 
|  | make_unique<SubscribeAttribute>(Id, "status", Attributes::Status::Id, credsIssuerConfig),                               // | 
|  | make_unique<SubscribeAttribute>(Id, "application-version", Attributes::ApplicationVersion::Id, credsIssuerConfig),      // | 
|  | make_unique<SubscribeAttribute>(Id, "allowed-vendor-list", Attributes::AllowedVendorList::Id, credsIssuerConfig),       // | 
|  | make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | // | 
|  | // Events | 
|  | // | 
|  | make_unique<ReadEvent>(Id, credsIssuerConfig),      // | 
|  | make_unique<SubscribeEvent>(Id, credsIssuerConfig), // | 
|  | }; | 
|  |  | 
|  | commands.Register(clusterName, clusterCommands); | 
|  | } | 
|  | void registerClusterAccountLogin(Commands & commands, CredentialIssuerCommands * credsIssuerConfig) | 
|  | { | 
|  | using namespace chip::app::Clusters::AccountLogin; | 
|  |  | 
|  | const char * clusterName = "AccountLogin"; | 
|  |  | 
|  | commands_list clusterCommands = { | 
|  | // | 
|  | // Commands | 
|  | // | 
|  | make_unique<ClusterCommand>(Id, credsIssuerConfig),      // | 
|  | make_unique<AccountLoginGetSetupPIN>(credsIssuerConfig), // | 
|  | make_unique<AccountLoginLogin>(credsIssuerConfig),       // | 
|  | make_unique<AccountLoginLogout>(credsIssuerConfig),      // | 
|  | // | 
|  | // Attributes | 
|  | // | 
|  | make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>( | 
|  | Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>( | 
|  | Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig),                                // | 
|  | make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | // | 
|  | // Events | 
|  | // | 
|  | make_unique<ReadEvent>(Id, credsIssuerConfig),      // | 
|  | make_unique<SubscribeEvent>(Id, credsIssuerConfig), // | 
|  | }; | 
|  |  | 
|  | commands.Register(clusterName, clusterCommands); | 
|  | } | 
|  | void registerClusterElectricalMeasurement(Commands & commands, CredentialIssuerCommands * credsIssuerConfig) | 
|  | { | 
|  | using namespace chip::app::Clusters::ElectricalMeasurement; | 
|  |  | 
|  | const char * clusterName = "ElectricalMeasurement"; | 
|  |  | 
|  | commands_list clusterCommands = { | 
|  | // | 
|  | // Commands | 
|  | // | 
|  | make_unique<ClusterCommand>(Id, credsIssuerConfig),                                // | 
|  | make_unique<ElectricalMeasurementGetProfileInfoCommand>(credsIssuerConfig),        // | 
|  | make_unique<ElectricalMeasurementGetMeasurementProfileCommand>(credsIssuerConfig), // | 
|  | // | 
|  | // Attributes | 
|  | // | 
|  | make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                               // | 
|  | make_unique<ReadAttribute>(Id, "measurement-type", Attributes::MeasurementType::Id, credsIssuerConfig),          // | 
|  | make_unique<ReadAttribute>(Id, "dc-voltage", Attributes::DcVoltage::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "dc-voltage-min", Attributes::DcVoltageMin::Id, credsIssuerConfig),               // | 
|  | make_unique<ReadAttribute>(Id, "dc-voltage-max", Attributes::DcVoltageMax::Id, credsIssuerConfig),               // | 
|  | make_unique<ReadAttribute>(Id, "dc-current", Attributes::DcCurrent::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "dc-current-min", Attributes::DcCurrentMin::Id, credsIssuerConfig),               // | 
|  | make_unique<ReadAttribute>(Id, "dc-current-max", Attributes::DcCurrentMax::Id, credsIssuerConfig),               // | 
|  | make_unique<ReadAttribute>(Id, "dc-power", Attributes::DcPower::Id, credsIssuerConfig),                          // | 
|  | make_unique<ReadAttribute>(Id, "dc-power-min", Attributes::DcPowerMin::Id, credsIssuerConfig),                   // | 
|  | make_unique<ReadAttribute>(Id, "dc-power-max", Attributes::DcPowerMax::Id, credsIssuerConfig),                   // | 
|  | make_unique<ReadAttribute>(Id, "dc-voltage-multiplier", Attributes::DcVoltageMultiplier::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "dc-voltage-divisor", Attributes::DcVoltageDivisor::Id, credsIssuerConfig),       // | 
|  | make_unique<ReadAttribute>(Id, "dc-current-multiplier", Attributes::DcCurrentMultiplier::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "dc-current-divisor", Attributes::DcCurrentDivisor::Id, credsIssuerConfig),       // | 
|  | make_unique<ReadAttribute>(Id, "dc-power-multiplier", Attributes::DcPowerMultiplier::Id, credsIssuerConfig),     // | 
|  | make_unique<ReadAttribute>(Id, "dc-power-divisor", Attributes::DcPowerDivisor::Id, credsIssuerConfig),           // | 
|  | make_unique<ReadAttribute>(Id, "ac-frequency", Attributes::AcFrequency::Id, credsIssuerConfig),                  // | 
|  | make_unique<ReadAttribute>(Id, "ac-frequency-min", Attributes::AcFrequencyMin::Id, credsIssuerConfig),           // | 
|  | make_unique<ReadAttribute>(Id, "ac-frequency-max", Attributes::AcFrequencyMax::Id, credsIssuerConfig),           // | 
|  | make_unique<ReadAttribute>(Id, "neutral-current", Attributes::NeutralCurrent::Id, credsIssuerConfig),            // | 
|  | make_unique<ReadAttribute>(Id, "total-active-power", Attributes::TotalActivePower::Id, credsIssuerConfig),       // | 
|  | make_unique<ReadAttribute>(Id, "total-reactive-power", Attributes::TotalReactivePower::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "total-apparent-power", Attributes::TotalApparentPower::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "measured1st-harmonic-current", Attributes::Measured1stHarmonicCurrent::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "measured3rd-harmonic-current", Attributes::Measured3rdHarmonicCurrent::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "measured5th-harmonic-current", Attributes::Measured5thHarmonicCurrent::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "measured7th-harmonic-current", Attributes::Measured7thHarmonicCurrent::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "measured9th-harmonic-current", Attributes::Measured9thHarmonicCurrent::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "measured11th-harmonic-current", Attributes::Measured11thHarmonicCurrent::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "measured-phase1st-harmonic-current", Attributes::MeasuredPhase1stHarmonicCurrent::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "measured-phase3rd-harmonic-current", Attributes::MeasuredPhase3rdHarmonicCurrent::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "measured-phase5th-harmonic-current", Attributes::MeasuredPhase5thHarmonicCurrent::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "measured-phase7th-harmonic-current", Attributes::MeasuredPhase7thHarmonicCurrent::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "measured-phase9th-harmonic-current", Attributes::MeasuredPhase9thHarmonicCurrent::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "measured-phase11th-harmonic-current", Attributes::MeasuredPhase11thHarmonicCurrent::Id, | 
|  | credsIssuerConfig),                                                                       // | 
|  | make_unique<ReadAttribute>(Id, "ac-frequency-multiplier", Attributes::AcFrequencyMultiplier::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "ac-frequency-divisor", Attributes::AcFrequencyDivisor::Id, credsIssuerConfig),       // | 
|  | make_unique<ReadAttribute>(Id, "power-multiplier", Attributes::PowerMultiplier::Id, credsIssuerConfig),              // | 
|  | make_unique<ReadAttribute>(Id, "power-divisor", Attributes::PowerDivisor::Id, credsIssuerConfig),                    // | 
|  | make_unique<ReadAttribute>(Id, "harmonic-current-multiplier", Attributes::HarmonicCurrentMultiplier::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "phase-harmonic-current-multiplier", Attributes::PhaseHarmonicCurrentMultiplier::Id, | 
|  | credsIssuerConfig),                                                                    // | 
|  | make_unique<ReadAttribute>(Id, "instantaneous-voltage", Attributes::InstantaneousVoltage::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "instantaneous-line-current", Attributes::InstantaneousLineCurrent::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "instantaneous-active-current", Attributes::InstantaneousActiveCurrent::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "instantaneous-reactive-current", Attributes::InstantaneousReactiveCurrent::Id, | 
|  | credsIssuerConfig),                                                                // | 
|  | make_unique<ReadAttribute>(Id, "instantaneous-power", Attributes::InstantaneousPower::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "rms-voltage", Attributes::RmsVoltage::Id, credsIssuerConfig),                 // | 
|  | make_unique<ReadAttribute>(Id, "rms-voltage-min", Attributes::RmsVoltageMin::Id, credsIssuerConfig),          // | 
|  | make_unique<ReadAttribute>(Id, "rms-voltage-max", Attributes::RmsVoltageMax::Id, credsIssuerConfig),          // | 
|  | make_unique<ReadAttribute>(Id, "rms-current", Attributes::RmsCurrent::Id, credsIssuerConfig),                 // | 
|  | make_unique<ReadAttribute>(Id, "rms-current-min", Attributes::RmsCurrentMin::Id, credsIssuerConfig),          // | 
|  | make_unique<ReadAttribute>(Id, "rms-current-max", Attributes::RmsCurrentMax::Id, credsIssuerConfig),          // | 
|  | make_unique<ReadAttribute>(Id, "active-power", Attributes::ActivePower::Id, credsIssuerConfig),               // | 
|  | make_unique<ReadAttribute>(Id, "active-power-min", Attributes::ActivePowerMin::Id, credsIssuerConfig),        // | 
|  | make_unique<ReadAttribute>(Id, "active-power-max", Attributes::ActivePowerMax::Id, credsIssuerConfig),        // | 
|  | make_unique<ReadAttribute>(Id, "reactive-power", Attributes::ReactivePower::Id, credsIssuerConfig),           // | 
|  | make_unique<ReadAttribute>(Id, "apparent-power", Attributes::ApparentPower::Id, credsIssuerConfig),           // | 
|  | make_unique<ReadAttribute>(Id, "power-factor", Attributes::PowerFactor::Id, credsIssuerConfig),               // | 
|  | make_unique<ReadAttribute>(Id, "average-rms-voltage-measurement-period", Attributes::AverageRmsVoltageMeasurementPeriod::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "average-rms-under-voltage-counter", Attributes::AverageRmsUnderVoltageCounter::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "rms-extreme-over-voltage-period", Attributes::RmsExtremeOverVoltagePeriod::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "rms-extreme-under-voltage-period", Attributes::RmsExtremeUnderVoltagePeriod::Id, | 
|  | credsIssuerConfig),                                                                            // | 
|  | make_unique<ReadAttribute>(Id, "rms-voltage-sag-period", Attributes::RmsVoltageSagPeriod::Id, credsIssuerConfig),         // | 
|  | make_unique<ReadAttribute>(Id, "rms-voltage-swell-period", Attributes::RmsVoltageSwellPeriod::Id, credsIssuerConfig),     // | 
|  | make_unique<ReadAttribute>(Id, "ac-voltage-multiplier", Attributes::AcVoltageMultiplier::Id, credsIssuerConfig),          // | 
|  | make_unique<ReadAttribute>(Id, "ac-voltage-divisor", Attributes::AcVoltageDivisor::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "ac-current-multiplier", Attributes::AcCurrentMultiplier::Id, credsIssuerConfig),          // | 
|  | make_unique<ReadAttribute>(Id, "ac-current-divisor", Attributes::AcCurrentDivisor::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "ac-power-multiplier", Attributes::AcPowerMultiplier::Id, credsIssuerConfig),              // | 
|  | make_unique<ReadAttribute>(Id, "ac-power-divisor", Attributes::AcPowerDivisor::Id, credsIssuerConfig),                    // | 
|  | make_unique<ReadAttribute>(Id, "overload-alarms-mask", Attributes::OverloadAlarmsMask::Id, credsIssuerConfig),            // | 
|  | make_unique<ReadAttribute>(Id, "voltage-overload", Attributes::VoltageOverload::Id, credsIssuerConfig),                   // | 
|  | make_unique<ReadAttribute>(Id, "current-overload", Attributes::CurrentOverload::Id, credsIssuerConfig),                   // | 
|  | make_unique<ReadAttribute>(Id, "ac-overload-alarms-mask", Attributes::AcOverloadAlarmsMask::Id, credsIssuerConfig),       // | 
|  | make_unique<ReadAttribute>(Id, "ac-voltage-overload", Attributes::AcVoltageOverload::Id, credsIssuerConfig),              // | 
|  | make_unique<ReadAttribute>(Id, "ac-current-overload", Attributes::AcCurrentOverload::Id, credsIssuerConfig),              // | 
|  | make_unique<ReadAttribute>(Id, "ac-active-power-overload", Attributes::AcActivePowerOverload::Id, credsIssuerConfig),     // | 
|  | make_unique<ReadAttribute>(Id, "ac-reactive-power-overload", Attributes::AcReactivePowerOverload::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "average-rms-over-voltage", Attributes::AverageRmsOverVoltage::Id, credsIssuerConfig),     // | 
|  | make_unique<ReadAttribute>(Id, "average-rms-under-voltage", Attributes::AverageRmsUnderVoltage::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "rms-extreme-over-voltage", Attributes::RmsExtremeOverVoltage::Id, credsIssuerConfig),     // | 
|  | make_unique<ReadAttribute>(Id, "rms-extreme-under-voltage", Attributes::RmsExtremeUnderVoltage::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "rms-voltage-sag", Attributes::RmsVoltageSag::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "rms-voltage-swell", Attributes::RmsVoltageSwell::Id, credsIssuerConfig),                  // | 
|  | make_unique<ReadAttribute>(Id, "line-current-phase-b", Attributes::LineCurrentPhaseB::Id, credsIssuerConfig),             // | 
|  | make_unique<ReadAttribute>(Id, "active-current-phase-b", Attributes::ActiveCurrentPhaseB::Id, credsIssuerConfig),         // | 
|  | make_unique<ReadAttribute>(Id, "reactive-current-phase-b", Attributes::ReactiveCurrentPhaseB::Id, credsIssuerConfig),     // | 
|  | make_unique<ReadAttribute>(Id, "rms-voltage-phase-b", Attributes::RmsVoltagePhaseB::Id, credsIssuerConfig),               // | 
|  | make_unique<ReadAttribute>(Id, "rms-voltage-min-phase-b", Attributes::RmsVoltageMinPhaseB::Id, credsIssuerConfig),        // | 
|  | make_unique<ReadAttribute>(Id, "rms-voltage-max-phase-b", Attributes::RmsVoltageMaxPhaseB::Id, credsIssuerConfig),        // | 
|  | make_unique<ReadAttribute>(Id, "rms-current-phase-b", Attributes::RmsCurrentPhaseB::Id, credsIssuerConfig),               // | 
|  | make_unique<ReadAttribute>(Id, "rms-current-min-phase-b", Attributes::RmsCurrentMinPhaseB::Id, credsIssuerConfig),        // | 
|  | make_unique<ReadAttribute>(Id, "rms-current-max-phase-b", Attributes::RmsCurrentMaxPhaseB::Id, credsIssuerConfig),        // | 
|  | make_unique<ReadAttribute>(Id, "active-power-phase-b", Attributes::ActivePowerPhaseB::Id, credsIssuerConfig),             // | 
|  | make_unique<ReadAttribute>(Id, "active-power-min-phase-b", Attributes::ActivePowerMinPhaseB::Id, credsIssuerConfig),      // | 
|  | make_unique<ReadAttribute>(Id, "active-power-max-phase-b", Attributes::ActivePowerMaxPhaseB::Id, credsIssuerConfig),      // | 
|  | make_unique<ReadAttribute>(Id, "reactive-power-phase-b", Attributes::ReactivePowerPhaseB::Id, credsIssuerConfig),         // | 
|  | make_unique<ReadAttribute>(Id, "apparent-power-phase-b", Attributes::ApparentPowerPhaseB::Id, credsIssuerConfig),         // | 
|  | make_unique<ReadAttribute>(Id, "power-factor-phase-b", Attributes::PowerFactorPhaseB::Id, credsIssuerConfig),             // | 
|  | make_unique<ReadAttribute>(Id, "average-rms-voltage-measurement-period-phase-b", | 
|  | Attributes::AverageRmsVoltageMeasurementPeriodPhaseB::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "average-rms-over-voltage-counter-phase-b", | 
|  | Attributes::AverageRmsOverVoltageCounterPhaseB::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "average-rms-under-voltage-counter-phase-b", | 
|  | Attributes::AverageRmsUnderVoltageCounterPhaseB::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "rms-extreme-over-voltage-period-phase-b", Attributes::RmsExtremeOverVoltagePeriodPhaseB::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "rms-extreme-under-voltage-period-phase-b", | 
|  | Attributes::RmsExtremeUnderVoltagePeriodPhaseB::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "rms-voltage-sag-period-phase-b", Attributes::RmsVoltageSagPeriodPhaseB::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "rms-voltage-swell-period-phase-b", Attributes::RmsVoltageSwellPeriodPhaseB::Id, | 
|  | credsIssuerConfig),                                                                        // | 
|  | make_unique<ReadAttribute>(Id, "line-current-phase-c", Attributes::LineCurrentPhaseC::Id, credsIssuerConfig),         // | 
|  | make_unique<ReadAttribute>(Id, "active-current-phase-c", Attributes::ActiveCurrentPhaseC::Id, credsIssuerConfig),     // | 
|  | make_unique<ReadAttribute>(Id, "reactive-current-phase-c", Attributes::ReactiveCurrentPhaseC::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "rms-voltage-phase-c", Attributes::RmsVoltagePhaseC::Id, credsIssuerConfig),           // | 
|  | make_unique<ReadAttribute>(Id, "rms-voltage-min-phase-c", Attributes::RmsVoltageMinPhaseC::Id, credsIssuerConfig),    // | 
|  | make_unique<ReadAttribute>(Id, "rms-voltage-max-phase-c", Attributes::RmsVoltageMaxPhaseC::Id, credsIssuerConfig),    // | 
|  | make_unique<ReadAttribute>(Id, "rms-current-phase-c", Attributes::RmsCurrentPhaseC::Id, credsIssuerConfig),           // | 
|  | make_unique<ReadAttribute>(Id, "rms-current-min-phase-c", Attributes::RmsCurrentMinPhaseC::Id, credsIssuerConfig),    // | 
|  | make_unique<ReadAttribute>(Id, "rms-current-max-phase-c", Attributes::RmsCurrentMaxPhaseC::Id, credsIssuerConfig),    // | 
|  | make_unique<ReadAttribute>(Id, "active-power-phase-c", Attributes::ActivePowerPhaseC::Id, credsIssuerConfig),         // | 
|  | make_unique<ReadAttribute>(Id, "active-power-min-phase-c", Attributes::ActivePowerMinPhaseC::Id, credsIssuerConfig),  // | 
|  | make_unique<ReadAttribute>(Id, "active-power-max-phase-c", Attributes::ActivePowerMaxPhaseC::Id, credsIssuerConfig),  // | 
|  | make_unique<ReadAttribute>(Id, "reactive-power-phase-c", Attributes::ReactivePowerPhaseC::Id, credsIssuerConfig),     // | 
|  | make_unique<ReadAttribute>(Id, "apparent-power-phase-c", Attributes::ApparentPowerPhaseC::Id, credsIssuerConfig),     // | 
|  | make_unique<ReadAttribute>(Id, "power-factor-phase-c", Attributes::PowerFactorPhaseC::Id, credsIssuerConfig),         // | 
|  | make_unique<ReadAttribute>(Id, "average-rms-voltage-measurement-period-phase-c", | 
|  | Attributes::AverageRmsVoltageMeasurementPeriodPhaseC::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "average-rms-over-voltage-counter-phase-c", | 
|  | Attributes::AverageRmsOverVoltageCounterPhaseC::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "average-rms-under-voltage-counter-phase-c", | 
|  | Attributes::AverageRmsUnderVoltageCounterPhaseC::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "rms-extreme-over-voltage-period-phase-c", Attributes::RmsExtremeOverVoltagePeriodPhaseC::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "rms-extreme-under-voltage-period-phase-c", | 
|  | Attributes::RmsExtremeUnderVoltagePeriodPhaseC::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "rms-voltage-sag-period-phase-c", Attributes::RmsVoltageSagPeriodPhaseC::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "rms-voltage-swell-period-phase-c", Attributes::RmsVoltageSwellPeriodPhaseC::Id, | 
|  | credsIssuerConfig),                                                                     // | 
|  | make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "measurement-type", 0, UINT32_MAX, Attributes::MeasurementType::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<int16_t>>(Id, "dc-voltage", INT16_MIN, INT16_MAX, Attributes::DcVoltage::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<int16_t>>(Id, "dc-voltage-min", INT16_MIN, INT16_MAX, Attributes::DcVoltageMin::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<int16_t>>(Id, "dc-voltage-max", INT16_MIN, INT16_MAX, Attributes::DcVoltageMax::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<int16_t>>(Id, "dc-current", INT16_MIN, INT16_MAX, Attributes::DcCurrent::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<int16_t>>(Id, "dc-current-min", INT16_MIN, INT16_MAX, Attributes::DcCurrentMin::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<int16_t>>(Id, "dc-current-max", INT16_MIN, INT16_MAX, Attributes::DcCurrentMax::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<int16_t>>(Id, "dc-power", INT16_MIN, INT16_MAX, Attributes::DcPower::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<int16_t>>(Id, "dc-power-min", INT16_MIN, INT16_MAX, Attributes::DcPowerMin::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<int16_t>>(Id, "dc-power-max", INT16_MIN, INT16_MAX, Attributes::DcPowerMax::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "dc-voltage-multiplier", 0, UINT16_MAX, Attributes::DcVoltageMultiplier::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "dc-voltage-divisor", 0, UINT16_MAX, Attributes::DcVoltageDivisor::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "dc-current-multiplier", 0, UINT16_MAX, Attributes::DcCurrentMultiplier::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "dc-current-divisor", 0, UINT16_MAX, Attributes::DcCurrentDivisor::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "dc-power-multiplier", 0, UINT16_MAX, Attributes::DcPowerMultiplier::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "dc-power-divisor", 0, UINT16_MAX, Attributes::DcPowerDivisor::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "ac-frequency", 0, UINT16_MAX, Attributes::AcFrequency::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "ac-frequency-min", 0, UINT16_MAX, Attributes::AcFrequencyMin::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "ac-frequency-max", 0, UINT16_MAX, Attributes::AcFrequencyMax::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "neutral-current", 0, UINT16_MAX, Attributes::NeutralCurrent::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<int32_t>>(Id, "total-active-power", INT32_MIN, INT32_MAX, Attributes::TotalActivePower::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<int32_t>>(Id, "total-reactive-power", INT32_MIN, INT32_MAX, Attributes::TotalReactivePower::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "total-apparent-power", 0, UINT32_MAX, Attributes::TotalApparentPower::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<int16_t>>(Id, "measured1st-harmonic-current", INT16_MIN, INT16_MAX, | 
|  | Attributes::Measured1stHarmonicCurrent::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<int16_t>>(Id, "measured3rd-harmonic-current", INT16_MIN, INT16_MAX, | 
|  | Attributes::Measured3rdHarmonicCurrent::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<int16_t>>(Id, "measured5th-harmonic-current", INT16_MIN, INT16_MAX, | 
|  | Attributes::Measured5thHarmonicCurrent::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<int16_t>>(Id, "measured7th-harmonic-current", INT16_MIN, INT16_MAX, | 
|  | Attributes::Measured7thHarmonicCurrent::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<int16_t>>(Id, "measured9th-harmonic-current", INT16_MIN, INT16_MAX, | 
|  | Attributes::Measured9thHarmonicCurrent::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<int16_t>>(Id, "measured11th-harmonic-current", INT16_MIN, INT16_MAX, | 
|  | Attributes::Measured11thHarmonicCurrent::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<int16_t>>(Id, "measured-phase1st-harmonic-current", INT16_MIN, INT16_MAX, | 
|  | Attributes::MeasuredPhase1stHarmonicCurrent::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<int16_t>>(Id, "measured-phase3rd-harmonic-current", INT16_MIN, INT16_MAX, | 
|  | Attributes::MeasuredPhase3rdHarmonicCurrent::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<int16_t>>(Id, "measured-phase5th-harmonic-current", INT16_MIN, INT16_MAX, | 
|  | Attributes::MeasuredPhase5thHarmonicCurrent::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<int16_t>>(Id, "measured-phase7th-harmonic-current", INT16_MIN, INT16_MAX, | 
|  | Attributes::MeasuredPhase7thHarmonicCurrent::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<int16_t>>(Id, "measured-phase9th-harmonic-current", INT16_MIN, INT16_MAX, | 
|  | Attributes::MeasuredPhase9thHarmonicCurrent::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<int16_t>>(Id, "measured-phase11th-harmonic-current", INT16_MIN, INT16_MAX, | 
|  | Attributes::MeasuredPhase11thHarmonicCurrent::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "ac-frequency-multiplier", 0, UINT16_MAX, Attributes::AcFrequencyMultiplier::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "ac-frequency-divisor", 0, UINT16_MAX, Attributes::AcFrequencyDivisor::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "power-multiplier", 0, UINT32_MAX, Attributes::PowerMultiplier::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "power-divisor", 0, UINT32_MAX, Attributes::PowerDivisor::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<int8_t>>(Id, "harmonic-current-multiplier", INT8_MIN, INT8_MAX, | 
|  | Attributes::HarmonicCurrentMultiplier::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<int8_t>>(Id, "phase-harmonic-current-multiplier", INT8_MIN, INT8_MAX, | 
|  | Attributes::PhaseHarmonicCurrentMultiplier::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<int16_t>>(Id, "instantaneous-voltage", INT16_MIN, INT16_MAX, | 
|  | Attributes::InstantaneousVoltage::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "instantaneous-line-current", 0, UINT16_MAX, | 
|  | Attributes::InstantaneousLineCurrent::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<int16_t>>(Id, "instantaneous-active-current", INT16_MIN, INT16_MAX, | 
|  | Attributes::InstantaneousActiveCurrent::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<int16_t>>(Id, "instantaneous-reactive-current", INT16_MIN, INT16_MAX, | 
|  | Attributes::InstantaneousReactiveCurrent::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<int16_t>>(Id, "instantaneous-power", INT16_MIN, INT16_MAX, Attributes::InstantaneousPower::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "rms-voltage", 0, UINT16_MAX, Attributes::RmsVoltage::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "rms-voltage-min", 0, UINT16_MAX, Attributes::RmsVoltageMin::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "rms-voltage-max", 0, UINT16_MAX, Attributes::RmsVoltageMax::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "rms-current", 0, UINT16_MAX, Attributes::RmsCurrent::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "rms-current-min", 0, UINT16_MAX, Attributes::RmsCurrentMin::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "rms-current-max", 0, UINT16_MAX, Attributes::RmsCurrentMax::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<int16_t>>(Id, "active-power", INT16_MIN, INT16_MAX, Attributes::ActivePower::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<int16_t>>(Id, "active-power-min", INT16_MIN, INT16_MAX, Attributes::ActivePowerMin::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<int16_t>>(Id, "active-power-max", INT16_MIN, INT16_MAX, Attributes::ActivePowerMax::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<int16_t>>(Id, "reactive-power", INT16_MIN, INT16_MAX, Attributes::ReactivePower::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "apparent-power", 0, UINT16_MAX, Attributes::ApparentPower::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<int8_t>>(Id, "power-factor", INT8_MIN, INT8_MAX, Attributes::PowerFactor::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "average-rms-voltage-measurement-period", 0, UINT16_MAX, | 
|  | Attributes::AverageRmsVoltageMeasurementPeriod::Id, WriteCommandType::kWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "average-rms-under-voltage-counter", 0, UINT16_MAX, | 
|  | Attributes::AverageRmsUnderVoltageCounter::Id, WriteCommandType::kWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "rms-extreme-over-voltage-period", 0, UINT16_MAX, | 
|  | Attributes::RmsExtremeOverVoltagePeriod::Id, WriteCommandType::kWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "rms-extreme-under-voltage-period", 0, UINT16_MAX, | 
|  | Attributes::RmsExtremeUnderVoltagePeriod::Id, WriteCommandType::kWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "rms-voltage-sag-period", 0, UINT16_MAX, Attributes::RmsVoltageSagPeriod::Id, | 
|  | WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "rms-voltage-swell-period", 0, UINT16_MAX, Attributes::RmsVoltageSwellPeriod::Id, | 
|  | WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "ac-voltage-multiplier", 0, UINT16_MAX, Attributes::AcVoltageMultiplier::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "ac-voltage-divisor", 0, UINT16_MAX, Attributes::AcVoltageDivisor::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "ac-current-multiplier", 0, UINT16_MAX, Attributes::AcCurrentMultiplier::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "ac-current-divisor", 0, UINT16_MAX, Attributes::AcCurrentDivisor::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "ac-power-multiplier", 0, UINT16_MAX, Attributes::AcPowerMultiplier::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "ac-power-divisor", 0, UINT16_MAX, Attributes::AcPowerDivisor::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "overload-alarms-mask", 0, UINT8_MAX, Attributes::OverloadAlarmsMask::Id, | 
|  | WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<int16_t>>(Id, "voltage-overload", INT16_MIN, INT16_MAX, Attributes::VoltageOverload::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<int16_t>>(Id, "current-overload", INT16_MIN, INT16_MAX, Attributes::CurrentOverload::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "ac-overload-alarms-mask", 0, UINT16_MAX, Attributes::AcOverloadAlarmsMask::Id, | 
|  | WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<int16_t>>(Id, "ac-voltage-overload", INT16_MIN, INT16_MAX, Attributes::AcVoltageOverload::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<int16_t>>(Id, "ac-current-overload", INT16_MIN, INT16_MAX, Attributes::AcCurrentOverload::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<int16_t>>(Id, "ac-active-power-overload", INT16_MIN, INT16_MAX, | 
|  | Attributes::AcActivePowerOverload::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<int16_t>>(Id, "ac-reactive-power-overload", INT16_MIN, INT16_MAX, | 
|  | Attributes::AcReactivePowerOverload::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<int16_t>>(Id, "average-rms-over-voltage", INT16_MIN, INT16_MAX, | 
|  | Attributes::AverageRmsOverVoltage::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<int16_t>>(Id, "average-rms-under-voltage", INT16_MIN, INT16_MAX, | 
|  | Attributes::AverageRmsUnderVoltage::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<int16_t>>(Id, "rms-extreme-over-voltage", INT16_MIN, INT16_MAX, | 
|  | Attributes::RmsExtremeOverVoltage::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<int16_t>>(Id, "rms-extreme-under-voltage", INT16_MIN, INT16_MAX, | 
|  | Attributes::RmsExtremeUnderVoltage::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<int16_t>>(Id, "rms-voltage-sag", INT16_MIN, INT16_MAX, Attributes::RmsVoltageSag::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<int16_t>>(Id, "rms-voltage-swell", INT16_MIN, INT16_MAX, Attributes::RmsVoltageSwell::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "line-current-phase-b", 0, UINT16_MAX, Attributes::LineCurrentPhaseB::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<int16_t>>(Id, "active-current-phase-b", INT16_MIN, INT16_MAX, | 
|  | Attributes::ActiveCurrentPhaseB::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<int16_t>>(Id, "reactive-current-phase-b", INT16_MIN, INT16_MAX, | 
|  | Attributes::ReactiveCurrentPhaseB::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "rms-voltage-phase-b", 0, UINT16_MAX, Attributes::RmsVoltagePhaseB::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "rms-voltage-min-phase-b", 0, UINT16_MAX, Attributes::RmsVoltageMinPhaseB::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "rms-voltage-max-phase-b", 0, UINT16_MAX, Attributes::RmsVoltageMaxPhaseB::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "rms-current-phase-b", 0, UINT16_MAX, Attributes::RmsCurrentPhaseB::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "rms-current-min-phase-b", 0, UINT16_MAX, Attributes::RmsCurrentMinPhaseB::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "rms-current-max-phase-b", 0, UINT16_MAX, Attributes::RmsCurrentMaxPhaseB::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<int16_t>>(Id, "active-power-phase-b", INT16_MIN, INT16_MAX, Attributes::ActivePowerPhaseB::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<int16_t>>(Id, "active-power-min-phase-b", INT16_MIN, INT16_MAX, | 
|  | Attributes::ActivePowerMinPhaseB::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<int16_t>>(Id, "active-power-max-phase-b", INT16_MIN, INT16_MAX, | 
|  | Attributes::ActivePowerMaxPhaseB::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<int16_t>>(Id, "reactive-power-phase-b", INT16_MIN, INT16_MAX, | 
|  | Attributes::ReactivePowerPhaseB::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "apparent-power-phase-b", 0, UINT16_MAX, Attributes::ApparentPowerPhaseB::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<int8_t>>(Id, "power-factor-phase-b", INT8_MIN, INT8_MAX, Attributes::PowerFactorPhaseB::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "average-rms-voltage-measurement-period-phase-b", 0, UINT16_MAX, | 
|  | Attributes::AverageRmsVoltageMeasurementPeriodPhaseB::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "average-rms-over-voltage-counter-phase-b", 0, UINT16_MAX, | 
|  | Attributes::AverageRmsOverVoltageCounterPhaseB::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "average-rms-under-voltage-counter-phase-b", 0, UINT16_MAX, | 
|  | Attributes::AverageRmsUnderVoltageCounterPhaseB::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "rms-extreme-over-voltage-period-phase-b", 0, UINT16_MAX, | 
|  | Attributes::RmsExtremeOverVoltagePeriodPhaseB::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "rms-extreme-under-voltage-period-phase-b", 0, UINT16_MAX, | 
|  | Attributes::RmsExtremeUnderVoltagePeriodPhaseB::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "rms-voltage-sag-period-phase-b", 0, UINT16_MAX, | 
|  | Attributes::RmsVoltageSagPeriodPhaseB::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "rms-voltage-swell-period-phase-b", 0, UINT16_MAX, | 
|  | Attributes::RmsVoltageSwellPeriodPhaseB::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "line-current-phase-c", 0, UINT16_MAX, Attributes::LineCurrentPhaseC::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<int16_t>>(Id, "active-current-phase-c", INT16_MIN, INT16_MAX, | 
|  | Attributes::ActiveCurrentPhaseC::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<int16_t>>(Id, "reactive-current-phase-c", INT16_MIN, INT16_MAX, | 
|  | Attributes::ReactiveCurrentPhaseC::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "rms-voltage-phase-c", 0, UINT16_MAX, Attributes::RmsVoltagePhaseC::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "rms-voltage-min-phase-c", 0, UINT16_MAX, Attributes::RmsVoltageMinPhaseC::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "rms-voltage-max-phase-c", 0, UINT16_MAX, Attributes::RmsVoltageMaxPhaseC::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "rms-current-phase-c", 0, UINT16_MAX, Attributes::RmsCurrentPhaseC::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "rms-current-min-phase-c", 0, UINT16_MAX, Attributes::RmsCurrentMinPhaseC::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "rms-current-max-phase-c", 0, UINT16_MAX, Attributes::RmsCurrentMaxPhaseC::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<int16_t>>(Id, "active-power-phase-c", INT16_MIN, INT16_MAX, Attributes::ActivePowerPhaseC::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<int16_t>>(Id, "active-power-min-phase-c", INT16_MIN, INT16_MAX, | 
|  | Attributes::ActivePowerMinPhaseC::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<int16_t>>(Id, "active-power-max-phase-c", INT16_MIN, INT16_MAX, | 
|  | Attributes::ActivePowerMaxPhaseC::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<int16_t>>(Id, "reactive-power-phase-c", INT16_MIN, INT16_MAX, | 
|  | Attributes::ReactivePowerPhaseC::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "apparent-power-phase-c", 0, UINT16_MAX, Attributes::ApparentPowerPhaseC::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<int8_t>>(Id, "power-factor-phase-c", INT8_MIN, INT8_MAX, Attributes::PowerFactorPhaseC::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "average-rms-voltage-measurement-period-phase-c", 0, UINT16_MAX, | 
|  | Attributes::AverageRmsVoltageMeasurementPeriodPhaseC::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "average-rms-over-voltage-counter-phase-c", 0, UINT16_MAX, | 
|  | Attributes::AverageRmsOverVoltageCounterPhaseC::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "average-rms-under-voltage-counter-phase-c", 0, UINT16_MAX, | 
|  | Attributes::AverageRmsUnderVoltageCounterPhaseC::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "rms-extreme-over-voltage-period-phase-c", 0, UINT16_MAX, | 
|  | Attributes::RmsExtremeOverVoltagePeriodPhaseC::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "rms-extreme-under-voltage-period-phase-c", 0, UINT16_MAX, | 
|  | Attributes::RmsExtremeUnderVoltagePeriodPhaseC::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "rms-voltage-sag-period-phase-c", 0, UINT16_MAX, | 
|  | Attributes::RmsVoltageSagPeriodPhaseC::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "rms-voltage-swell-period-phase-c", 0, UINT16_MAX, | 
|  | Attributes::RmsVoltageSwellPeriodPhaseC::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>( | 
|  | Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>( | 
|  | Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig),                              // | 
|  | make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                               // | 
|  | make_unique<SubscribeAttribute>(Id, "measurement-type", Attributes::MeasurementType::Id, credsIssuerConfig),          // | 
|  | make_unique<SubscribeAttribute>(Id, "dc-voltage", Attributes::DcVoltage::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "dc-voltage-min", Attributes::DcVoltageMin::Id, credsIssuerConfig),               // | 
|  | make_unique<SubscribeAttribute>(Id, "dc-voltage-max", Attributes::DcVoltageMax::Id, credsIssuerConfig),               // | 
|  | make_unique<SubscribeAttribute>(Id, "dc-current", Attributes::DcCurrent::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "dc-current-min", Attributes::DcCurrentMin::Id, credsIssuerConfig),               // | 
|  | make_unique<SubscribeAttribute>(Id, "dc-current-max", Attributes::DcCurrentMax::Id, credsIssuerConfig),               // | 
|  | make_unique<SubscribeAttribute>(Id, "dc-power", Attributes::DcPower::Id, credsIssuerConfig),                          // | 
|  | make_unique<SubscribeAttribute>(Id, "dc-power-min", Attributes::DcPowerMin::Id, credsIssuerConfig),                   // | 
|  | make_unique<SubscribeAttribute>(Id, "dc-power-max", Attributes::DcPowerMax::Id, credsIssuerConfig),                   // | 
|  | make_unique<SubscribeAttribute>(Id, "dc-voltage-multiplier", Attributes::DcVoltageMultiplier::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "dc-voltage-divisor", Attributes::DcVoltageDivisor::Id, credsIssuerConfig),       // | 
|  | make_unique<SubscribeAttribute>(Id, "dc-current-multiplier", Attributes::DcCurrentMultiplier::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "dc-current-divisor", Attributes::DcCurrentDivisor::Id, credsIssuerConfig),       // | 
|  | make_unique<SubscribeAttribute>(Id, "dc-power-multiplier", Attributes::DcPowerMultiplier::Id, credsIssuerConfig),     // | 
|  | make_unique<SubscribeAttribute>(Id, "dc-power-divisor", Attributes::DcPowerDivisor::Id, credsIssuerConfig),           // | 
|  | make_unique<SubscribeAttribute>(Id, "ac-frequency", Attributes::AcFrequency::Id, credsIssuerConfig),                  // | 
|  | make_unique<SubscribeAttribute>(Id, "ac-frequency-min", Attributes::AcFrequencyMin::Id, credsIssuerConfig),           // | 
|  | make_unique<SubscribeAttribute>(Id, "ac-frequency-max", Attributes::AcFrequencyMax::Id, credsIssuerConfig),           // | 
|  | make_unique<SubscribeAttribute>(Id, "neutral-current", Attributes::NeutralCurrent::Id, credsIssuerConfig),            // | 
|  | make_unique<SubscribeAttribute>(Id, "total-active-power", Attributes::TotalActivePower::Id, credsIssuerConfig),       // | 
|  | make_unique<SubscribeAttribute>(Id, "total-reactive-power", Attributes::TotalReactivePower::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "total-apparent-power", Attributes::TotalApparentPower::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "measured1st-harmonic-current", Attributes::Measured1stHarmonicCurrent::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "measured3rd-harmonic-current", Attributes::Measured3rdHarmonicCurrent::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "measured5th-harmonic-current", Attributes::Measured5thHarmonicCurrent::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "measured7th-harmonic-current", Attributes::Measured7thHarmonicCurrent::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "measured9th-harmonic-current", Attributes::Measured9thHarmonicCurrent::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "measured11th-harmonic-current", Attributes::Measured11thHarmonicCurrent::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "measured-phase1st-harmonic-current", Attributes::MeasuredPhase1stHarmonicCurrent::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "measured-phase3rd-harmonic-current", Attributes::MeasuredPhase3rdHarmonicCurrent::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "measured-phase5th-harmonic-current", Attributes::MeasuredPhase5thHarmonicCurrent::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "measured-phase7th-harmonic-current", Attributes::MeasuredPhase7thHarmonicCurrent::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "measured-phase9th-harmonic-current", Attributes::MeasuredPhase9thHarmonicCurrent::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "measured-phase11th-harmonic-current", Attributes::MeasuredPhase11thHarmonicCurrent::Id, | 
|  | credsIssuerConfig),                                                                       // | 
|  | make_unique<SubscribeAttribute>(Id, "ac-frequency-multiplier", Attributes::AcFrequencyMultiplier::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "ac-frequency-divisor", Attributes::AcFrequencyDivisor::Id, credsIssuerConfig),       // | 
|  | make_unique<SubscribeAttribute>(Id, "power-multiplier", Attributes::PowerMultiplier::Id, credsIssuerConfig),              // | 
|  | make_unique<SubscribeAttribute>(Id, "power-divisor", Attributes::PowerDivisor::Id, credsIssuerConfig),                    // | 
|  | make_unique<SubscribeAttribute>(Id, "harmonic-current-multiplier", Attributes::HarmonicCurrentMultiplier::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "phase-harmonic-current-multiplier", Attributes::PhaseHarmonicCurrentMultiplier::Id, | 
|  | credsIssuerConfig),                                                                    // | 
|  | make_unique<SubscribeAttribute>(Id, "instantaneous-voltage", Attributes::InstantaneousVoltage::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "instantaneous-line-current", Attributes::InstantaneousLineCurrent::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "instantaneous-active-current", Attributes::InstantaneousActiveCurrent::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "instantaneous-reactive-current", Attributes::InstantaneousReactiveCurrent::Id, | 
|  | credsIssuerConfig),                                                                // | 
|  | make_unique<SubscribeAttribute>(Id, "instantaneous-power", Attributes::InstantaneousPower::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "rms-voltage", Attributes::RmsVoltage::Id, credsIssuerConfig),                 // | 
|  | make_unique<SubscribeAttribute>(Id, "rms-voltage-min", Attributes::RmsVoltageMin::Id, credsIssuerConfig),          // | 
|  | make_unique<SubscribeAttribute>(Id, "rms-voltage-max", Attributes::RmsVoltageMax::Id, credsIssuerConfig),          // | 
|  | make_unique<SubscribeAttribute>(Id, "rms-current", Attributes::RmsCurrent::Id, credsIssuerConfig),                 // | 
|  | make_unique<SubscribeAttribute>(Id, "rms-current-min", Attributes::RmsCurrentMin::Id, credsIssuerConfig),          // | 
|  | make_unique<SubscribeAttribute>(Id, "rms-current-max", Attributes::RmsCurrentMax::Id, credsIssuerConfig),          // | 
|  | make_unique<SubscribeAttribute>(Id, "active-power", Attributes::ActivePower::Id, credsIssuerConfig),               // | 
|  | make_unique<SubscribeAttribute>(Id, "active-power-min", Attributes::ActivePowerMin::Id, credsIssuerConfig),        // | 
|  | make_unique<SubscribeAttribute>(Id, "active-power-max", Attributes::ActivePowerMax::Id, credsIssuerConfig),        // | 
|  | make_unique<SubscribeAttribute>(Id, "reactive-power", Attributes::ReactivePower::Id, credsIssuerConfig),           // | 
|  | make_unique<SubscribeAttribute>(Id, "apparent-power", Attributes::ApparentPower::Id, credsIssuerConfig),           // | 
|  | make_unique<SubscribeAttribute>(Id, "power-factor", Attributes::PowerFactor::Id, credsIssuerConfig),               // | 
|  | make_unique<SubscribeAttribute>(Id, "average-rms-voltage-measurement-period", | 
|  | Attributes::AverageRmsVoltageMeasurementPeriod::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "average-rms-under-voltage-counter", Attributes::AverageRmsUnderVoltageCounter::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "rms-extreme-over-voltage-period", Attributes::RmsExtremeOverVoltagePeriod::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "rms-extreme-under-voltage-period", Attributes::RmsExtremeUnderVoltagePeriod::Id, | 
|  | credsIssuerConfig),                                                                    // | 
|  | make_unique<SubscribeAttribute>(Id, "rms-voltage-sag-period", Attributes::RmsVoltageSagPeriod::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "rms-voltage-swell-period", Attributes::RmsVoltageSwellPeriod::Id, | 
|  | credsIssuerConfig),                                                                      // | 
|  | make_unique<SubscribeAttribute>(Id, "ac-voltage-multiplier", Attributes::AcVoltageMultiplier::Id, credsIssuerConfig),    // | 
|  | make_unique<SubscribeAttribute>(Id, "ac-voltage-divisor", Attributes::AcVoltageDivisor::Id, credsIssuerConfig),          // | 
|  | make_unique<SubscribeAttribute>(Id, "ac-current-multiplier", Attributes::AcCurrentMultiplier::Id, credsIssuerConfig),    // | 
|  | make_unique<SubscribeAttribute>(Id, "ac-current-divisor", Attributes::AcCurrentDivisor::Id, credsIssuerConfig),          // | 
|  | make_unique<SubscribeAttribute>(Id, "ac-power-multiplier", Attributes::AcPowerMultiplier::Id, credsIssuerConfig),        // | 
|  | make_unique<SubscribeAttribute>(Id, "ac-power-divisor", Attributes::AcPowerDivisor::Id, credsIssuerConfig),              // | 
|  | make_unique<SubscribeAttribute>(Id, "overload-alarms-mask", Attributes::OverloadAlarmsMask::Id, credsIssuerConfig),      // | 
|  | make_unique<SubscribeAttribute>(Id, "voltage-overload", Attributes::VoltageOverload::Id, credsIssuerConfig),             // | 
|  | make_unique<SubscribeAttribute>(Id, "current-overload", Attributes::CurrentOverload::Id, credsIssuerConfig),             // | 
|  | make_unique<SubscribeAttribute>(Id, "ac-overload-alarms-mask", Attributes::AcOverloadAlarmsMask::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "ac-voltage-overload", Attributes::AcVoltageOverload::Id, credsIssuerConfig),        // | 
|  | make_unique<SubscribeAttribute>(Id, "ac-current-overload", Attributes::AcCurrentOverload::Id, credsIssuerConfig),        // | 
|  | make_unique<SubscribeAttribute>(Id, "ac-active-power-overload", Attributes::AcActivePowerOverload::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "ac-reactive-power-overload", Attributes::AcReactivePowerOverload::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "average-rms-over-voltage", Attributes::AverageRmsOverVoltage::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "average-rms-under-voltage", Attributes::AverageRmsUnderVoltage::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "rms-extreme-over-voltage", Attributes::RmsExtremeOverVoltage::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "rms-extreme-under-voltage", Attributes::RmsExtremeUnderVoltage::Id, | 
|  | credsIssuerConfig),                                                                    // | 
|  | make_unique<SubscribeAttribute>(Id, "rms-voltage-sag", Attributes::RmsVoltageSag::Id, credsIssuerConfig),              // | 
|  | make_unique<SubscribeAttribute>(Id, "rms-voltage-swell", Attributes::RmsVoltageSwell::Id, credsIssuerConfig),          // | 
|  | make_unique<SubscribeAttribute>(Id, "line-current-phase-b", Attributes::LineCurrentPhaseB::Id, credsIssuerConfig),     // | 
|  | make_unique<SubscribeAttribute>(Id, "active-current-phase-b", Attributes::ActiveCurrentPhaseB::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "reactive-current-phase-b", Attributes::ReactiveCurrentPhaseB::Id, | 
|  | credsIssuerConfig),                                                                       // | 
|  | make_unique<SubscribeAttribute>(Id, "rms-voltage-phase-b", Attributes::RmsVoltagePhaseB::Id, credsIssuerConfig),          // | 
|  | make_unique<SubscribeAttribute>(Id, "rms-voltage-min-phase-b", Attributes::RmsVoltageMinPhaseB::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "rms-voltage-max-phase-b", Attributes::RmsVoltageMaxPhaseB::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "rms-current-phase-b", Attributes::RmsCurrentPhaseB::Id, credsIssuerConfig),          // | 
|  | make_unique<SubscribeAttribute>(Id, "rms-current-min-phase-b", Attributes::RmsCurrentMinPhaseB::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "rms-current-max-phase-b", Attributes::RmsCurrentMaxPhaseB::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "active-power-phase-b", Attributes::ActivePowerPhaseB::Id, credsIssuerConfig),        // | 
|  | make_unique<SubscribeAttribute>(Id, "active-power-min-phase-b", Attributes::ActivePowerMinPhaseB::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "active-power-max-phase-b", Attributes::ActivePowerMaxPhaseB::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "reactive-power-phase-b", Attributes::ReactivePowerPhaseB::Id, credsIssuerConfig),    // | 
|  | make_unique<SubscribeAttribute>(Id, "apparent-power-phase-b", Attributes::ApparentPowerPhaseB::Id, credsIssuerConfig),    // | 
|  | make_unique<SubscribeAttribute>(Id, "power-factor-phase-b", Attributes::PowerFactorPhaseB::Id, credsIssuerConfig),        // | 
|  | make_unique<SubscribeAttribute>(Id, "average-rms-voltage-measurement-period-phase-b", | 
|  | Attributes::AverageRmsVoltageMeasurementPeriodPhaseB::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "average-rms-over-voltage-counter-phase-b", | 
|  | Attributes::AverageRmsOverVoltageCounterPhaseB::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "average-rms-under-voltage-counter-phase-b", | 
|  | Attributes::AverageRmsUnderVoltageCounterPhaseB::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "rms-extreme-over-voltage-period-phase-b", | 
|  | Attributes::RmsExtremeOverVoltagePeriodPhaseB::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "rms-extreme-under-voltage-period-phase-b", | 
|  | Attributes::RmsExtremeUnderVoltagePeriodPhaseB::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "rms-voltage-sag-period-phase-b", Attributes::RmsVoltageSagPeriodPhaseB::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "rms-voltage-swell-period-phase-b", Attributes::RmsVoltageSwellPeriodPhaseB::Id, | 
|  | credsIssuerConfig),                                                                    // | 
|  | make_unique<SubscribeAttribute>(Id, "line-current-phase-c", Attributes::LineCurrentPhaseC::Id, credsIssuerConfig),     // | 
|  | make_unique<SubscribeAttribute>(Id, "active-current-phase-c", Attributes::ActiveCurrentPhaseC::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "reactive-current-phase-c", Attributes::ReactiveCurrentPhaseC::Id, | 
|  | credsIssuerConfig),                                                                       // | 
|  | make_unique<SubscribeAttribute>(Id, "rms-voltage-phase-c", Attributes::RmsVoltagePhaseC::Id, credsIssuerConfig),          // | 
|  | make_unique<SubscribeAttribute>(Id, "rms-voltage-min-phase-c", Attributes::RmsVoltageMinPhaseC::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "rms-voltage-max-phase-c", Attributes::RmsVoltageMaxPhaseC::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "rms-current-phase-c", Attributes::RmsCurrentPhaseC::Id, credsIssuerConfig),          // | 
|  | make_unique<SubscribeAttribute>(Id, "rms-current-min-phase-c", Attributes::RmsCurrentMinPhaseC::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "rms-current-max-phase-c", Attributes::RmsCurrentMaxPhaseC::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "active-power-phase-c", Attributes::ActivePowerPhaseC::Id, credsIssuerConfig),        // | 
|  | make_unique<SubscribeAttribute>(Id, "active-power-min-phase-c", Attributes::ActivePowerMinPhaseC::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "active-power-max-phase-c", Attributes::ActivePowerMaxPhaseC::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "reactive-power-phase-c", Attributes::ReactivePowerPhaseC::Id, credsIssuerConfig),    // | 
|  | make_unique<SubscribeAttribute>(Id, "apparent-power-phase-c", Attributes::ApparentPowerPhaseC::Id, credsIssuerConfig),    // | 
|  | make_unique<SubscribeAttribute>(Id, "power-factor-phase-c", Attributes::PowerFactorPhaseC::Id, credsIssuerConfig),        // | 
|  | make_unique<SubscribeAttribute>(Id, "average-rms-voltage-measurement-period-phase-c", | 
|  | Attributes::AverageRmsVoltageMeasurementPeriodPhaseC::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "average-rms-over-voltage-counter-phase-c", | 
|  | Attributes::AverageRmsOverVoltageCounterPhaseC::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "average-rms-under-voltage-counter-phase-c", | 
|  | Attributes::AverageRmsUnderVoltageCounterPhaseC::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "rms-extreme-over-voltage-period-phase-c", | 
|  | Attributes::RmsExtremeOverVoltagePeriodPhaseC::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "rms-extreme-under-voltage-period-phase-c", | 
|  | Attributes::RmsExtremeUnderVoltagePeriodPhaseC::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "rms-voltage-sag-period-phase-c", Attributes::RmsVoltageSagPeriodPhaseC::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "rms-voltage-swell-period-phase-c", Attributes::RmsVoltageSwellPeriodPhaseC::Id, | 
|  | credsIssuerConfig),                                                                     // | 
|  | make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | // | 
|  | // Events | 
|  | // | 
|  | make_unique<ReadEvent>(Id, credsIssuerConfig),      // | 
|  | make_unique<SubscribeEvent>(Id, credsIssuerConfig), // | 
|  | }; | 
|  |  | 
|  | commands.Register(clusterName, clusterCommands); | 
|  | } | 
|  | void registerClusterClientMonitoring(Commands & commands, CredentialIssuerCommands * credsIssuerConfig) | 
|  | { | 
|  | using namespace chip::app::Clusters::ClientMonitoring; | 
|  |  | 
|  | const char * clusterName = "ClientMonitoring"; | 
|  |  | 
|  | commands_list clusterCommands = { | 
|  | // | 
|  | // Commands | 
|  | // | 
|  | make_unique<ClusterCommand>(Id, credsIssuerConfig),                         // | 
|  | make_unique<ClientMonitoringRegisterClientMonitoring>(credsIssuerConfig),   // | 
|  | make_unique<ClientMonitoringUnregisterClientMonitoring>(credsIssuerConfig), // | 
|  | make_unique<ClientMonitoringStayAwakeRequest>(credsIssuerConfig),           // | 
|  | // | 
|  | // Attributes | 
|  | // | 
|  | make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<ReadAttribute>(Id, "idle-mode-interval", Attributes::IdleModeInterval::Id, credsIssuerConfig),         // | 
|  | make_unique<ReadAttribute>(Id, "active-mode-interval", Attributes::ActiveModeInterval::Id, credsIssuerConfig),     // | 
|  | make_unique<ReadAttribute>(Id, "active-mode-threshold", Attributes::ActiveModeThreshold::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "expected-clients", Attributes::ExpectedClients::Id, credsIssuerConfig),            // | 
|  | make_unique<ReadAttribute>(Id, "icdcounter", Attributes::ICDCounter::Id, credsIssuerConfig),                       // | 
|  | make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "idle-mode-interval", 0, UINT32_MAX, Attributes::IdleModeInterval::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "active-mode-interval", 0, UINT32_MAX, Attributes::ActiveModeInterval::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "active-mode-threshold", 0, UINT16_MAX, Attributes::ActiveModeThreshold::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex< | 
|  | chip::app::DataModel::List<const chip::app::Clusters::ClientMonitoring::Structs::MonitoringRegistrationStruct::Type>>>( | 
|  | Id, "expected-clients", Attributes::ExpectedClients::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "icdcounter", 0, UINT32_MAX, Attributes::ICDCounter::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>( | 
|  | Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>( | 
|  | Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig),                                // | 
|  | make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<SubscribeAttribute>(Id, "idle-mode-interval", Attributes::IdleModeInterval::Id, credsIssuerConfig),         // | 
|  | make_unique<SubscribeAttribute>(Id, "active-mode-interval", Attributes::ActiveModeInterval::Id, credsIssuerConfig),     // | 
|  | make_unique<SubscribeAttribute>(Id, "active-mode-threshold", Attributes::ActiveModeThreshold::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "expected-clients", Attributes::ExpectedClients::Id, credsIssuerConfig),            // | 
|  | make_unique<SubscribeAttribute>(Id, "icdcounter", Attributes::ICDCounter::Id, credsIssuerConfig),                       // | 
|  | make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | // | 
|  | // Events | 
|  | // | 
|  | make_unique<ReadEvent>(Id, credsIssuerConfig),      // | 
|  | make_unique<SubscribeEvent>(Id, credsIssuerConfig), // | 
|  | }; | 
|  |  | 
|  | commands.Register(clusterName, clusterCommands); | 
|  | } | 
|  | void registerClusterUnitTesting(Commands & commands, CredentialIssuerCommands * credsIssuerConfig) | 
|  | { | 
|  | using namespace chip::app::Clusters::UnitTesting; | 
|  |  | 
|  | const char * clusterName = "UnitTesting"; | 
|  |  | 
|  | commands_list clusterCommands = { | 
|  | // | 
|  | // Commands | 
|  | // | 
|  | make_unique<ClusterCommand>(Id, credsIssuerConfig),                                 // | 
|  | make_unique<UnitTestingTest>(credsIssuerConfig),                                    // | 
|  | make_unique<UnitTestingTestNotHandled>(credsIssuerConfig),                          // | 
|  | make_unique<UnitTestingTestSpecific>(credsIssuerConfig),                            // | 
|  | make_unique<UnitTestingTestUnknownCommand>(credsIssuerConfig),                      // | 
|  | make_unique<UnitTestingTestAddArguments>(credsIssuerConfig),                        // | 
|  | make_unique<UnitTestingTestSimpleArgumentRequest>(credsIssuerConfig),               // | 
|  | make_unique<UnitTestingTestStructArrayArgumentRequest>(credsIssuerConfig),          // | 
|  | make_unique<UnitTestingTestStructArgumentRequest>(credsIssuerConfig),               // | 
|  | make_unique<UnitTestingTestNestedStructArgumentRequest>(credsIssuerConfig),         // | 
|  | make_unique<UnitTestingTestListStructArgumentRequest>(credsIssuerConfig),           // | 
|  | make_unique<UnitTestingTestListInt8UArgumentRequest>(credsIssuerConfig),            // | 
|  | make_unique<UnitTestingTestNestedStructListArgumentRequest>(credsIssuerConfig),     // | 
|  | make_unique<UnitTestingTestListNestedStructListArgumentRequest>(credsIssuerConfig), // | 
|  | make_unique<UnitTestingTestListInt8UReverseRequest>(credsIssuerConfig),             // | 
|  | make_unique<UnitTestingTestEnumsRequest>(credsIssuerConfig),                        // | 
|  | make_unique<UnitTestingTestNullableOptionalRequest>(credsIssuerConfig),             // | 
|  | make_unique<UnitTestingTestComplexNullableOptionalRequest>(credsIssuerConfig),      // | 
|  | make_unique<UnitTestingSimpleStructEchoRequest>(credsIssuerConfig),                 // | 
|  | make_unique<UnitTestingTimedInvokeRequest>(credsIssuerConfig),                      // | 
|  | make_unique<UnitTestingTestSimpleOptionalArgumentRequest>(credsIssuerConfig),       // | 
|  | make_unique<UnitTestingTestEmitTestEventRequest>(credsIssuerConfig),                // | 
|  | make_unique<UnitTestingTestEmitTestFabricScopedEventRequest>(credsIssuerConfig),    // | 
|  | // | 
|  | // Attributes | 
|  | // | 
|  | make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                    // | 
|  | make_unique<ReadAttribute>(Id, "boolean", Attributes::Boolean::Id, credsIssuerConfig),                                // | 
|  | make_unique<ReadAttribute>(Id, "bitmap8", Attributes::Bitmap8::Id, credsIssuerConfig),                                // | 
|  | make_unique<ReadAttribute>(Id, "bitmap16", Attributes::Bitmap16::Id, credsIssuerConfig),                              // | 
|  | make_unique<ReadAttribute>(Id, "bitmap32", Attributes::Bitmap32::Id, credsIssuerConfig),                              // | 
|  | make_unique<ReadAttribute>(Id, "bitmap64", Attributes::Bitmap64::Id, credsIssuerConfig),                              // | 
|  | make_unique<ReadAttribute>(Id, "int8u", Attributes::Int8u::Id, credsIssuerConfig),                                    // | 
|  | make_unique<ReadAttribute>(Id, "int16u", Attributes::Int16u::Id, credsIssuerConfig),                                  // | 
|  | make_unique<ReadAttribute>(Id, "int24u", Attributes::Int24u::Id, credsIssuerConfig),                                  // | 
|  | make_unique<ReadAttribute>(Id, "int32u", Attributes::Int32u::Id, credsIssuerConfig),                                  // | 
|  | make_unique<ReadAttribute>(Id, "int40u", Attributes::Int40u::Id, credsIssuerConfig),                                  // | 
|  | make_unique<ReadAttribute>(Id, "int48u", Attributes::Int48u::Id, credsIssuerConfig),                                  // | 
|  | make_unique<ReadAttribute>(Id, "int56u", Attributes::Int56u::Id, credsIssuerConfig),                                  // | 
|  | make_unique<ReadAttribute>(Id, "int64u", Attributes::Int64u::Id, credsIssuerConfig),                                  // | 
|  | make_unique<ReadAttribute>(Id, "int8s", Attributes::Int8s::Id, credsIssuerConfig),                                    // | 
|  | make_unique<ReadAttribute>(Id, "int16s", Attributes::Int16s::Id, credsIssuerConfig),                                  // | 
|  | make_unique<ReadAttribute>(Id, "int24s", Attributes::Int24s::Id, credsIssuerConfig),                                  // | 
|  | make_unique<ReadAttribute>(Id, "int32s", Attributes::Int32s::Id, credsIssuerConfig),                                  // | 
|  | make_unique<ReadAttribute>(Id, "int40s", Attributes::Int40s::Id, credsIssuerConfig),                                  // | 
|  | make_unique<ReadAttribute>(Id, "int48s", Attributes::Int48s::Id, credsIssuerConfig),                                  // | 
|  | make_unique<ReadAttribute>(Id, "int56s", Attributes::Int56s::Id, credsIssuerConfig),                                  // | 
|  | make_unique<ReadAttribute>(Id, "int64s", Attributes::Int64s::Id, credsIssuerConfig),                                  // | 
|  | make_unique<ReadAttribute>(Id, "enum8", Attributes::Enum8::Id, credsIssuerConfig),                                    // | 
|  | make_unique<ReadAttribute>(Id, "enum16", Attributes::Enum16::Id, credsIssuerConfig),                                  // | 
|  | make_unique<ReadAttribute>(Id, "float-single", Attributes::FloatSingle::Id, credsIssuerConfig),                       // | 
|  | make_unique<ReadAttribute>(Id, "float-double", Attributes::FloatDouble::Id, credsIssuerConfig),                       // | 
|  | make_unique<ReadAttribute>(Id, "octet-string", Attributes::OctetString::Id, credsIssuerConfig),                       // | 
|  | make_unique<ReadAttribute>(Id, "list-int8u", Attributes::ListInt8u::Id, credsIssuerConfig),                           // | 
|  | make_unique<ReadAttribute>(Id, "list-octet-string", Attributes::ListOctetString::Id, credsIssuerConfig),              // | 
|  | make_unique<ReadAttribute>(Id, "list-struct-octet-string", Attributes::ListStructOctetString::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "long-octet-string", Attributes::LongOctetString::Id, credsIssuerConfig),              // | 
|  | make_unique<ReadAttribute>(Id, "char-string", Attributes::CharString::Id, credsIssuerConfig),                         // | 
|  | make_unique<ReadAttribute>(Id, "long-char-string", Attributes::LongCharString::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "epoch-us", Attributes::EpochUs::Id, credsIssuerConfig),                               // | 
|  | make_unique<ReadAttribute>(Id, "epoch-s", Attributes::EpochS::Id, credsIssuerConfig),                                 // | 
|  | make_unique<ReadAttribute>(Id, "vendor-id", Attributes::VendorId::Id, credsIssuerConfig),                             // | 
|  | make_unique<ReadAttribute>(Id, "list-nullables-and-optionals-struct", Attributes::ListNullablesAndOptionalsStruct::Id, | 
|  | credsIssuerConfig),                                                                       // | 
|  | make_unique<ReadAttribute>(Id, "enum-attr", Attributes::EnumAttr::Id, credsIssuerConfig),                            // | 
|  | make_unique<ReadAttribute>(Id, "struct-attr", Attributes::StructAttr::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "range-restricted-int8u", Attributes::RangeRestrictedInt8u::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "range-restricted-int8s", Attributes::RangeRestrictedInt8s::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "range-restricted-int16u", Attributes::RangeRestrictedInt16u::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "range-restricted-int16s", Attributes::RangeRestrictedInt16s::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "list-long-octet-string", Attributes::ListLongOctetString::Id, credsIssuerConfig),    // | 
|  | make_unique<ReadAttribute>(Id, "list-fabric-scoped", Attributes::ListFabricScoped::Id, credsIssuerConfig),           // | 
|  | make_unique<ReadAttribute>(Id, "timed-write-boolean", Attributes::TimedWriteBoolean::Id, credsIssuerConfig),         // | 
|  | make_unique<ReadAttribute>(Id, "general-error-boolean", Attributes::GeneralErrorBoolean::Id, credsIssuerConfig),     // | 
|  | make_unique<ReadAttribute>(Id, "cluster-error-boolean", Attributes::ClusterErrorBoolean::Id, credsIssuerConfig),     // | 
|  | make_unique<ReadAttribute>(Id, "unsupported", Attributes::Unsupported::Id, credsIssuerConfig),                       // | 
|  | make_unique<ReadAttribute>(Id, "nullable-boolean", Attributes::NullableBoolean::Id, credsIssuerConfig),              // | 
|  | make_unique<ReadAttribute>(Id, "nullable-bitmap8", Attributes::NullableBitmap8::Id, credsIssuerConfig),              // | 
|  | make_unique<ReadAttribute>(Id, "nullable-bitmap16", Attributes::NullableBitmap16::Id, credsIssuerConfig),            // | 
|  | make_unique<ReadAttribute>(Id, "nullable-bitmap32", Attributes::NullableBitmap32::Id, credsIssuerConfig),            // | 
|  | make_unique<ReadAttribute>(Id, "nullable-bitmap64", Attributes::NullableBitmap64::Id, credsIssuerConfig),            // | 
|  | make_unique<ReadAttribute>(Id, "nullable-int8u", Attributes::NullableInt8u::Id, credsIssuerConfig),                  // | 
|  | make_unique<ReadAttribute>(Id, "nullable-int16u", Attributes::NullableInt16u::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "nullable-int24u", Attributes::NullableInt24u::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "nullable-int32u", Attributes::NullableInt32u::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "nullable-int40u", Attributes::NullableInt40u::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "nullable-int48u", Attributes::NullableInt48u::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "nullable-int56u", Attributes::NullableInt56u::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "nullable-int64u", Attributes::NullableInt64u::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "nullable-int8s", Attributes::NullableInt8s::Id, credsIssuerConfig),                  // | 
|  | make_unique<ReadAttribute>(Id, "nullable-int16s", Attributes::NullableInt16s::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "nullable-int24s", Attributes::NullableInt24s::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "nullable-int32s", Attributes::NullableInt32s::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "nullable-int40s", Attributes::NullableInt40s::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "nullable-int48s", Attributes::NullableInt48s::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "nullable-int56s", Attributes::NullableInt56s::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "nullable-int64s", Attributes::NullableInt64s::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "nullable-enum8", Attributes::NullableEnum8::Id, credsIssuerConfig),                  // | 
|  | make_unique<ReadAttribute>(Id, "nullable-enum16", Attributes::NullableEnum16::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "nullable-float-single", Attributes::NullableFloatSingle::Id, credsIssuerConfig),     // | 
|  | make_unique<ReadAttribute>(Id, "nullable-float-double", Attributes::NullableFloatDouble::Id, credsIssuerConfig),     // | 
|  | make_unique<ReadAttribute>(Id, "nullable-octet-string", Attributes::NullableOctetString::Id, credsIssuerConfig),     // | 
|  | make_unique<ReadAttribute>(Id, "nullable-char-string", Attributes::NullableCharString::Id, credsIssuerConfig),       // | 
|  | make_unique<ReadAttribute>(Id, "nullable-enum-attr", Attributes::NullableEnumAttr::Id, credsIssuerConfig),           // | 
|  | make_unique<ReadAttribute>(Id, "nullable-struct", Attributes::NullableStruct::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "nullable-range-restricted-int8u", Attributes::NullableRangeRestrictedInt8u::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "nullable-range-restricted-int8s", Attributes::NullableRangeRestrictedInt8s::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "nullable-range-restricted-int16u", Attributes::NullableRangeRestrictedInt16u::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "nullable-range-restricted-int16s", Attributes::NullableRangeRestrictedInt16s::Id, | 
|  | credsIssuerConfig),                                                                     // | 
|  | make_unique<ReadAttribute>(Id, "write-only-int8u", Attributes::WriteOnlyInt8u::Id, credsIssuerConfig),             // | 
|  | make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              // | 
|  | make_unique<WriteAttribute<bool>>(Id, "boolean", 0, 1, Attributes::Boolean::Id, WriteCommandType::kWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::BitMask<chip::app::Clusters::UnitTesting::Bitmap8MaskMap>>>( | 
|  | Id, "bitmap8", 0, UINT8_MAX, Attributes::Bitmap8::Id, WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::BitMask<chip::app::Clusters::UnitTesting::Bitmap16MaskMap>>>( | 
|  | Id, "bitmap16", 0, UINT16_MAX, Attributes::Bitmap16::Id, WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::BitMask<chip::app::Clusters::UnitTesting::Bitmap32MaskMap>>>( | 
|  | Id, "bitmap32", 0, UINT32_MAX, Attributes::Bitmap32::Id, WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::BitMask<chip::app::Clusters::UnitTesting::Bitmap64MaskMap>>>( | 
|  | Id, "bitmap64", 0, UINT64_MAX, Attributes::Bitmap64::Id, WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "int8u", 0, UINT8_MAX, Attributes::Int8u::Id, WriteCommandType::kWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "int16u", 0, UINT16_MAX, Attributes::Int16u::Id, WriteCommandType::kWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "int24u", 0, UINT32_MAX, Attributes::Int24u::Id, WriteCommandType::kWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "int32u", 0, UINT32_MAX, Attributes::Int32u::Id, WriteCommandType::kWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint64_t>>(Id, "int40u", 0, UINT64_MAX, Attributes::Int40u::Id, WriteCommandType::kWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint64_t>>(Id, "int48u", 0, UINT64_MAX, Attributes::Int48u::Id, WriteCommandType::kWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint64_t>>(Id, "int56u", 0, UINT64_MAX, Attributes::Int56u::Id, WriteCommandType::kWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint64_t>>(Id, "int64u", 0, UINT64_MAX, Attributes::Int64u::Id, WriteCommandType::kWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<int8_t>>(Id, "int8s", INT8_MIN, INT8_MAX, Attributes::Int8s::Id, WriteCommandType::kWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<int16_t>>(Id, "int16s", INT16_MIN, INT16_MAX, Attributes::Int16s::Id, WriteCommandType::kWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<int32_t>>(Id, "int24s", INT32_MIN, INT32_MAX, Attributes::Int24s::Id, WriteCommandType::kWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<int32_t>>(Id, "int32s", INT32_MIN, INT32_MAX, Attributes::Int32s::Id, WriteCommandType::kWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<int64_t>>(Id, "int40s", INT64_MIN, INT64_MAX, Attributes::Int40s::Id, WriteCommandType::kWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<int64_t>>(Id, "int48s", INT64_MIN, INT64_MAX, Attributes::Int48s::Id, WriteCommandType::kWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<int64_t>>(Id, "int56s", INT64_MIN, INT64_MAX, Attributes::Int56s::Id, WriteCommandType::kWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<int64_t>>(Id, "int64s", INT64_MIN, INT64_MAX, Attributes::Int64s::Id, WriteCommandType::kWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "enum8", 0, UINT8_MAX, Attributes::Enum8::Id, WriteCommandType::kWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "enum16", 0, UINT16_MAX, Attributes::Enum16::Id, WriteCommandType::kWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<float>>(Id, "float-single", -std::numeric_limits<float>::infinity(), | 
|  | std::numeric_limits<float>::infinity(), Attributes::FloatSingle::Id, | 
|  | WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<double>>(Id, "float-double", -std::numeric_limits<double>::infinity(), | 
|  | std::numeric_limits<double>::infinity(), Attributes::FloatDouble::Id, | 
|  | WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::ByteSpan>>(Id, "octet-string", Attributes::OctetString::Id, WriteCommandType::kWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const uint8_t>>>( | 
|  | Id, "list-int8u", Attributes::ListInt8u::Id, WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::ByteSpan>>>( | 
|  | Id, "list-octet-string", Attributes::ListOctetString::Id, WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex< | 
|  | chip::app::DataModel::List<const chip::app::Clusters::UnitTesting::Structs::TestListStructOctet::Type>>>( | 
|  | Id, "list-struct-octet-string", Attributes::ListStructOctetString::Id, WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::ByteSpan>>(Id, "long-octet-string", Attributes::LongOctetString::Id, | 
|  | WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::CharSpan>>(Id, "char-string", Attributes::CharString::Id, WriteCommandType::kWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::CharSpan>>(Id, "long-char-string", Attributes::LongCharString::Id, | 
|  | WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint64_t>>(Id, "epoch-us", 0, UINT64_MAX, Attributes::EpochUs::Id, WriteCommandType::kWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "epoch-s", 0, UINT32_MAX, Attributes::EpochS::Id, WriteCommandType::kWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::VendorId>>(Id, "vendor-id", 0, UINT16_MAX, Attributes::VendorId::Id, | 
|  | WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex< | 
|  | chip::app::DataModel::List<const chip::app::Clusters::UnitTesting::Structs::NullablesAndOptionalsStruct::Type>>>( | 
|  | Id, "list-nullables-and-optionals-struct", Attributes::ListNullablesAndOptionalsStruct::Id, WriteCommandType::kWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::Clusters::UnitTesting::SimpleEnum>>( | 
|  | Id, "enum-attr", 0, UINT8_MAX, Attributes::EnumAttr::Id, WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::Clusters::UnitTesting::Structs::SimpleStruct::Type>>( | 
|  | Id, "struct-attr", Attributes::StructAttr::Id, WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "range-restricted-int8u", 0, UINT8_MAX, Attributes::RangeRestrictedInt8u::Id, | 
|  | WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<int8_t>>(Id, "range-restricted-int8s", INT8_MIN, INT8_MAX, Attributes::RangeRestrictedInt8s::Id, | 
|  | WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "range-restricted-int16u", 0, UINT16_MAX, Attributes::RangeRestrictedInt16u::Id, | 
|  | WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<int16_t>>(Id, "range-restricted-int16s", INT16_MIN, INT16_MAX, | 
|  | Attributes::RangeRestrictedInt16s::Id, WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::ByteSpan>>>( | 
|  | Id, "list-long-octet-string", Attributes::ListLongOctetString::Id, WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex< | 
|  | chip::app::DataModel::List<const chip::app::Clusters::UnitTesting::Structs::TestFabricScoped::Type>>>( | 
|  | Id, "list-fabric-scoped", Attributes::ListFabricScoped::Id, WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<bool>>(Id, "timed-write-boolean", 0, 1, Attributes::TimedWriteBoolean::Id, | 
|  | WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<bool>>(Id, "general-error-boolean", 0, 1, Attributes::GeneralErrorBoolean::Id, | 
|  | WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<bool>>(Id, "cluster-error-boolean", 0, 1, Attributes::ClusterErrorBoolean::Id, | 
|  | WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<bool>>(Id, "unsupported", 0, 1, Attributes::Unsupported::Id, WriteCommandType::kWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<bool>>>( | 
|  | Id, "nullable-boolean", 0, 1, Attributes::NullableBoolean::Id, WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique< | 
|  | WriteAttribute<chip::app::DataModel::Nullable<chip::BitMask<chip::app::Clusters::UnitTesting::Bitmap8MaskMap>>>>( | 
|  | Id, "nullable-bitmap8", 0, UINT8_MAX, Attributes::NullableBitmap8::Id, WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique< | 
|  | WriteAttribute<chip::app::DataModel::Nullable<chip::BitMask<chip::app::Clusters::UnitTesting::Bitmap16MaskMap>>>>( | 
|  | Id, "nullable-bitmap16", 0, UINT16_MAX, Attributes::NullableBitmap16::Id, WriteCommandType::kWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique< | 
|  | WriteAttribute<chip::app::DataModel::Nullable<chip::BitMask<chip::app::Clusters::UnitTesting::Bitmap32MaskMap>>>>( | 
|  | Id, "nullable-bitmap32", 0, UINT32_MAX, Attributes::NullableBitmap32::Id, WriteCommandType::kWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique< | 
|  | WriteAttribute<chip::app::DataModel::Nullable<chip::BitMask<chip::app::Clusters::UnitTesting::Bitmap64MaskMap>>>>( | 
|  | Id, "nullable-bitmap64", 0, UINT64_MAX, Attributes::NullableBitmap64::Id, WriteCommandType::kWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint8_t>>>( | 
|  | Id, "nullable-int8u", 0, UINT8_MAX, Attributes::NullableInt8u::Id, WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint16_t>>>( | 
|  | Id, "nullable-int16u", 0, UINT16_MAX, Attributes::NullableInt16u::Id, WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint32_t>>>( | 
|  | Id, "nullable-int24u", 0, UINT32_MAX, Attributes::NullableInt24u::Id, WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint32_t>>>( | 
|  | Id, "nullable-int32u", 0, UINT32_MAX, Attributes::NullableInt32u::Id, WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint64_t>>>( | 
|  | Id, "nullable-int40u", 0, UINT64_MAX, Attributes::NullableInt40u::Id, WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint64_t>>>( | 
|  | Id, "nullable-int48u", 0, UINT64_MAX, Attributes::NullableInt48u::Id, WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint64_t>>>( | 
|  | Id, "nullable-int56u", 0, UINT64_MAX, Attributes::NullableInt56u::Id, WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint64_t>>>( | 
|  | Id, "nullable-int64u", 0, UINT64_MAX, Attributes::NullableInt64u::Id, WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<int8_t>>>(Id, "nullable-int8s", INT8_MIN, INT8_MAX, | 
|  | Attributes::NullableInt8s::Id, WriteCommandType::kWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<int16_t>>>(Id, "nullable-int16s", INT16_MIN, INT16_MAX, | 
|  | Attributes::NullableInt16s::Id, | 
|  | WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<int32_t>>>(Id, "nullable-int24s", INT32_MIN, INT32_MAX, | 
|  | Attributes::NullableInt24s::Id, | 
|  | WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<int32_t>>>(Id, "nullable-int32s", INT32_MIN, INT32_MAX, | 
|  | Attributes::NullableInt32s::Id, | 
|  | WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<int64_t>>>(Id, "nullable-int40s", INT64_MIN, INT64_MAX, | 
|  | Attributes::NullableInt40s::Id, | 
|  | WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<int64_t>>>(Id, "nullable-int48s", INT64_MIN, INT64_MAX, | 
|  | Attributes::NullableInt48s::Id, | 
|  | WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<int64_t>>>(Id, "nullable-int56s", INT64_MIN, INT64_MAX, | 
|  | Attributes::NullableInt56s::Id, | 
|  | WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<int64_t>>>(Id, "nullable-int64s", INT64_MIN, INT64_MAX, | 
|  | Attributes::NullableInt64s::Id, | 
|  | WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint8_t>>>( | 
|  | Id, "nullable-enum8", 0, UINT8_MAX, Attributes::NullableEnum8::Id, WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint16_t>>>( | 
|  | Id, "nullable-enum16", 0, UINT16_MAX, Attributes::NullableEnum16::Id, WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<float>>>( | 
|  | Id, "nullable-float-single", -std::numeric_limits<float>::infinity(), std::numeric_limits<float>::infinity(), | 
|  | Attributes::NullableFloatSingle::Id, WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<double>>>( | 
|  | Id, "nullable-float-double", -std::numeric_limits<double>::infinity(), std::numeric_limits<double>::infinity(), | 
|  | Attributes::NullableFloatDouble::Id, WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<chip::ByteSpan>>>( | 
|  | Id, "nullable-octet-string", Attributes::NullableOctetString::Id, WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<chip::CharSpan>>>( | 
|  | Id, "nullable-char-string", Attributes::NullableCharString::Id, WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<chip::app::Clusters::UnitTesting::SimpleEnum>>>( | 
|  | Id, "nullable-enum-attr", 0, UINT8_MAX, Attributes::NullableEnumAttr::Id, WriteCommandType::kWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique< | 
|  | WriteAttributeAsComplex<chip::app::DataModel::Nullable<chip::app::Clusters::UnitTesting::Structs::SimpleStruct::Type>>>( | 
|  | Id, "nullable-struct", Attributes::NullableStruct::Id, WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint8_t>>>(Id, "nullable-range-restricted-int8u", 0, UINT8_MAX, | 
|  | Attributes::NullableRangeRestrictedInt8u::Id, | 
|  | WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<int8_t>>>(Id, "nullable-range-restricted-int8s", INT8_MIN, | 
|  | INT8_MAX, Attributes::NullableRangeRestrictedInt8s::Id, | 
|  | WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint16_t>>>(Id, "nullable-range-restricted-int16u", 0, UINT16_MAX, | 
|  | Attributes::NullableRangeRestrictedInt16u::Id, | 
|  | WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<chip::app::DataModel::Nullable<int16_t>>>( | 
|  | Id, "nullable-range-restricted-int16s", INT16_MIN, INT16_MAX, Attributes::NullableRangeRestrictedInt16s::Id, | 
|  | WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint8_t>>(Id, "write-only-int8u", 0, UINT8_MAX, Attributes::WriteOnlyInt8u::Id, | 
|  | WriteCommandType::kWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>( | 
|  | Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>( | 
|  | Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                       // | 
|  | make_unique<SubscribeAttribute>(Id, "boolean", Attributes::Boolean::Id, credsIssuerConfig),                   // | 
|  | make_unique<SubscribeAttribute>(Id, "bitmap8", Attributes::Bitmap8::Id, credsIssuerConfig),                   // | 
|  | make_unique<SubscribeAttribute>(Id, "bitmap16", Attributes::Bitmap16::Id, credsIssuerConfig),                 // | 
|  | make_unique<SubscribeAttribute>(Id, "bitmap32", Attributes::Bitmap32::Id, credsIssuerConfig),                 // | 
|  | make_unique<SubscribeAttribute>(Id, "bitmap64", Attributes::Bitmap64::Id, credsIssuerConfig),                 // | 
|  | make_unique<SubscribeAttribute>(Id, "int8u", Attributes::Int8u::Id, credsIssuerConfig),                       // | 
|  | make_unique<SubscribeAttribute>(Id, "int16u", Attributes::Int16u::Id, credsIssuerConfig),                     // | 
|  | make_unique<SubscribeAttribute>(Id, "int24u", Attributes::Int24u::Id, credsIssuerConfig),                     // | 
|  | make_unique<SubscribeAttribute>(Id, "int32u", Attributes::Int32u::Id, credsIssuerConfig),                     // | 
|  | make_unique<SubscribeAttribute>(Id, "int40u", Attributes::Int40u::Id, credsIssuerConfig),                     // | 
|  | make_unique<SubscribeAttribute>(Id, "int48u", Attributes::Int48u::Id, credsIssuerConfig),                     // | 
|  | make_unique<SubscribeAttribute>(Id, "int56u", Attributes::Int56u::Id, credsIssuerConfig),                     // | 
|  | make_unique<SubscribeAttribute>(Id, "int64u", Attributes::Int64u::Id, credsIssuerConfig),                     // | 
|  | make_unique<SubscribeAttribute>(Id, "int8s", Attributes::Int8s::Id, credsIssuerConfig),                       // | 
|  | make_unique<SubscribeAttribute>(Id, "int16s", Attributes::Int16s::Id, credsIssuerConfig),                     // | 
|  | make_unique<SubscribeAttribute>(Id, "int24s", Attributes::Int24s::Id, credsIssuerConfig),                     // | 
|  | make_unique<SubscribeAttribute>(Id, "int32s", Attributes::Int32s::Id, credsIssuerConfig),                     // | 
|  | make_unique<SubscribeAttribute>(Id, "int40s", Attributes::Int40s::Id, credsIssuerConfig),                     // | 
|  | make_unique<SubscribeAttribute>(Id, "int48s", Attributes::Int48s::Id, credsIssuerConfig),                     // | 
|  | make_unique<SubscribeAttribute>(Id, "int56s", Attributes::Int56s::Id, credsIssuerConfig),                     // | 
|  | make_unique<SubscribeAttribute>(Id, "int64s", Attributes::Int64s::Id, credsIssuerConfig),                     // | 
|  | make_unique<SubscribeAttribute>(Id, "enum8", Attributes::Enum8::Id, credsIssuerConfig),                       // | 
|  | make_unique<SubscribeAttribute>(Id, "enum16", Attributes::Enum16::Id, credsIssuerConfig),                     // | 
|  | make_unique<SubscribeAttribute>(Id, "float-single", Attributes::FloatSingle::Id, credsIssuerConfig),          // | 
|  | make_unique<SubscribeAttribute>(Id, "float-double", Attributes::FloatDouble::Id, credsIssuerConfig),          // | 
|  | make_unique<SubscribeAttribute>(Id, "octet-string", Attributes::OctetString::Id, credsIssuerConfig),          // | 
|  | make_unique<SubscribeAttribute>(Id, "list-int8u", Attributes::ListInt8u::Id, credsIssuerConfig),              // | 
|  | make_unique<SubscribeAttribute>(Id, "list-octet-string", Attributes::ListOctetString::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "list-struct-octet-string", Attributes::ListStructOctetString::Id, | 
|  | credsIssuerConfig),                                                           // | 
|  | make_unique<SubscribeAttribute>(Id, "long-octet-string", Attributes::LongOctetString::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "char-string", Attributes::CharString::Id, credsIssuerConfig),            // | 
|  | make_unique<SubscribeAttribute>(Id, "long-char-string", Attributes::LongCharString::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "epoch-us", Attributes::EpochUs::Id, credsIssuerConfig),                  // | 
|  | make_unique<SubscribeAttribute>(Id, "epoch-s", Attributes::EpochS::Id, credsIssuerConfig),                    // | 
|  | make_unique<SubscribeAttribute>(Id, "vendor-id", Attributes::VendorId::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "list-nullables-and-optionals-struct", Attributes::ListNullablesAndOptionalsStruct::Id, | 
|  | credsIssuerConfig),                                                                       // | 
|  | make_unique<SubscribeAttribute>(Id, "enum-attr", Attributes::EnumAttr::Id, credsIssuerConfig),                            // | 
|  | make_unique<SubscribeAttribute>(Id, "struct-attr", Attributes::StructAttr::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "range-restricted-int8u", Attributes::RangeRestrictedInt8u::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "range-restricted-int8s", Attributes::RangeRestrictedInt8s::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "range-restricted-int16u", Attributes::RangeRestrictedInt16u::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "range-restricted-int16s", Attributes::RangeRestrictedInt16s::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "list-long-octet-string", Attributes::ListLongOctetString::Id, credsIssuerConfig),    // | 
|  | make_unique<SubscribeAttribute>(Id, "list-fabric-scoped", Attributes::ListFabricScoped::Id, credsIssuerConfig),           // | 
|  | make_unique<SubscribeAttribute>(Id, "timed-write-boolean", Attributes::TimedWriteBoolean::Id, credsIssuerConfig),         // | 
|  | make_unique<SubscribeAttribute>(Id, "general-error-boolean", Attributes::GeneralErrorBoolean::Id, credsIssuerConfig),     // | 
|  | make_unique<SubscribeAttribute>(Id, "cluster-error-boolean", Attributes::ClusterErrorBoolean::Id, credsIssuerConfig),     // | 
|  | make_unique<SubscribeAttribute>(Id, "unsupported", Attributes::Unsupported::Id, credsIssuerConfig),                       // | 
|  | make_unique<SubscribeAttribute>(Id, "nullable-boolean", Attributes::NullableBoolean::Id, credsIssuerConfig),              // | 
|  | make_unique<SubscribeAttribute>(Id, "nullable-bitmap8", Attributes::NullableBitmap8::Id, credsIssuerConfig),              // | 
|  | make_unique<SubscribeAttribute>(Id, "nullable-bitmap16", Attributes::NullableBitmap16::Id, credsIssuerConfig),            // | 
|  | make_unique<SubscribeAttribute>(Id, "nullable-bitmap32", Attributes::NullableBitmap32::Id, credsIssuerConfig),            // | 
|  | make_unique<SubscribeAttribute>(Id, "nullable-bitmap64", Attributes::NullableBitmap64::Id, credsIssuerConfig),            // | 
|  | make_unique<SubscribeAttribute>(Id, "nullable-int8u", Attributes::NullableInt8u::Id, credsIssuerConfig),                  // | 
|  | make_unique<SubscribeAttribute>(Id, "nullable-int16u", Attributes::NullableInt16u::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "nullable-int24u", Attributes::NullableInt24u::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "nullable-int32u", Attributes::NullableInt32u::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "nullable-int40u", Attributes::NullableInt40u::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "nullable-int48u", Attributes::NullableInt48u::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "nullable-int56u", Attributes::NullableInt56u::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "nullable-int64u", Attributes::NullableInt64u::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "nullable-int8s", Attributes::NullableInt8s::Id, credsIssuerConfig),                  // | 
|  | make_unique<SubscribeAttribute>(Id, "nullable-int16s", Attributes::NullableInt16s::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "nullable-int24s", Attributes::NullableInt24s::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "nullable-int32s", Attributes::NullableInt32s::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "nullable-int40s", Attributes::NullableInt40s::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "nullable-int48s", Attributes::NullableInt48s::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "nullable-int56s", Attributes::NullableInt56s::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "nullable-int64s", Attributes::NullableInt64s::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "nullable-enum8", Attributes::NullableEnum8::Id, credsIssuerConfig),                  // | 
|  | make_unique<SubscribeAttribute>(Id, "nullable-enum16", Attributes::NullableEnum16::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "nullable-float-single", Attributes::NullableFloatSingle::Id, credsIssuerConfig),     // | 
|  | make_unique<SubscribeAttribute>(Id, "nullable-float-double", Attributes::NullableFloatDouble::Id, credsIssuerConfig),     // | 
|  | make_unique<SubscribeAttribute>(Id, "nullable-octet-string", Attributes::NullableOctetString::Id, credsIssuerConfig),     // | 
|  | make_unique<SubscribeAttribute>(Id, "nullable-char-string", Attributes::NullableCharString::Id, credsIssuerConfig),       // | 
|  | make_unique<SubscribeAttribute>(Id, "nullable-enum-attr", Attributes::NullableEnumAttr::Id, credsIssuerConfig),           // | 
|  | make_unique<SubscribeAttribute>(Id, "nullable-struct", Attributes::NullableStruct::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "nullable-range-restricted-int8u", Attributes::NullableRangeRestrictedInt8u::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "nullable-range-restricted-int8s", Attributes::NullableRangeRestrictedInt8s::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "nullable-range-restricted-int16u", Attributes::NullableRangeRestrictedInt16u::Id, | 
|  | credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "nullable-range-restricted-int16s", Attributes::NullableRangeRestrictedInt16s::Id, | 
|  | credsIssuerConfig),                                                                     // | 
|  | make_unique<SubscribeAttribute>(Id, "write-only-int8u", Attributes::WriteOnlyInt8u::Id, credsIssuerConfig),             // | 
|  | make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | // | 
|  | // Events | 
|  | // | 
|  | make_unique<ReadEvent>(Id, credsIssuerConfig),                                                                     // | 
|  | make_unique<ReadEvent>(Id, "test-event", Events::TestEvent::Id, credsIssuerConfig),                                // | 
|  | make_unique<ReadEvent>(Id, "test-fabric-scoped-event", Events::TestFabricScopedEvent::Id, credsIssuerConfig),      // | 
|  | make_unique<SubscribeEvent>(Id, credsIssuerConfig),                                                                // | 
|  | make_unique<SubscribeEvent>(Id, "test-event", Events::TestEvent::Id, credsIssuerConfig),                           // | 
|  | make_unique<SubscribeEvent>(Id, "test-fabric-scoped-event", Events::TestFabricScopedEvent::Id, credsIssuerConfig), // | 
|  | }; | 
|  |  | 
|  | commands.Register(clusterName, clusterCommands); | 
|  | } | 
|  | void registerClusterFaultInjection(Commands & commands, CredentialIssuerCommands * credsIssuerConfig) | 
|  | { | 
|  | using namespace chip::app::Clusters::FaultInjection; | 
|  |  | 
|  | const char * clusterName = "FaultInjection"; | 
|  |  | 
|  | commands_list clusterCommands = { | 
|  | // | 
|  | // Commands | 
|  | // | 
|  | make_unique<ClusterCommand>(Id, credsIssuerConfig),                // | 
|  | make_unique<FaultInjectionFailAtFault>(credsIssuerConfig),         // | 
|  | make_unique<FaultInjectionFailRandomlyAtFault>(credsIssuerConfig), // | 
|  | // | 
|  | // Attributes | 
|  | // | 
|  | make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite, | 
|  | credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>( | 
|  | Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>( | 
|  | Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>( | 
|  | Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig), // | 
|  | make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id, | 
|  | WriteCommandType::kForceWrite, credsIssuerConfig),                                // | 
|  | make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                                 // | 
|  | make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), // | 
|  | make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        // | 
|  | make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                // | 
|  | make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      // | 
|  | make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            // | 
|  | // | 
|  | // Events | 
|  | // | 
|  | make_unique<ReadEvent>(Id, credsIssuerConfig),      // | 
|  | make_unique<SubscribeEvent>(Id, credsIssuerConfig), // | 
|  | }; | 
|  |  | 
|  | commands.Register(clusterName, clusterCommands); | 
|  | } | 
|  |  | 
|  | void registerClusterAny(Commands & commands, CredentialIssuerCommands * credsIssuerConfig) | 
|  | { | 
|  | const char * clusterName = "Any"; | 
|  |  | 
|  | commands_list clusterCommands = { | 
|  | make_unique<ClusterCommand>(credsIssuerConfig),     // | 
|  | make_unique<ReadAttribute>(credsIssuerConfig),      // | 
|  | make_unique<WriteAttribute<>>(credsIssuerConfig),   // | 
|  | make_unique<SubscribeAttribute>(credsIssuerConfig), // | 
|  | make_unique<ReadEvent>(credsIssuerConfig),          // | 
|  | make_unique<SubscribeEvent>(credsIssuerConfig),     // | 
|  | make_unique<ReadAll>(credsIssuerConfig),            // | 
|  | make_unique<SubscribeAll>(credsIssuerConfig),       // | 
|  | }; | 
|  |  | 
|  | commands.Register(clusterName, clusterCommands); | 
|  | } | 
|  |  | 
|  | void registerClusters(Commands & commands, CredentialIssuerCommands * credsIssuerConfig) | 
|  | { | 
|  | registerClusterAny(commands, credsIssuerConfig); | 
|  | registerClusterIdentify(commands, credsIssuerConfig); | 
|  | registerClusterGroups(commands, credsIssuerConfig); | 
|  | registerClusterScenes(commands, credsIssuerConfig); | 
|  | registerClusterOnOff(commands, credsIssuerConfig); | 
|  | registerClusterOnOffSwitchConfiguration(commands, credsIssuerConfig); | 
|  | registerClusterLevelControl(commands, credsIssuerConfig); | 
|  | registerClusterBinaryInputBasic(commands, credsIssuerConfig); | 
|  | registerClusterPulseWidthModulation(commands, credsIssuerConfig); | 
|  | registerClusterDescriptor(commands, credsIssuerConfig); | 
|  | registerClusterBinding(commands, credsIssuerConfig); | 
|  | registerClusterAccessControl(commands, credsIssuerConfig); | 
|  | registerClusterActions(commands, credsIssuerConfig); | 
|  | registerClusterBasicInformation(commands, credsIssuerConfig); | 
|  | registerClusterOtaSoftwareUpdateProvider(commands, credsIssuerConfig); | 
|  | registerClusterOtaSoftwareUpdateRequestor(commands, credsIssuerConfig); | 
|  | registerClusterLocalizationConfiguration(commands, credsIssuerConfig); | 
|  | registerClusterTimeFormatLocalization(commands, credsIssuerConfig); | 
|  | registerClusterUnitLocalization(commands, credsIssuerConfig); | 
|  | registerClusterPowerSourceConfiguration(commands, credsIssuerConfig); | 
|  | registerClusterPowerSource(commands, credsIssuerConfig); | 
|  | registerClusterGeneralCommissioning(commands, credsIssuerConfig); | 
|  | registerClusterNetworkCommissioning(commands, credsIssuerConfig); | 
|  | registerClusterDiagnosticLogs(commands, credsIssuerConfig); | 
|  | registerClusterGeneralDiagnostics(commands, credsIssuerConfig); | 
|  | registerClusterSoftwareDiagnostics(commands, credsIssuerConfig); | 
|  | registerClusterThreadNetworkDiagnostics(commands, credsIssuerConfig); | 
|  | registerClusterWiFiNetworkDiagnostics(commands, credsIssuerConfig); | 
|  | registerClusterEthernetNetworkDiagnostics(commands, credsIssuerConfig); | 
|  | registerClusterTimeSynchronization(commands, credsIssuerConfig); | 
|  | registerClusterBridgedDeviceBasicInformation(commands, credsIssuerConfig); | 
|  | registerClusterSwitch(commands, credsIssuerConfig); | 
|  | registerClusterAdministratorCommissioning(commands, credsIssuerConfig); | 
|  | registerClusterOperationalCredentials(commands, credsIssuerConfig); | 
|  | registerClusterGroupKeyManagement(commands, credsIssuerConfig); | 
|  | registerClusterFixedLabel(commands, credsIssuerConfig); | 
|  | registerClusterUserLabel(commands, credsIssuerConfig); | 
|  | registerClusterProxyConfiguration(commands, credsIssuerConfig); | 
|  | registerClusterProxyDiscovery(commands, credsIssuerConfig); | 
|  | registerClusterProxyValid(commands, credsIssuerConfig); | 
|  | registerClusterBooleanState(commands, credsIssuerConfig); | 
|  | registerClusterModeSelect(commands, credsIssuerConfig); | 
|  | registerClusterHepaFilterMonitoring(commands, credsIssuerConfig); | 
|  | registerClusterActivatedCarbonFilterMonitoring(commands, credsIssuerConfig); | 
|  | registerClusterCeramicFilterMonitoring(commands, credsIssuerConfig); | 
|  | registerClusterElectrostaticFilterMonitoring(commands, credsIssuerConfig); | 
|  | registerClusterUvFilterMonitoring(commands, credsIssuerConfig); | 
|  | registerClusterIonizingFilterMonitoring(commands, credsIssuerConfig); | 
|  | registerClusterZeoliteFilterMonitoring(commands, credsIssuerConfig); | 
|  | registerClusterOzoneFilterMonitoring(commands, credsIssuerConfig); | 
|  | registerClusterWaterTankMonitoring(commands, credsIssuerConfig); | 
|  | registerClusterFuelTankMonitoring(commands, credsIssuerConfig); | 
|  | registerClusterInkCartridgeMonitoring(commands, credsIssuerConfig); | 
|  | registerClusterTonerCartridgeMonitoring(commands, credsIssuerConfig); | 
|  | registerClusterDoorLock(commands, credsIssuerConfig); | 
|  | registerClusterWindowCovering(commands, credsIssuerConfig); | 
|  | registerClusterBarrierControl(commands, credsIssuerConfig); | 
|  | registerClusterPumpConfigurationAndControl(commands, credsIssuerConfig); | 
|  | registerClusterThermostat(commands, credsIssuerConfig); | 
|  | registerClusterFanControl(commands, credsIssuerConfig); | 
|  | registerClusterThermostatUserInterfaceConfiguration(commands, credsIssuerConfig); | 
|  | registerClusterColorControl(commands, credsIssuerConfig); | 
|  | registerClusterBallastConfiguration(commands, credsIssuerConfig); | 
|  | registerClusterIlluminanceMeasurement(commands, credsIssuerConfig); | 
|  | registerClusterTemperatureMeasurement(commands, credsIssuerConfig); | 
|  | registerClusterPressureMeasurement(commands, credsIssuerConfig); | 
|  | registerClusterFlowMeasurement(commands, credsIssuerConfig); | 
|  | registerClusterRelativeHumidityMeasurement(commands, credsIssuerConfig); | 
|  | registerClusterOccupancySensing(commands, credsIssuerConfig); | 
|  | registerClusterWakeOnLan(commands, credsIssuerConfig); | 
|  | registerClusterChannel(commands, credsIssuerConfig); | 
|  | registerClusterTargetNavigator(commands, credsIssuerConfig); | 
|  | registerClusterMediaPlayback(commands, credsIssuerConfig); | 
|  | registerClusterMediaInput(commands, credsIssuerConfig); | 
|  | registerClusterLowPower(commands, credsIssuerConfig); | 
|  | registerClusterKeypadInput(commands, credsIssuerConfig); | 
|  | registerClusterContentLauncher(commands, credsIssuerConfig); | 
|  | registerClusterAudioOutput(commands, credsIssuerConfig); | 
|  | registerClusterApplicationLauncher(commands, credsIssuerConfig); | 
|  | registerClusterApplicationBasic(commands, credsIssuerConfig); | 
|  | registerClusterAccountLogin(commands, credsIssuerConfig); | 
|  | registerClusterElectricalMeasurement(commands, credsIssuerConfig); | 
|  | registerClusterClientMonitoring(commands, credsIssuerConfig); | 
|  | registerClusterUnitTesting(commands, credsIssuerConfig); | 
|  | registerClusterFaultInjection(commands, credsIssuerConfig); | 
|  | } |