Apply Upstream code (2021-03-15)
[platform/upstream/connectedhomeip.git] / src / controller / CHIPClusters.h
1 /*
2  *
3  *    Copyright (c) 2021 Project CHIP Authors
4  *
5  *    Licensed under the Apache License, Version 2.0 (the "License");
6  *    you may not use this file except in compliance with the License.
7  *    You may obtain a copy of the License at
8  *
9  *        http://www.apache.org/licenses/LICENSE-2.0
10  *
11  *    Unless required by applicable law or agreed to in writing, software
12  *    distributed under the License is distributed on an "AS IS" BASIS,
13  *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  *    See the License for the specific language governing permissions and
15  *    limitations under the License.
16  */
17
18 // THIS FILE IS GENERATED BY ZAP
19
20 // Prevent multiple inclusion
21 #pragma once
22
23 #include <controller/CHIPCluster.h>
24 #include <core/CHIPCallback.h>
25 #include <lib/support/Span.h>
26
27 namespace chip {
28 namespace Controller {
29
30 constexpr ClusterId kApplicationBasicClusterId       = 0x050D;
31 constexpr ClusterId kBarrierControlClusterId         = 0x0103;
32 constexpr ClusterId kBasicClusterId                  = 0x0028;
33 constexpr ClusterId kBindingClusterId                = 0xF000;
34 constexpr ClusterId kColorControlClusterId           = 0x0300;
35 constexpr ClusterId kContentLaunchClusterId          = 0xF002;
36 constexpr ClusterId kDoorLockClusterId               = 0x0101;
37 constexpr ClusterId kGeneralCommissioningClusterId   = 0x0030;
38 constexpr ClusterId kGroupsClusterId                 = 0x0004;
39 constexpr ClusterId kIasZoneClusterId                = 0x0500;
40 constexpr ClusterId kIdentifyClusterId               = 0x0003;
41 constexpr ClusterId kLevelControlClusterId           = 0x0008;
42 constexpr ClusterId kLowPowerClusterId               = 0x0508;
43 constexpr ClusterId kMediaPlaybackClusterId          = 0xF001;
44 constexpr ClusterId kNetworkCommissioningClusterId   = 0xAAAA;
45 constexpr ClusterId kOnOffClusterId                  = 0x0006;
46 constexpr ClusterId kScenesClusterId                 = 0x0005;
47 constexpr ClusterId kTemperatureMeasurementClusterId = 0x0402;
48
49 class DLL_EXPORT ApplicationBasicCluster : public ClusterBase
50 {
51 public:
52     ApplicationBasicCluster() : ClusterBase(kApplicationBasicClusterId) {}
53     ~ApplicationBasicCluster() {}
54
55     // Cluster Attributes
56     CHIP_ERROR DiscoverAttributes(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
57     CHIP_ERROR ReadAttributeVendorName(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
58     CHIP_ERROR ReadAttributeVendorId(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
59     CHIP_ERROR ReadAttributeApplicationName(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
60     CHIP_ERROR ReadAttributeProductId(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
61     CHIP_ERROR ReadAttributeApplicationId(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
62     CHIP_ERROR ReadAttributeCatalogVendorId(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
63     CHIP_ERROR ReadAttributeApplicationSatus(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
64     CHIP_ERROR ReadAttributeClusterRevision(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
65 };
66
67 class DLL_EXPORT BarrierControlCluster : public ClusterBase
68 {
69 public:
70     BarrierControlCluster() : ClusterBase(kBarrierControlClusterId) {}
71     ~BarrierControlCluster() {}
72
73     // Cluster Commands
74     CHIP_ERROR BarrierControlGoToPercent(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback,
75                                          uint8_t percentOpen);
76     CHIP_ERROR BarrierControlStop(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
77
78     // Cluster Attributes
79     CHIP_ERROR DiscoverAttributes(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
80     CHIP_ERROR ReadAttributeBarrierMovingState(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
81     CHIP_ERROR ReadAttributeBarrierSafetyStatus(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
82     CHIP_ERROR ReadAttributeBarrierCapabilities(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
83     CHIP_ERROR ReadAttributeBarrierPosition(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
84     CHIP_ERROR ReadAttributeClusterRevision(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
85
86 private:
87     static constexpr CommandId kBarrierControlGoToPercentCommandId = 0x00;
88     static constexpr CommandId kBarrierControlStopCommandId        = 0x01;
89 };
90
91 class DLL_EXPORT BasicCluster : public ClusterBase
92 {
93 public:
94     BasicCluster() : ClusterBase(kBasicClusterId) {}
95     ~BasicCluster() {}
96
97     // Cluster Commands
98     CHIP_ERROR MfgSpecificPing(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
99
100     // Cluster Attributes
101     CHIP_ERROR DiscoverAttributes(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
102     CHIP_ERROR ReadAttributeInteractionModelVersion(Callback::Cancelable * onSuccessCallback,
103                                                     Callback::Cancelable * onFailureCallback);
104     CHIP_ERROR ReadAttributeVendorName(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
105     CHIP_ERROR ReadAttributeVendorID(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
106     CHIP_ERROR ReadAttributeProductName(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
107     CHIP_ERROR ReadAttributeProductID(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
108     CHIP_ERROR ReadAttributeUserLabel(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
109     CHIP_ERROR ReadAttributeLocation(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
110     CHIP_ERROR ReadAttributeHardwareVersion(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
111     CHIP_ERROR ReadAttributeHardwareVersionString(Callback::Cancelable * onSuccessCallback,
112                                                   Callback::Cancelable * onFailureCallback);
113     CHIP_ERROR ReadAttributeSoftwareVersion(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
114     CHIP_ERROR ReadAttributeSoftwareVersionString(Callback::Cancelable * onSuccessCallback,
115                                                   Callback::Cancelable * onFailureCallback);
116     CHIP_ERROR ReadAttributeClusterRevision(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
117     CHIP_ERROR WriteAttributeUserLabel(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback,
118                                        chip::ByteSpan value);
119     CHIP_ERROR WriteAttributeLocation(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback,
120                                       chip::ByteSpan value);
121
122 private:
123     static constexpr CommandId kMfgSpecificPingCommandId = 0x00;
124 };
125
126 class DLL_EXPORT BindingCluster : public ClusterBase
127 {
128 public:
129     BindingCluster() : ClusterBase(kBindingClusterId) {}
130     ~BindingCluster() {}
131
132     // Cluster Commands
133     CHIP_ERROR Bind(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback, chip::NodeId nodeId,
134                     chip::GroupId groupId, chip::EndpointId endpointId, chip::ClusterId clusterId);
135     CHIP_ERROR Unbind(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback, chip::NodeId nodeId,
136                       chip::GroupId groupId, chip::EndpointId endpointId, chip::ClusterId clusterId);
137
138     // Cluster Attributes
139     CHIP_ERROR DiscoverAttributes(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
140     CHIP_ERROR ReadAttributeClusterRevision(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
141
142 private:
143     static constexpr CommandId kBindCommandId   = 0x00;
144     static constexpr CommandId kUnbindCommandId = 0x01;
145 };
146
147 class DLL_EXPORT ColorControlCluster : public ClusterBase
148 {
149 public:
150     ColorControlCluster() : ClusterBase(kColorControlClusterId) {}
151     ~ColorControlCluster() {}
152
153     // Cluster Commands
154     CHIP_ERROR MoveColor(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback, int16_t rateX,
155                          int16_t rateY, uint8_t optionsMask, uint8_t optionsOverride);
156     CHIP_ERROR MoveColorTemperature(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback,
157                                     uint8_t moveMode, uint16_t rate, uint16_t colorTemperatureMinimum,
158                                     uint16_t colorTemperatureMaximum, uint8_t optionsMask, uint8_t optionsOverride);
159     CHIP_ERROR MoveHue(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback, uint8_t moveMode,
160                        uint8_t rate, uint8_t optionsMask, uint8_t optionsOverride);
161     CHIP_ERROR MoveSaturation(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback, uint8_t moveMode,
162                               uint8_t rate, uint8_t optionsMask, uint8_t optionsOverride);
163     CHIP_ERROR MoveToColor(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback, uint16_t colorX,
164                            uint16_t colorY, uint16_t transitionTime, uint8_t optionsMask, uint8_t optionsOverride);
165     CHIP_ERROR MoveToColorTemperature(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback,
166                                       uint16_t colorTemperature, uint16_t transitionTime, uint8_t optionsMask,
167                                       uint8_t optionsOverride);
168     CHIP_ERROR MoveToHue(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback, uint8_t hue,
169                          uint8_t direction, uint16_t transitionTime, uint8_t optionsMask, uint8_t optionsOverride);
170     CHIP_ERROR MoveToHueAndSaturation(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback,
171                                       uint8_t hue, uint8_t saturation, uint16_t transitionTime, uint8_t optionsMask,
172                                       uint8_t optionsOverride);
173     CHIP_ERROR MoveToSaturation(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback,
174                                 uint8_t saturation, uint16_t transitionTime, uint8_t optionsMask, uint8_t optionsOverride);
175     CHIP_ERROR StepColor(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback, int16_t stepX,
176                          int16_t stepY, uint16_t transitionTime, uint8_t optionsMask, uint8_t optionsOverride);
177     CHIP_ERROR StepColorTemperature(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback,
178                                     uint8_t stepMode, uint16_t stepSize, uint16_t transitionTime, uint16_t colorTemperatureMinimum,
179                                     uint16_t colorTemperatureMaximum, uint8_t optionsMask, uint8_t optionsOverride);
180     CHIP_ERROR StepHue(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback, uint8_t stepMode,
181                        uint8_t stepSize, uint8_t transitionTime, uint8_t optionsMask, uint8_t optionsOverride);
182     CHIP_ERROR StepSaturation(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback, uint8_t stepMode,
183                               uint8_t stepSize, uint8_t transitionTime, uint8_t optionsMask, uint8_t optionsOverride);
184     CHIP_ERROR StopMoveStep(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback, uint8_t optionsMask,
185                             uint8_t optionsOverride);
186
187     // Cluster Attributes
188     CHIP_ERROR DiscoverAttributes(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
189     CHIP_ERROR ReadAttributeCurrentHue(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
190     CHIP_ERROR ReadAttributeCurrentSaturation(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
191     CHIP_ERROR ReadAttributeRemainingTime(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
192     CHIP_ERROR ReadAttributeCurrentX(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
193     CHIP_ERROR ReadAttributeCurrentY(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
194     CHIP_ERROR ReadAttributeDriftCompensation(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
195     CHIP_ERROR ReadAttributeCompensationText(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
196     CHIP_ERROR ReadAttributeColorTemperature(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
197     CHIP_ERROR ReadAttributeColorMode(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
198     CHIP_ERROR ReadAttributeColorControlOptions(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
199     CHIP_ERROR ReadAttributeNumberOfPrimaries(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
200     CHIP_ERROR ReadAttributePrimary1X(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
201     CHIP_ERROR ReadAttributePrimary1Y(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
202     CHIP_ERROR ReadAttributePrimary1Intensity(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
203     CHIP_ERROR ReadAttributePrimary2X(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
204     CHIP_ERROR ReadAttributePrimary2Y(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
205     CHIP_ERROR ReadAttributePrimary2Intensity(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
206     CHIP_ERROR ReadAttributePrimary3X(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
207     CHIP_ERROR ReadAttributePrimary3Y(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
208     CHIP_ERROR ReadAttributePrimary3Intensity(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
209     CHIP_ERROR ReadAttributePrimary4X(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
210     CHIP_ERROR ReadAttributePrimary4Y(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
211     CHIP_ERROR ReadAttributePrimary4Intensity(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
212     CHIP_ERROR ReadAttributePrimary5X(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
213     CHIP_ERROR ReadAttributePrimary5Y(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
214     CHIP_ERROR ReadAttributePrimary5Intensity(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
215     CHIP_ERROR ReadAttributePrimary6X(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
216     CHIP_ERROR ReadAttributePrimary6Y(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
217     CHIP_ERROR ReadAttributePrimary6Intensity(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
218     CHIP_ERROR ReadAttributeWhitePointX(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
219     CHIP_ERROR ReadAttributeWhitePointY(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
220     CHIP_ERROR ReadAttributeColorPointRX(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
221     CHIP_ERROR ReadAttributeColorPointRY(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
222     CHIP_ERROR ReadAttributeColorPointRIntensity(Callback::Cancelable * onSuccessCallback,
223                                                  Callback::Cancelable * onFailureCallback);
224     CHIP_ERROR ReadAttributeColorPointGX(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
225     CHIP_ERROR ReadAttributeColorPointGY(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
226     CHIP_ERROR ReadAttributeColorPointGIntensity(Callback::Cancelable * onSuccessCallback,
227                                                  Callback::Cancelable * onFailureCallback);
228     CHIP_ERROR ReadAttributeColorPointBX(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
229     CHIP_ERROR ReadAttributeColorPointBY(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
230     CHIP_ERROR ReadAttributeColorPointBIntensity(Callback::Cancelable * onSuccessCallback,
231                                                  Callback::Cancelable * onFailureCallback);
232     CHIP_ERROR ReadAttributeEnhancedCurrentHue(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
233     CHIP_ERROR ReadAttributeEnhancedColorMode(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
234     CHIP_ERROR ReadAttributeColorLoopActive(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
235     CHIP_ERROR ReadAttributeColorLoopDirection(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
236     CHIP_ERROR ReadAttributeColorLoopTime(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
237     CHIP_ERROR ReadAttributeColorCapabilities(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
238     CHIP_ERROR ReadAttributeColorTempPhysicalMin(Callback::Cancelable * onSuccessCallback,
239                                                  Callback::Cancelable * onFailureCallback);
240     CHIP_ERROR ReadAttributeColorTempPhysicalMax(Callback::Cancelable * onSuccessCallback,
241                                                  Callback::Cancelable * onFailureCallback);
242     CHIP_ERROR ReadAttributeCoupleColorTempToLevelMinMireds(Callback::Cancelable * onSuccessCallback,
243                                                             Callback::Cancelable * onFailureCallback);
244     CHIP_ERROR ReadAttributeStartUpColorTemperatureMireds(Callback::Cancelable * onSuccessCallback,
245                                                           Callback::Cancelable * onFailureCallback);
246     CHIP_ERROR ReadAttributeClusterRevision(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
247     CHIP_ERROR WriteAttributeColorControlOptions(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback,
248                                                  uint8_t value);
249     CHIP_ERROR WriteAttributeWhitePointX(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback,
250                                          uint16_t value);
251     CHIP_ERROR WriteAttributeWhitePointY(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback,
252                                          uint16_t value);
253     CHIP_ERROR WriteAttributeColorPointRX(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback,
254                                           uint16_t value);
255     CHIP_ERROR WriteAttributeColorPointRY(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback,
256                                           uint16_t value);
257     CHIP_ERROR WriteAttributeColorPointRIntensity(Callback::Cancelable * onSuccessCallback,
258                                                   Callback::Cancelable * onFailureCallback, uint8_t value);
259     CHIP_ERROR WriteAttributeColorPointGX(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback,
260                                           uint16_t value);
261     CHIP_ERROR WriteAttributeColorPointGY(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback,
262                                           uint16_t value);
263     CHIP_ERROR WriteAttributeColorPointGIntensity(Callback::Cancelable * onSuccessCallback,
264                                                   Callback::Cancelable * onFailureCallback, uint8_t value);
265     CHIP_ERROR WriteAttributeColorPointBX(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback,
266                                           uint16_t value);
267     CHIP_ERROR WriteAttributeColorPointBY(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback,
268                                           uint16_t value);
269     CHIP_ERROR WriteAttributeColorPointBIntensity(Callback::Cancelable * onSuccessCallback,
270                                                   Callback::Cancelable * onFailureCallback, uint8_t value);
271     CHIP_ERROR WriteAttributeStartUpColorTemperatureMireds(Callback::Cancelable * onSuccessCallback,
272                                                            Callback::Cancelable * onFailureCallback, uint16_t value);
273     CHIP_ERROR ConfigureAttributeCurrentHue(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback,
274                                             uint16_t minInterval, uint16_t maxInterval, uint8_t change);
275     CHIP_ERROR ReportAttributeCurrentHue(Callback::Cancelable * onReportCallback);
276     CHIP_ERROR ConfigureAttributeCurrentSaturation(Callback::Cancelable * onSuccessCallback,
277                                                    Callback::Cancelable * onFailureCallback, uint16_t minInterval,
278                                                    uint16_t maxInterval, uint8_t change);
279     CHIP_ERROR ReportAttributeCurrentSaturation(Callback::Cancelable * onReportCallback);
280     CHIP_ERROR ConfigureAttributeCurrentX(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback,
281                                           uint16_t minInterval, uint16_t maxInterval, uint16_t change);
282     CHIP_ERROR ReportAttributeCurrentX(Callback::Cancelable * onReportCallback);
283     CHIP_ERROR ConfigureAttributeCurrentY(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback,
284                                           uint16_t minInterval, uint16_t maxInterval, uint16_t change);
285     CHIP_ERROR ReportAttributeCurrentY(Callback::Cancelable * onReportCallback);
286     CHIP_ERROR ConfigureAttributeColorTemperature(Callback::Cancelable * onSuccessCallback,
287                                                   Callback::Cancelable * onFailureCallback, uint16_t minInterval,
288                                                   uint16_t maxInterval, uint16_t change);
289     CHIP_ERROR ReportAttributeColorTemperature(Callback::Cancelable * onReportCallback);
290
291 private:
292     static constexpr CommandId kMoveColorCommandId              = 0x08;
293     static constexpr CommandId kMoveColorTemperatureCommandId   = 0x4B;
294     static constexpr CommandId kMoveHueCommandId                = 0x01;
295     static constexpr CommandId kMoveSaturationCommandId         = 0x04;
296     static constexpr CommandId kMoveToColorCommandId            = 0x07;
297     static constexpr CommandId kMoveToColorTemperatureCommandId = 0x0A;
298     static constexpr CommandId kMoveToHueCommandId              = 0x00;
299     static constexpr CommandId kMoveToHueAndSaturationCommandId = 0x06;
300     static constexpr CommandId kMoveToSaturationCommandId       = 0x03;
301     static constexpr CommandId kStepColorCommandId              = 0x09;
302     static constexpr CommandId kStepColorTemperatureCommandId   = 0x4C;
303     static constexpr CommandId kStepHueCommandId                = 0x02;
304     static constexpr CommandId kStepSaturationCommandId         = 0x05;
305     static constexpr CommandId kStopMoveStepCommandId           = 0x47;
306 };
307
308 class DLL_EXPORT ContentLaunchCluster : public ClusterBase
309 {
310 public:
311     ContentLaunchCluster() : ClusterBase(kContentLaunchClusterId) {}
312     ~ContentLaunchCluster() {}
313
314     // Cluster Commands
315     CHIP_ERROR LaunchContent(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
316     CHIP_ERROR LaunchURL(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
317
318     // Cluster Attributes
319     CHIP_ERROR DiscoverAttributes(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
320     CHIP_ERROR ReadAttributeClusterRevision(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
321
322 private:
323     static constexpr CommandId kLaunchContentCommandId = 0x00;
324     static constexpr CommandId kLaunchURLCommandId     = 0x01;
325 };
326
327 class DLL_EXPORT DoorLockCluster : public ClusterBase
328 {
329 public:
330     DoorLockCluster() : ClusterBase(kDoorLockClusterId) {}
331     ~DoorLockCluster() {}
332
333     // Cluster Commands
334     CHIP_ERROR ClearAllPins(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
335     CHIP_ERROR ClearAllRfids(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
336     CHIP_ERROR ClearHolidaySchedule(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback,
337                                     uint8_t scheduleId);
338     CHIP_ERROR ClearPin(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback, uint16_t userId);
339     CHIP_ERROR ClearRfid(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback, uint16_t userId);
340     CHIP_ERROR ClearWeekdaySchedule(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback,
341                                     uint8_t scheduleId, uint16_t userId);
342     CHIP_ERROR ClearYeardaySchedule(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback,
343                                     uint8_t scheduleId, uint16_t userId);
344     CHIP_ERROR GetHolidaySchedule(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback,
345                                   uint8_t scheduleId);
346     CHIP_ERROR GetLogRecord(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback, uint16_t logIndex);
347     CHIP_ERROR GetPin(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback, uint16_t userId);
348     CHIP_ERROR GetRfid(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback, uint16_t userId);
349     CHIP_ERROR GetUserType(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback, uint16_t userId);
350     CHIP_ERROR GetWeekdaySchedule(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback,
351                                   uint8_t scheduleId, uint16_t userId);
352     CHIP_ERROR GetYeardaySchedule(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback,
353                                   uint8_t scheduleId, uint16_t userId);
354     CHIP_ERROR LockDoor(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback, chip::ByteSpan pin);
355     CHIP_ERROR SetHolidaySchedule(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback,
356                                   uint8_t scheduleId, uint32_t localStartTime, uint32_t localEndTime,
357                                   uint8_t operatingModeDuringHoliday);
358     CHIP_ERROR SetPin(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback, uint16_t userId,
359                       uint8_t userStatus, uint8_t userType, chip::ByteSpan pin);
360     CHIP_ERROR SetRfid(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback, uint16_t userId,
361                        uint8_t userStatus, uint8_t userType, chip::ByteSpan id);
362     CHIP_ERROR SetUserType(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback, uint16_t userId,
363                            uint8_t userType);
364     CHIP_ERROR SetWeekdaySchedule(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback,
365                                   uint8_t scheduleId, uint16_t userId, uint8_t daysMask, uint8_t startHour, uint8_t startMinute,
366                                   uint8_t endHour, uint8_t endMinute);
367     CHIP_ERROR SetYeardaySchedule(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback,
368                                   uint8_t scheduleId, uint16_t userId, uint32_t localStartTime, uint32_t localEndTime);
369     CHIP_ERROR UnlockDoor(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback, chip::ByteSpan pin);
370     CHIP_ERROR UnlockWithTimeout(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback,
371                                  uint16_t timeoutInSeconds, chip::ByteSpan pin);
372
373     // Cluster Attributes
374     CHIP_ERROR DiscoverAttributes(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
375     CHIP_ERROR ReadAttributeLockState(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
376     CHIP_ERROR ReadAttributeLockType(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
377     CHIP_ERROR ReadAttributeActuatorEnabled(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
378     CHIP_ERROR ReadAttributeClusterRevision(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
379     CHIP_ERROR ConfigureAttributeLockState(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback,
380                                            uint16_t minInterval, uint16_t maxInterval);
381     CHIP_ERROR ReportAttributeLockState(Callback::Cancelable * onReportCallback);
382
383 private:
384     static constexpr CommandId kClearAllPinsCommandId         = 0x08;
385     static constexpr CommandId kClearAllRfidsCommandId        = 0x19;
386     static constexpr CommandId kClearHolidayScheduleCommandId = 0x13;
387     static constexpr CommandId kClearPinCommandId             = 0x07;
388     static constexpr CommandId kClearRfidCommandId            = 0x18;
389     static constexpr CommandId kClearWeekdayScheduleCommandId = 0x0D;
390     static constexpr CommandId kClearYeardayScheduleCommandId = 0x10;
391     static constexpr CommandId kGetHolidayScheduleCommandId   = 0x12;
392     static constexpr CommandId kGetLogRecordCommandId         = 0x04;
393     static constexpr CommandId kGetPinCommandId               = 0x06;
394     static constexpr CommandId kGetRfidCommandId              = 0x17;
395     static constexpr CommandId kGetUserTypeCommandId          = 0x15;
396     static constexpr CommandId kGetWeekdayScheduleCommandId   = 0x0C;
397     static constexpr CommandId kGetYeardayScheduleCommandId   = 0x0F;
398     static constexpr CommandId kLockDoorCommandId             = 0x00;
399     static constexpr CommandId kSetHolidayScheduleCommandId   = 0x11;
400     static constexpr CommandId kSetPinCommandId               = 0x05;
401     static constexpr CommandId kSetRfidCommandId              = 0x16;
402     static constexpr CommandId kSetUserTypeCommandId          = 0x14;
403     static constexpr CommandId kSetWeekdayScheduleCommandId   = 0x0B;
404     static constexpr CommandId kSetYeardayScheduleCommandId   = 0x0E;
405     static constexpr CommandId kUnlockDoorCommandId           = 0x01;
406     static constexpr CommandId kUnlockWithTimeoutCommandId    = 0x03;
407 };
408
409 class DLL_EXPORT GeneralCommissioningCluster : public ClusterBase
410 {
411 public:
412     GeneralCommissioningCluster() : ClusterBase(kGeneralCommissioningClusterId) {}
413     ~GeneralCommissioningCluster() {}
414
415     // Cluster Commands
416     CHIP_ERROR ArmFailSafe(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback,
417                            uint16_t expiryLengthSeconds, uint64_t breadcrumb, uint32_t timeoutMs);
418     CHIP_ERROR CommissioningComplete(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
419     CHIP_ERROR SetFabric(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback,
420                          chip::ByteSpan fabricId, chip::ByteSpan fabricSecret, uint64_t breadcrumb, uint32_t timeoutMs);
421
422     // Cluster Attributes
423     CHIP_ERROR DiscoverAttributes(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
424     CHIP_ERROR ReadAttributeFabricId(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
425     CHIP_ERROR ReadAttributeBreadcrumb(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
426     CHIP_ERROR ReadAttributeClusterRevision(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
427     CHIP_ERROR WriteAttributeBreadcrumb(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback,
428                                         uint64_t value);
429
430 private:
431     static constexpr CommandId kArmFailSafeCommandId           = 0x02;
432     static constexpr CommandId kCommissioningCompleteCommandId = 0x06;
433     static constexpr CommandId kSetFabricCommandId             = 0x00;
434 };
435
436 class DLL_EXPORT GroupsCluster : public ClusterBase
437 {
438 public:
439     GroupsCluster() : ClusterBase(kGroupsClusterId) {}
440     ~GroupsCluster() {}
441
442     // Cluster Commands
443     CHIP_ERROR AddGroup(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback, uint16_t groupId,
444                         chip::ByteSpan groupName);
445     CHIP_ERROR AddGroupIfIdentifying(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback,
446                                      uint16_t groupId, chip::ByteSpan groupName);
447     CHIP_ERROR GetGroupMembership(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback,
448                                   uint8_t groupCount, uint16_t groupList);
449     CHIP_ERROR RemoveAllGroups(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
450     CHIP_ERROR RemoveGroup(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback, uint16_t groupId);
451     CHIP_ERROR ViewGroup(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback, uint16_t groupId);
452
453     // Cluster Attributes
454     CHIP_ERROR DiscoverAttributes(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
455     CHIP_ERROR ReadAttributeNameSupport(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
456     CHIP_ERROR ReadAttributeClusterRevision(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
457
458 private:
459     static constexpr CommandId kAddGroupCommandId              = 0x00;
460     static constexpr CommandId kAddGroupIfIdentifyingCommandId = 0x05;
461     static constexpr CommandId kGetGroupMembershipCommandId    = 0x02;
462     static constexpr CommandId kRemoveAllGroupsCommandId       = 0x04;
463     static constexpr CommandId kRemoveGroupCommandId           = 0x03;
464     static constexpr CommandId kViewGroupCommandId             = 0x01;
465 };
466
467 class DLL_EXPORT IasZoneCluster : public ClusterBase
468 {
469 public:
470     IasZoneCluster() : ClusterBase(kIasZoneClusterId) {}
471     ~IasZoneCluster() {}
472
473     // Cluster Attributes
474     CHIP_ERROR DiscoverAttributes(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
475     CHIP_ERROR ReadAttributeZoneState(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
476     CHIP_ERROR ReadAttributeZoneType(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
477     CHIP_ERROR ReadAttributeZoneStatus(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
478     CHIP_ERROR ReadAttributeIasCieAddress(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
479     CHIP_ERROR ReadAttributeZoneId(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
480     CHIP_ERROR ReadAttributeClusterRevision(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
481     CHIP_ERROR WriteAttributeIasCieAddress(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback,
482                                            uint64_t value);
483 };
484
485 class DLL_EXPORT IdentifyCluster : public ClusterBase
486 {
487 public:
488     IdentifyCluster() : ClusterBase(kIdentifyClusterId) {}
489     ~IdentifyCluster() {}
490
491     // Cluster Commands
492     CHIP_ERROR Identify(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback, uint16_t identifyTime);
493     CHIP_ERROR IdentifyQuery(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
494
495     // Cluster Attributes
496     CHIP_ERROR DiscoverAttributes(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
497     CHIP_ERROR ReadAttributeIdentifyTime(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
498     CHIP_ERROR ReadAttributeClusterRevision(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
499     CHIP_ERROR WriteAttributeIdentifyTime(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback,
500                                           uint16_t value);
501
502 private:
503     static constexpr CommandId kIdentifyCommandId      = 0x00;
504     static constexpr CommandId kIdentifyQueryCommandId = 0x01;
505 };
506
507 class DLL_EXPORT LevelControlCluster : public ClusterBase
508 {
509 public:
510     LevelControlCluster() : ClusterBase(kLevelControlClusterId) {}
511     ~LevelControlCluster() {}
512
513     // Cluster Commands
514     CHIP_ERROR Move(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback, uint8_t moveMode,
515                     uint8_t rate, uint8_t optionMask, uint8_t optionOverride);
516     CHIP_ERROR MoveToLevel(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback, uint8_t level,
517                            uint16_t transitionTime, uint8_t optionMask, uint8_t optionOverride);
518     CHIP_ERROR MoveToLevelWithOnOff(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback,
519                                     uint8_t level, uint16_t transitionTime);
520     CHIP_ERROR MoveWithOnOff(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback, uint8_t moveMode,
521                              uint8_t rate);
522     CHIP_ERROR Step(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback, uint8_t stepMode,
523                     uint8_t stepSize, uint16_t transitionTime, uint8_t optionMask, uint8_t optionOverride);
524     CHIP_ERROR StepWithOnOff(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback, uint8_t stepMode,
525                              uint8_t stepSize, uint16_t transitionTime);
526     CHIP_ERROR Stop(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback, uint8_t optionMask,
527                     uint8_t optionOverride);
528     CHIP_ERROR StopWithOnOff(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
529
530     // Cluster Attributes
531     CHIP_ERROR DiscoverAttributes(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
532     CHIP_ERROR ReadAttributeCurrentLevel(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
533     CHIP_ERROR ReadAttributeClusterRevision(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
534     CHIP_ERROR ConfigureAttributeCurrentLevel(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback,
535                                               uint16_t minInterval, uint16_t maxInterval, uint8_t change);
536     CHIP_ERROR ReportAttributeCurrentLevel(Callback::Cancelable * onReportCallback);
537
538 private:
539     static constexpr CommandId kMoveCommandId                 = 0x01;
540     static constexpr CommandId kMoveToLevelCommandId          = 0x00;
541     static constexpr CommandId kMoveToLevelWithOnOffCommandId = 0x04;
542     static constexpr CommandId kMoveWithOnOffCommandId        = 0x05;
543     static constexpr CommandId kStepCommandId                 = 0x02;
544     static constexpr CommandId kStepWithOnOffCommandId        = 0x06;
545     static constexpr CommandId kStopCommandId                 = 0x03;
546     static constexpr CommandId kStopWithOnOffCommandId        = 0x07;
547 };
548
549 class DLL_EXPORT LowPowerCluster : public ClusterBase
550 {
551 public:
552     LowPowerCluster() : ClusterBase(kLowPowerClusterId) {}
553     ~LowPowerCluster() {}
554
555     // Cluster Commands
556     CHIP_ERROR Sleep(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
557
558     // Cluster Attributes
559     CHIP_ERROR DiscoverAttributes(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
560     CHIP_ERROR ReadAttributeClusterRevision(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
561
562 private:
563     static constexpr CommandId kSleepCommandId = 0x00;
564 };
565
566 class DLL_EXPORT MediaPlaybackCluster : public ClusterBase
567 {
568 public:
569     MediaPlaybackCluster() : ClusterBase(kMediaPlaybackClusterId) {}
570     ~MediaPlaybackCluster() {}
571
572     // Cluster Commands
573     CHIP_ERROR FastForwardRequest(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
574     CHIP_ERROR NextRequest(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
575     CHIP_ERROR PauseRequest(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
576     CHIP_ERROR PlayRequest(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
577     CHIP_ERROR PreviousRequest(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
578     CHIP_ERROR RewindRequest(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
579     CHIP_ERROR SkipBackwardRequest(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
580     CHIP_ERROR SkipForwardRequest(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
581     CHIP_ERROR StartOverRequest(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
582     CHIP_ERROR StopRequest(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
583
584     // Cluster Attributes
585     CHIP_ERROR DiscoverAttributes(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
586     CHIP_ERROR ReadAttributeCurrentState(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
587     CHIP_ERROR ReadAttributeClusterRevision(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
588
589 private:
590     static constexpr CommandId kFastForwardRequestCommandId  = 0x07;
591     static constexpr CommandId kNextRequestCommandId         = 0x05;
592     static constexpr CommandId kPauseRequestCommandId        = 0x01;
593     static constexpr CommandId kPlayRequestCommandId         = 0x00;
594     static constexpr CommandId kPreviousRequestCommandId     = 0x04;
595     static constexpr CommandId kRewindRequestCommandId       = 0x06;
596     static constexpr CommandId kSkipBackwardRequestCommandId = 0x09;
597     static constexpr CommandId kSkipForwardRequestCommandId  = 0x08;
598     static constexpr CommandId kStartOverRequestCommandId    = 0x03;
599     static constexpr CommandId kStopRequestCommandId         = 0x02;
600 };
601
602 class DLL_EXPORT NetworkCommissioningCluster : public ClusterBase
603 {
604 public:
605     NetworkCommissioningCluster() : ClusterBase(kNetworkCommissioningClusterId) {}
606     ~NetworkCommissioningCluster() {}
607
608     // Cluster Commands
609     CHIP_ERROR AddThreadNetwork(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback,
610                                 chip::ByteSpan operationalDataset, uint64_t breadcrumb, uint32_t timeoutMs);
611     CHIP_ERROR AddWiFiNetwork(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback,
612                               chip::ByteSpan ssid, chip::ByteSpan credentials, uint64_t breadcrumb, uint32_t timeoutMs);
613     CHIP_ERROR DisableNetwork(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback,
614                               chip::ByteSpan networkID, uint64_t breadcrumb, uint32_t timeoutMs);
615     CHIP_ERROR EnableNetwork(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback,
616                              chip::ByteSpan networkID, uint64_t breadcrumb, uint32_t timeoutMs);
617     CHIP_ERROR GetLastNetworkCommissioningResult(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback,
618                                                  uint32_t timeoutMs);
619     CHIP_ERROR RemoveNetwork(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback,
620                              chip::ByteSpan networkID, uint64_t breadcrumb, uint32_t timeoutMs);
621     CHIP_ERROR ScanNetworks(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback, chip::ByteSpan ssid,
622                             uint64_t breadcrumb, uint32_t timeoutMs);
623     CHIP_ERROR UpdateThreadNetwork(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback,
624                                    chip::ByteSpan operationalDataset, uint64_t breadcrumb, uint32_t timeoutMs);
625     CHIP_ERROR UpdateWiFiNetwork(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback,
626                                  chip::ByteSpan ssid, chip::ByteSpan credentials, uint64_t breadcrumb, uint32_t timeoutMs);
627
628     // Cluster Attributes
629     CHIP_ERROR DiscoverAttributes(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
630     CHIP_ERROR ReadAttributeClusterRevision(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
631
632 private:
633     static constexpr CommandId kAddThreadNetworkCommandId                  = 0x06;
634     static constexpr CommandId kAddWiFiNetworkCommandId                    = 0x02;
635     static constexpr CommandId kDisableNetworkCommandId                    = 0x0E;
636     static constexpr CommandId kEnableNetworkCommandId                     = 0x0C;
637     static constexpr CommandId kGetLastNetworkCommissioningResultCommandId = 0x10;
638     static constexpr CommandId kRemoveNetworkCommandId                     = 0x0A;
639     static constexpr CommandId kScanNetworksCommandId                      = 0x00;
640     static constexpr CommandId kUpdateThreadNetworkCommandId               = 0x08;
641     static constexpr CommandId kUpdateWiFiNetworkCommandId                 = 0x04;
642 };
643
644 class DLL_EXPORT OnOffCluster : public ClusterBase
645 {
646 public:
647     OnOffCluster() : ClusterBase(kOnOffClusterId) {}
648     ~OnOffCluster() {}
649
650     // Cluster Commands
651     CHIP_ERROR Off(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
652     CHIP_ERROR On(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
653     CHIP_ERROR Toggle(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
654
655     // Cluster Attributes
656     CHIP_ERROR DiscoverAttributes(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
657     CHIP_ERROR ReadAttributeOnOff(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
658     CHIP_ERROR ReadAttributeClusterRevision(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
659     CHIP_ERROR ConfigureAttributeOnOff(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback,
660                                        uint16_t minInterval, uint16_t maxInterval);
661     CHIP_ERROR ReportAttributeOnOff(Callback::Cancelable * onReportCallback);
662
663 private:
664     static constexpr CommandId kOffCommandId    = 0x00;
665     static constexpr CommandId kOnCommandId     = 0x01;
666     static constexpr CommandId kToggleCommandId = 0x02;
667 };
668
669 class DLL_EXPORT ScenesCluster : public ClusterBase
670 {
671 public:
672     ScenesCluster() : ClusterBase(kScenesClusterId) {}
673     ~ScenesCluster() {}
674
675     // Cluster Commands
676     CHIP_ERROR AddScene(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback, uint16_t groupId,
677                         uint8_t sceneId, uint16_t transitionTime, chip::ByteSpan sceneName, chip::ClusterId clusterId,
678                         uint8_t length, uint8_t value);
679     CHIP_ERROR GetSceneMembership(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback,
680                                   uint16_t groupId);
681     CHIP_ERROR RecallScene(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback, uint16_t groupId,
682                            uint8_t sceneId, uint16_t transitionTime);
683     CHIP_ERROR RemoveAllScenes(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback,
684                                uint16_t groupId);
685     CHIP_ERROR RemoveScene(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback, uint16_t groupId,
686                            uint8_t sceneId);
687     CHIP_ERROR StoreScene(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback, uint16_t groupId,
688                           uint8_t sceneId);
689     CHIP_ERROR ViewScene(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback, uint16_t groupId,
690                          uint8_t sceneId);
691
692     // Cluster Attributes
693     CHIP_ERROR DiscoverAttributes(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
694     CHIP_ERROR ReadAttributeSceneCount(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
695     CHIP_ERROR ReadAttributeCurrentScene(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
696     CHIP_ERROR ReadAttributeCurrentGroup(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
697     CHIP_ERROR ReadAttributeSceneValid(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
698     CHIP_ERROR ReadAttributeNameSupport(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
699     CHIP_ERROR ReadAttributeClusterRevision(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
700
701 private:
702     static constexpr CommandId kAddSceneCommandId           = 0x00;
703     static constexpr CommandId kGetSceneMembershipCommandId = 0x06;
704     static constexpr CommandId kRecallSceneCommandId        = 0x05;
705     static constexpr CommandId kRemoveAllScenesCommandId    = 0x03;
706     static constexpr CommandId kRemoveSceneCommandId        = 0x02;
707     static constexpr CommandId kStoreSceneCommandId         = 0x04;
708     static constexpr CommandId kViewSceneCommandId          = 0x01;
709 };
710
711 class DLL_EXPORT TemperatureMeasurementCluster : public ClusterBase
712 {
713 public:
714     TemperatureMeasurementCluster() : ClusterBase(kTemperatureMeasurementClusterId) {}
715     ~TemperatureMeasurementCluster() {}
716
717     // Cluster Attributes
718     CHIP_ERROR DiscoverAttributes(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
719     CHIP_ERROR ReadAttributeMeasuredValue(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
720     CHIP_ERROR ReadAttributeMinMeasuredValue(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
721     CHIP_ERROR ReadAttributeMaxMeasuredValue(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
722     CHIP_ERROR ReadAttributeClusterRevision(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback);
723     CHIP_ERROR ConfigureAttributeMeasuredValue(Callback::Cancelable * onSuccessCallback, Callback::Cancelable * onFailureCallback,
724                                                uint16_t minInterval, uint16_t maxInterval, int16_t change);
725     CHIP_ERROR ReportAttributeMeasuredValue(Callback::Cancelable * onReportCallback);
726 };
727
728 } // namespace Controller
729 } // namespace chip