Coverage Report

Created: 2026-03-27 06:51

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/connectedhomeip/zzz_generated/app-common/clusters/ScenesManagement/Commands.h
Line
Count
Source
1
/*
2
 *
3
 *    Copyright (c) 2022 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
// This file is generated from clusters-Commands.h.zapt
20
21
#pragma once
22
23
#include <app/data-model/DecodableList.h>
24
#include <app/data-model/Encode.h>
25
#include <app/data-model/List.h>
26
#include <app/data-model/NullObject.h>
27
#include <app/data-model/Nullable.h>
28
#include <lib/core/DataModelTypes.h>
29
#include <lib/core/Optional.h>
30
#include <lib/core/TLV.h>
31
#include <lib/support/BitMask.h>
32
33
#include <clusters/shared/Enums.h>
34
#include <clusters/shared/Structs.h>
35
36
#include <clusters/ScenesManagement/ClusterId.h>
37
#include <clusters/ScenesManagement/CommandIds.h>
38
#include <clusters/ScenesManagement/Enums.h>
39
#include <clusters/ScenesManagement/Structs.h>
40
41
#include <cstdint>
42
43
namespace chip {
44
namespace app {
45
namespace Clusters {
46
namespace ScenesManagement {
47
namespace Commands {
48
// Forward-declarations so we can reference these later.
49
50
namespace AddScene {
51
struct Type;
52
struct DecodableType;
53
} // namespace AddScene
54
55
namespace AddSceneResponse {
56
struct Type;
57
struct DecodableType;
58
} // namespace AddSceneResponse
59
60
namespace ViewScene {
61
struct Type;
62
struct DecodableType;
63
} // namespace ViewScene
64
65
namespace ViewSceneResponse {
66
struct Type;
67
struct DecodableType;
68
} // namespace ViewSceneResponse
69
70
namespace RemoveScene {
71
struct Type;
72
struct DecodableType;
73
} // namespace RemoveScene
74
75
namespace RemoveSceneResponse {
76
struct Type;
77
struct DecodableType;
78
} // namespace RemoveSceneResponse
79
80
namespace RemoveAllScenes {
81
struct Type;
82
struct DecodableType;
83
} // namespace RemoveAllScenes
84
85
namespace RemoveAllScenesResponse {
86
struct Type;
87
struct DecodableType;
88
} // namespace RemoveAllScenesResponse
89
90
namespace StoreScene {
91
struct Type;
92
struct DecodableType;
93
} // namespace StoreScene
94
95
namespace StoreSceneResponse {
96
struct Type;
97
struct DecodableType;
98
} // namespace StoreSceneResponse
99
100
namespace RecallScene {
101
struct Type;
102
struct DecodableType;
103
} // namespace RecallScene
104
105
namespace GetSceneMembership {
106
struct Type;
107
struct DecodableType;
108
} // namespace GetSceneMembership
109
110
namespace GetSceneMembershipResponse {
111
struct Type;
112
struct DecodableType;
113
} // namespace GetSceneMembershipResponse
114
115
namespace CopyScene {
116
struct Type;
117
struct DecodableType;
118
} // namespace CopyScene
119
120
namespace CopySceneResponse {
121
struct Type;
122
struct DecodableType;
123
} // namespace CopySceneResponse
124
125
} // namespace Commands
126
127
namespace Commands {
128
namespace AddScene {
129
enum class Fields : uint8_t
130
{
131
    kGroupID                  = 0,
132
    kSceneID                  = 1,
133
    kTransitionTime           = 2,
134
    kSceneName                = 3,
135
    kExtensionFieldSetStructs = 4,
136
};
137
138
struct Type
139
{
140
public:
141
    // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand
142
0
    static constexpr CommandId GetCommandId() { return Commands::AddScene::Id; }
143
0
    static constexpr ClusterId GetClusterId() { return Clusters::ScenesManagement::Id; }
144
145
    chip::GroupId groupID   = static_cast<chip::GroupId>(0);
146
    uint8_t sceneID         = static_cast<uint8_t>(0);
147
    uint32_t transitionTime = static_cast<uint32_t>(0);
148
    chip::CharSpan sceneName;
149
    DataModel::List<const Structs::ExtensionFieldSetStruct::Type> extensionFieldSetStructs;
150
151
    CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
152
153
    using ResponseType = Clusters::ScenesManagement::Commands::AddSceneResponse::DecodableType;
154
155
0
    static constexpr bool MustUseTimedInvoke() { return false; }
156
};
157
158
struct DecodableType
159
{
160
public:
161
0
    static constexpr CommandId GetCommandId() { return Commands::AddScene::Id; }
162
0
    static constexpr ClusterId GetClusterId() { return Clusters::ScenesManagement::Id; }
163
    static constexpr bool kIsFabricScoped = true;
164
165
    chip::GroupId groupID   = static_cast<chip::GroupId>(0);
166
    uint8_t sceneID         = static_cast<uint8_t>(0);
167
    uint32_t transitionTime = static_cast<uint32_t>(0);
168
    chip::CharSpan sceneName;
169
    DataModel::DecodableList<Structs::ExtensionFieldSetStruct::DecodableType> extensionFieldSetStructs;
170
171
    CHIP_ERROR Decode(TLV::TLVReader & reader, FabricIndex aAccessingFabricIndex);
172
};
173
}; // namespace AddScene
174
namespace AddSceneResponse {
175
enum class Fields : uint8_t
176
{
177
    kStatus  = 0,
178
    kGroupID = 1,
179
    kSceneID = 2,
180
};
181
182
struct Type
183
{
184
public:
185
    // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand
186
0
    static constexpr CommandId GetCommandId() { return Commands::AddSceneResponse::Id; }
187
0
    static constexpr ClusterId GetClusterId() { return Clusters::ScenesManagement::Id; }
188
189
    uint8_t status        = static_cast<uint8_t>(0);
190
    chip::GroupId groupID = static_cast<chip::GroupId>(0);
191
    uint8_t sceneID       = static_cast<uint8_t>(0);
192
193
    CHIP_ERROR Encode(DataModel::FabricAwareTLVWriter & aWriter, TLV::Tag aTag) const;
194
195
    using ResponseType = DataModel::NullObjectType;
196
197
0
    static constexpr bool MustUseTimedInvoke() { return false; }
198
};
199
200
struct DecodableType
201
{
202
public:
203
0
    static constexpr CommandId GetCommandId() { return Commands::AddSceneResponse::Id; }
204
0
    static constexpr ClusterId GetClusterId() { return Clusters::ScenesManagement::Id; }
205
206
    uint8_t status        = static_cast<uint8_t>(0);
207
    chip::GroupId groupID = static_cast<chip::GroupId>(0);
208
    uint8_t sceneID       = static_cast<uint8_t>(0);
209
210
    CHIP_ERROR Decode(TLV::TLVReader & reader);
211
};
212
}; // namespace AddSceneResponse
213
namespace ViewScene {
214
enum class Fields : uint8_t
215
{
216
    kGroupID = 0,
217
    kSceneID = 1,
218
};
219
220
struct Type
221
{
222
public:
223
    // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand
224
0
    static constexpr CommandId GetCommandId() { return Commands::ViewScene::Id; }
225
0
    static constexpr ClusterId GetClusterId() { return Clusters::ScenesManagement::Id; }
226
227
    chip::GroupId groupID = static_cast<chip::GroupId>(0);
228
    uint8_t sceneID       = static_cast<uint8_t>(0);
229
230
    CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
231
232
    using ResponseType = Clusters::ScenesManagement::Commands::ViewSceneResponse::DecodableType;
233
234
0
    static constexpr bool MustUseTimedInvoke() { return false; }
235
};
236
237
struct DecodableType
238
{
239
public:
240
0
    static constexpr CommandId GetCommandId() { return Commands::ViewScene::Id; }
241
0
    static constexpr ClusterId GetClusterId() { return Clusters::ScenesManagement::Id; }
242
    static constexpr bool kIsFabricScoped = true;
243
244
    chip::GroupId groupID = static_cast<chip::GroupId>(0);
245
    uint8_t sceneID       = static_cast<uint8_t>(0);
246
247
    CHIP_ERROR Decode(TLV::TLVReader & reader, FabricIndex aAccessingFabricIndex);
248
};
249
}; // namespace ViewScene
250
namespace ViewSceneResponse {
251
enum class Fields : uint8_t
252
{
253
    kStatus                   = 0,
254
    kGroupID                  = 1,
255
    kSceneID                  = 2,
256
    kTransitionTime           = 3,
257
    kSceneName                = 4,
258
    kExtensionFieldSetStructs = 5,
259
};
260
261
struct Type
262
{
263
public:
264
    // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand
265
0
    static constexpr CommandId GetCommandId() { return Commands::ViewSceneResponse::Id; }
266
0
    static constexpr ClusterId GetClusterId() { return Clusters::ScenesManagement::Id; }
267
268
    uint8_t status        = static_cast<uint8_t>(0);
269
    chip::GroupId groupID = static_cast<chip::GroupId>(0);
270
    uint8_t sceneID       = static_cast<uint8_t>(0);
271
    Optional<uint32_t> transitionTime;
272
    Optional<chip::CharSpan> sceneName;
273
    Optional<DataModel::List<const Structs::ExtensionFieldSetStruct::Type>> extensionFieldSetStructs;
274
275
    CHIP_ERROR Encode(DataModel::FabricAwareTLVWriter & aWriter, TLV::Tag aTag) const;
276
277
    using ResponseType = DataModel::NullObjectType;
278
279
0
    static constexpr bool MustUseTimedInvoke() { return false; }
280
};
281
282
struct DecodableType
283
{
284
public:
285
0
    static constexpr CommandId GetCommandId() { return Commands::ViewSceneResponse::Id; }
286
0
    static constexpr ClusterId GetClusterId() { return Clusters::ScenesManagement::Id; }
287
288
    uint8_t status        = static_cast<uint8_t>(0);
289
    chip::GroupId groupID = static_cast<chip::GroupId>(0);
290
    uint8_t sceneID       = static_cast<uint8_t>(0);
291
    Optional<uint32_t> transitionTime;
292
    Optional<chip::CharSpan> sceneName;
293
    Optional<DataModel::DecodableList<Structs::ExtensionFieldSetStruct::DecodableType>> extensionFieldSetStructs;
294
295
    CHIP_ERROR Decode(TLV::TLVReader & reader);
296
};
297
}; // namespace ViewSceneResponse
298
namespace RemoveScene {
299
enum class Fields : uint8_t
300
{
301
    kGroupID = 0,
302
    kSceneID = 1,
303
};
304
305
struct Type
306
{
307
public:
308
    // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand
309
0
    static constexpr CommandId GetCommandId() { return Commands::RemoveScene::Id; }
310
0
    static constexpr ClusterId GetClusterId() { return Clusters::ScenesManagement::Id; }
311
312
    chip::GroupId groupID = static_cast<chip::GroupId>(0);
313
    uint8_t sceneID       = static_cast<uint8_t>(0);
314
315
    CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
316
317
    using ResponseType = Clusters::ScenesManagement::Commands::RemoveSceneResponse::DecodableType;
318
319
0
    static constexpr bool MustUseTimedInvoke() { return false; }
320
};
321
322
struct DecodableType
323
{
324
public:
325
0
    static constexpr CommandId GetCommandId() { return Commands::RemoveScene::Id; }
326
0
    static constexpr ClusterId GetClusterId() { return Clusters::ScenesManagement::Id; }
327
    static constexpr bool kIsFabricScoped = true;
328
329
    chip::GroupId groupID = static_cast<chip::GroupId>(0);
330
    uint8_t sceneID       = static_cast<uint8_t>(0);
331
332
    CHIP_ERROR Decode(TLV::TLVReader & reader, FabricIndex aAccessingFabricIndex);
333
};
334
}; // namespace RemoveScene
335
namespace RemoveSceneResponse {
336
enum class Fields : uint8_t
337
{
338
    kStatus  = 0,
339
    kGroupID = 1,
340
    kSceneID = 2,
341
};
342
343
struct Type
344
{
345
public:
346
    // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand
347
0
    static constexpr CommandId GetCommandId() { return Commands::RemoveSceneResponse::Id; }
348
0
    static constexpr ClusterId GetClusterId() { return Clusters::ScenesManagement::Id; }
349
350
    uint8_t status        = static_cast<uint8_t>(0);
351
    chip::GroupId groupID = static_cast<chip::GroupId>(0);
352
    uint8_t sceneID       = static_cast<uint8_t>(0);
353
354
    CHIP_ERROR Encode(DataModel::FabricAwareTLVWriter & aWriter, TLV::Tag aTag) const;
355
356
    using ResponseType = DataModel::NullObjectType;
357
358
0
    static constexpr bool MustUseTimedInvoke() { return false; }
359
};
360
361
struct DecodableType
362
{
363
public:
364
0
    static constexpr CommandId GetCommandId() { return Commands::RemoveSceneResponse::Id; }
365
0
    static constexpr ClusterId GetClusterId() { return Clusters::ScenesManagement::Id; }
366
367
    uint8_t status        = static_cast<uint8_t>(0);
368
    chip::GroupId groupID = static_cast<chip::GroupId>(0);
369
    uint8_t sceneID       = static_cast<uint8_t>(0);
370
371
    CHIP_ERROR Decode(TLV::TLVReader & reader);
372
};
373
}; // namespace RemoveSceneResponse
374
namespace RemoveAllScenes {
375
enum class Fields : uint8_t
376
{
377
    kGroupID = 0,
378
};
379
380
struct Type
381
{
382
public:
383
    // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand
384
0
    static constexpr CommandId GetCommandId() { return Commands::RemoveAllScenes::Id; }
385
0
    static constexpr ClusterId GetClusterId() { return Clusters::ScenesManagement::Id; }
386
387
    chip::GroupId groupID = static_cast<chip::GroupId>(0);
388
389
    CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
390
391
    using ResponseType = Clusters::ScenesManagement::Commands::RemoveAllScenesResponse::DecodableType;
392
393
0
    static constexpr bool MustUseTimedInvoke() { return false; }
394
};
395
396
struct DecodableType
397
{
398
public:
399
0
    static constexpr CommandId GetCommandId() { return Commands::RemoveAllScenes::Id; }
400
0
    static constexpr ClusterId GetClusterId() { return Clusters::ScenesManagement::Id; }
401
    static constexpr bool kIsFabricScoped = true;
402
403
    chip::GroupId groupID = static_cast<chip::GroupId>(0);
404
405
    CHIP_ERROR Decode(TLV::TLVReader & reader, FabricIndex aAccessingFabricIndex);
406
};
407
}; // namespace RemoveAllScenes
408
namespace RemoveAllScenesResponse {
409
enum class Fields : uint8_t
410
{
411
    kStatus  = 0,
412
    kGroupID = 1,
413
};
414
415
struct Type
416
{
417
public:
418
    // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand
419
0
    static constexpr CommandId GetCommandId() { return Commands::RemoveAllScenesResponse::Id; }
420
0
    static constexpr ClusterId GetClusterId() { return Clusters::ScenesManagement::Id; }
421
422
    uint8_t status        = static_cast<uint8_t>(0);
423
    chip::GroupId groupID = static_cast<chip::GroupId>(0);
424
425
    CHIP_ERROR Encode(DataModel::FabricAwareTLVWriter & aWriter, TLV::Tag aTag) const;
426
427
    using ResponseType = DataModel::NullObjectType;
428
429
0
    static constexpr bool MustUseTimedInvoke() { return false; }
430
};
431
432
struct DecodableType
433
{
434
public:
435
0
    static constexpr CommandId GetCommandId() { return Commands::RemoveAllScenesResponse::Id; }
436
0
    static constexpr ClusterId GetClusterId() { return Clusters::ScenesManagement::Id; }
437
438
    uint8_t status        = static_cast<uint8_t>(0);
439
    chip::GroupId groupID = static_cast<chip::GroupId>(0);
440
441
    CHIP_ERROR Decode(TLV::TLVReader & reader);
442
};
443
}; // namespace RemoveAllScenesResponse
444
namespace StoreScene {
445
enum class Fields : uint8_t
446
{
447
    kGroupID = 0,
448
    kSceneID = 1,
449
};
450
451
struct Type
452
{
453
public:
454
    // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand
455
0
    static constexpr CommandId GetCommandId() { return Commands::StoreScene::Id; }
456
0
    static constexpr ClusterId GetClusterId() { return Clusters::ScenesManagement::Id; }
457
458
    chip::GroupId groupID = static_cast<chip::GroupId>(0);
459
    uint8_t sceneID       = static_cast<uint8_t>(0);
460
461
    CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
462
463
    using ResponseType = Clusters::ScenesManagement::Commands::StoreSceneResponse::DecodableType;
464
465
0
    static constexpr bool MustUseTimedInvoke() { return false; }
466
};
467
468
struct DecodableType
469
{
470
public:
471
0
    static constexpr CommandId GetCommandId() { return Commands::StoreScene::Id; }
472
0
    static constexpr ClusterId GetClusterId() { return Clusters::ScenesManagement::Id; }
473
    static constexpr bool kIsFabricScoped = true;
474
475
    chip::GroupId groupID = static_cast<chip::GroupId>(0);
476
    uint8_t sceneID       = static_cast<uint8_t>(0);
477
478
    CHIP_ERROR Decode(TLV::TLVReader & reader, FabricIndex aAccessingFabricIndex);
479
};
480
}; // namespace StoreScene
481
namespace StoreSceneResponse {
482
enum class Fields : uint8_t
483
{
484
    kStatus  = 0,
485
    kGroupID = 1,
486
    kSceneID = 2,
487
};
488
489
struct Type
490
{
491
public:
492
    // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand
493
0
    static constexpr CommandId GetCommandId() { return Commands::StoreSceneResponse::Id; }
494
0
    static constexpr ClusterId GetClusterId() { return Clusters::ScenesManagement::Id; }
495
496
    uint8_t status        = static_cast<uint8_t>(0);
497
    chip::GroupId groupID = static_cast<chip::GroupId>(0);
498
    uint8_t sceneID       = static_cast<uint8_t>(0);
499
500
    CHIP_ERROR Encode(DataModel::FabricAwareTLVWriter & aWriter, TLV::Tag aTag) const;
501
502
    using ResponseType = DataModel::NullObjectType;
503
504
0
    static constexpr bool MustUseTimedInvoke() { return false; }
505
};
506
507
struct DecodableType
508
{
509
public:
510
0
    static constexpr CommandId GetCommandId() { return Commands::StoreSceneResponse::Id; }
511
0
    static constexpr ClusterId GetClusterId() { return Clusters::ScenesManagement::Id; }
512
513
    uint8_t status        = static_cast<uint8_t>(0);
514
    chip::GroupId groupID = static_cast<chip::GroupId>(0);
515
    uint8_t sceneID       = static_cast<uint8_t>(0);
516
517
    CHIP_ERROR Decode(TLV::TLVReader & reader);
518
};
519
}; // namespace StoreSceneResponse
520
namespace RecallScene {
521
enum class Fields : uint8_t
522
{
523
    kGroupID        = 0,
524
    kSceneID        = 1,
525
    kTransitionTime = 2,
526
};
527
528
struct Type
529
{
530
public:
531
    // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand
532
0
    static constexpr CommandId GetCommandId() { return Commands::RecallScene::Id; }
533
0
    static constexpr ClusterId GetClusterId() { return Clusters::ScenesManagement::Id; }
534
535
    chip::GroupId groupID = static_cast<chip::GroupId>(0);
536
    uint8_t sceneID       = static_cast<uint8_t>(0);
537
    Optional<DataModel::Nullable<uint32_t>> transitionTime;
538
539
    CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
540
541
    using ResponseType = DataModel::NullObjectType;
542
543
0
    static constexpr bool MustUseTimedInvoke() { return false; }
544
};
545
546
struct DecodableType
547
{
548
public:
549
0
    static constexpr CommandId GetCommandId() { return Commands::RecallScene::Id; }
550
0
    static constexpr ClusterId GetClusterId() { return Clusters::ScenesManagement::Id; }
551
    static constexpr bool kIsFabricScoped = true;
552
553
    chip::GroupId groupID = static_cast<chip::GroupId>(0);
554
    uint8_t sceneID       = static_cast<uint8_t>(0);
555
    Optional<DataModel::Nullable<uint32_t>> transitionTime;
556
557
    CHIP_ERROR Decode(TLV::TLVReader & reader, FabricIndex aAccessingFabricIndex);
558
};
559
}; // namespace RecallScene
560
namespace GetSceneMembership {
561
enum class Fields : uint8_t
562
{
563
    kGroupID = 0,
564
};
565
566
struct Type
567
{
568
public:
569
    // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand
570
0
    static constexpr CommandId GetCommandId() { return Commands::GetSceneMembership::Id; }
571
0
    static constexpr ClusterId GetClusterId() { return Clusters::ScenesManagement::Id; }
572
573
    chip::GroupId groupID = static_cast<chip::GroupId>(0);
574
575
    CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
576
577
    using ResponseType = Clusters::ScenesManagement::Commands::GetSceneMembershipResponse::DecodableType;
578
579
0
    static constexpr bool MustUseTimedInvoke() { return false; }
580
};
581
582
struct DecodableType
583
{
584
public:
585
0
    static constexpr CommandId GetCommandId() { return Commands::GetSceneMembership::Id; }
586
0
    static constexpr ClusterId GetClusterId() { return Clusters::ScenesManagement::Id; }
587
    static constexpr bool kIsFabricScoped = true;
588
589
    chip::GroupId groupID = static_cast<chip::GroupId>(0);
590
591
    CHIP_ERROR Decode(TLV::TLVReader & reader, FabricIndex aAccessingFabricIndex);
592
};
593
}; // namespace GetSceneMembership
594
namespace GetSceneMembershipResponse {
595
enum class Fields : uint8_t
596
{
597
    kStatus    = 0,
598
    kCapacity  = 1,
599
    kGroupID   = 2,
600
    kSceneList = 3,
601
};
602
603
struct Type
604
{
605
public:
606
    // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand
607
0
    static constexpr CommandId GetCommandId() { return Commands::GetSceneMembershipResponse::Id; }
608
0
    static constexpr ClusterId GetClusterId() { return Clusters::ScenesManagement::Id; }
609
610
    uint8_t status = static_cast<uint8_t>(0);
611
    DataModel::Nullable<uint8_t> capacity;
612
    chip::GroupId groupID = static_cast<chip::GroupId>(0);
613
    Optional<DataModel::List<const uint8_t>> sceneList;
614
615
    CHIP_ERROR Encode(DataModel::FabricAwareTLVWriter & aWriter, TLV::Tag aTag) const;
616
617
    using ResponseType = DataModel::NullObjectType;
618
619
0
    static constexpr bool MustUseTimedInvoke() { return false; }
620
};
621
622
struct DecodableType
623
{
624
public:
625
0
    static constexpr CommandId GetCommandId() { return Commands::GetSceneMembershipResponse::Id; }
626
0
    static constexpr ClusterId GetClusterId() { return Clusters::ScenesManagement::Id; }
627
628
    uint8_t status = static_cast<uint8_t>(0);
629
    DataModel::Nullable<uint8_t> capacity;
630
    chip::GroupId groupID = static_cast<chip::GroupId>(0);
631
    Optional<DataModel::DecodableList<uint8_t>> sceneList;
632
633
    CHIP_ERROR Decode(TLV::TLVReader & reader);
634
};
635
}; // namespace GetSceneMembershipResponse
636
namespace CopyScene {
637
enum class Fields : uint8_t
638
{
639
    kMode                = 0,
640
    kGroupIdentifierFrom = 1,
641
    kSceneIdentifierFrom = 2,
642
    kGroupIdentifierTo   = 3,
643
    kSceneIdentifierTo   = 4,
644
};
645
646
struct Type
647
{
648
public:
649
    // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand
650
0
    static constexpr CommandId GetCommandId() { return Commands::CopyScene::Id; }
651
0
    static constexpr ClusterId GetClusterId() { return Clusters::ScenesManagement::Id; }
652
653
    chip::BitMask<CopyModeBitmap> mode = static_cast<chip::BitMask<CopyModeBitmap>>(0);
654
    chip::GroupId groupIdentifierFrom  = static_cast<chip::GroupId>(0);
655
    uint8_t sceneIdentifierFrom        = static_cast<uint8_t>(0);
656
    chip::GroupId groupIdentifierTo    = static_cast<chip::GroupId>(0);
657
    uint8_t sceneIdentifierTo          = static_cast<uint8_t>(0);
658
659
    CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
660
661
    using ResponseType = Clusters::ScenesManagement::Commands::CopySceneResponse::DecodableType;
662
663
0
    static constexpr bool MustUseTimedInvoke() { return false; }
664
};
665
666
struct DecodableType
667
{
668
public:
669
0
    static constexpr CommandId GetCommandId() { return Commands::CopyScene::Id; }
670
0
    static constexpr ClusterId GetClusterId() { return Clusters::ScenesManagement::Id; }
671
    static constexpr bool kIsFabricScoped = true;
672
673
    chip::BitMask<CopyModeBitmap> mode = static_cast<chip::BitMask<CopyModeBitmap>>(0);
674
    chip::GroupId groupIdentifierFrom  = static_cast<chip::GroupId>(0);
675
    uint8_t sceneIdentifierFrom        = static_cast<uint8_t>(0);
676
    chip::GroupId groupIdentifierTo    = static_cast<chip::GroupId>(0);
677
    uint8_t sceneIdentifierTo          = static_cast<uint8_t>(0);
678
679
    CHIP_ERROR Decode(TLV::TLVReader & reader, FabricIndex aAccessingFabricIndex);
680
};
681
}; // namespace CopyScene
682
namespace CopySceneResponse {
683
enum class Fields : uint8_t
684
{
685
    kStatus              = 0,
686
    kGroupIdentifierFrom = 1,
687
    kSceneIdentifierFrom = 2,
688
};
689
690
struct Type
691
{
692
public:
693
    // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand
694
0
    static constexpr CommandId GetCommandId() { return Commands::CopySceneResponse::Id; }
695
0
    static constexpr ClusterId GetClusterId() { return Clusters::ScenesManagement::Id; }
696
697
    uint8_t status                    = static_cast<uint8_t>(0);
698
    chip::GroupId groupIdentifierFrom = static_cast<chip::GroupId>(0);
699
    uint8_t sceneIdentifierFrom       = static_cast<uint8_t>(0);
700
701
    CHIP_ERROR Encode(DataModel::FabricAwareTLVWriter & aWriter, TLV::Tag aTag) const;
702
703
    using ResponseType = DataModel::NullObjectType;
704
705
0
    static constexpr bool MustUseTimedInvoke() { return false; }
706
};
707
708
struct DecodableType
709
{
710
public:
711
0
    static constexpr CommandId GetCommandId() { return Commands::CopySceneResponse::Id; }
712
0
    static constexpr ClusterId GetClusterId() { return Clusters::ScenesManagement::Id; }
713
714
    uint8_t status                    = static_cast<uint8_t>(0);
715
    chip::GroupId groupIdentifierFrom = static_cast<chip::GroupId>(0);
716
    uint8_t sceneIdentifierFrom       = static_cast<uint8_t>(0);
717
718
    CHIP_ERROR Decode(TLV::TLVReader & reader);
719
};
720
}; // namespace CopySceneResponse
721
} // namespace Commands
722
} // namespace ScenesManagement
723
} // namespace Clusters
724
} // namespace app
725
} // namespace chip