Coverage Report

Created: 2026-09-24 06:58

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/connectedhomeip/zzz_generated/app-common/clusters/TlsCertificateManagement/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/TlsCertificateManagement/ClusterId.h>
37
#include <clusters/TlsCertificateManagement/CommandIds.h>
38
#include <clusters/TlsCertificateManagement/Enums.h>
39
#include <clusters/TlsCertificateManagement/Structs.h>
40
41
#include <cstdint>
42
43
namespace chip {
44
namespace app {
45
namespace Clusters {
46
namespace TlsCertificateManagement {
47
namespace Commands {
48
// Forward-declarations so we can reference these later.
49
50
namespace ProvisionRootCertificate {
51
struct Type;
52
struct DecodableType;
53
} // namespace ProvisionRootCertificate
54
55
namespace ProvisionRootCertificateResponse {
56
struct Type;
57
struct DecodableType;
58
} // namespace ProvisionRootCertificateResponse
59
60
namespace FindRootCertificate {
61
struct Type;
62
struct DecodableType;
63
} // namespace FindRootCertificate
64
65
namespace FindRootCertificateResponse {
66
struct Type;
67
struct DecodableType;
68
} // namespace FindRootCertificateResponse
69
70
namespace LookupRootCertificate {
71
struct Type;
72
struct DecodableType;
73
} // namespace LookupRootCertificate
74
75
namespace LookupRootCertificateResponse {
76
struct Type;
77
struct DecodableType;
78
} // namespace LookupRootCertificateResponse
79
80
namespace RemoveRootCertificate {
81
struct Type;
82
struct DecodableType;
83
} // namespace RemoveRootCertificate
84
85
namespace ClientCSR {
86
struct Type;
87
struct DecodableType;
88
} // namespace ClientCSR
89
90
namespace ClientCSRResponse {
91
struct Type;
92
struct DecodableType;
93
} // namespace ClientCSRResponse
94
95
namespace ProvisionClientCertificate {
96
struct Type;
97
struct DecodableType;
98
} // namespace ProvisionClientCertificate
99
100
namespace FindClientCertificate {
101
struct Type;
102
struct DecodableType;
103
} // namespace FindClientCertificate
104
105
namespace FindClientCertificateResponse {
106
struct Type;
107
struct DecodableType;
108
} // namespace FindClientCertificateResponse
109
110
namespace LookupClientCertificate {
111
struct Type;
112
struct DecodableType;
113
} // namespace LookupClientCertificate
114
115
namespace LookupClientCertificateResponse {
116
struct Type;
117
struct DecodableType;
118
} // namespace LookupClientCertificateResponse
119
120
namespace RemoveClientCertificate {
121
struct Type;
122
struct DecodableType;
123
} // namespace RemoveClientCertificate
124
125
} // namespace Commands
126
127
namespace Commands {
128
namespace ProvisionRootCertificate {
129
enum class Fields : uint8_t
130
{
131
    kCertificate = 0,
132
    kCaid        = 1,
133
};
134
135
struct Type
136
{
137
public:
138
    // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand
139
0
    static constexpr CommandId GetCommandId() { return Commands::ProvisionRootCertificate::Id; }
140
0
    static constexpr ClusterId GetClusterId() { return Clusters::TlsCertificateManagement::Id; }
141
142
    chip::ByteSpan certificate;
143
    DataModel::Nullable<uint16_t> caid;
144
145
    CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
146
147
    using ResponseType = Clusters::TlsCertificateManagement::Commands::ProvisionRootCertificateResponse::DecodableType;
148
149
0
    static constexpr bool MustUseTimedInvoke() { return false; }
150
};
151
152
struct DecodableType
153
{
154
public:
155
0
    static constexpr CommandId GetCommandId() { return Commands::ProvisionRootCertificate::Id; }
156
0
    static constexpr ClusterId GetClusterId() { return Clusters::TlsCertificateManagement::Id; }
157
    static constexpr bool kIsFabricScoped = true;
158
159
    chip::ByteSpan certificate;
160
    DataModel::Nullable<uint16_t> caid;
161
162
    CHIP_ERROR Decode(TLV::TLVReader & reader, FabricIndex aAccessingFabricIndex);
163
};
164
}; // namespace ProvisionRootCertificate
165
namespace ProvisionRootCertificateResponse {
166
enum class Fields : uint8_t
167
{
168
    kCaid = 0,
169
};
170
171
struct Type
172
{
173
public:
174
    // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand
175
0
    static constexpr CommandId GetCommandId() { return Commands::ProvisionRootCertificateResponse::Id; }
176
0
    static constexpr ClusterId GetClusterId() { return Clusters::TlsCertificateManagement::Id; }
177
178
    uint16_t caid = static_cast<uint16_t>(0);
179
180
    CHIP_ERROR Encode(DataModel::FabricAwareTLVWriter & aWriter, TLV::Tag aTag) const;
181
182
    using ResponseType = DataModel::NullObjectType;
183
184
0
    static constexpr bool MustUseTimedInvoke() { return false; }
185
};
186
187
struct DecodableType
188
{
189
public:
190
0
    static constexpr CommandId GetCommandId() { return Commands::ProvisionRootCertificateResponse::Id; }
191
0
    static constexpr ClusterId GetClusterId() { return Clusters::TlsCertificateManagement::Id; }
192
193
    uint16_t caid = static_cast<uint16_t>(0);
194
195
    CHIP_ERROR Decode(TLV::TLVReader & reader);
196
};
197
}; // namespace ProvisionRootCertificateResponse
198
namespace FindRootCertificate {
199
enum class Fields : uint8_t
200
{
201
    kCaid = 0,
202
};
203
204
struct Type
205
{
206
public:
207
    // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand
208
0
    static constexpr CommandId GetCommandId() { return Commands::FindRootCertificate::Id; }
209
0
    static constexpr ClusterId GetClusterId() { return Clusters::TlsCertificateManagement::Id; }
210
211
    DataModel::Nullable<uint16_t> caid;
212
213
    CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
214
215
    using ResponseType = Clusters::TlsCertificateManagement::Commands::FindRootCertificateResponse::DecodableType;
216
217
0
    static constexpr bool MustUseTimedInvoke() { return false; }
218
};
219
220
struct DecodableType
221
{
222
public:
223
0
    static constexpr CommandId GetCommandId() { return Commands::FindRootCertificate::Id; }
224
0
    static constexpr ClusterId GetClusterId() { return Clusters::TlsCertificateManagement::Id; }
225
    static constexpr bool kIsFabricScoped = true;
226
227
    DataModel::Nullable<uint16_t> caid;
228
229
    CHIP_ERROR Decode(TLV::TLVReader & reader, FabricIndex aAccessingFabricIndex);
230
};
231
}; // namespace FindRootCertificate
232
namespace FindRootCertificateResponse {
233
enum class Fields : uint8_t
234
{
235
    kCertificateDetails = 0,
236
};
237
238
struct Type
239
{
240
public:
241
    // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand
242
0
    static constexpr CommandId GetCommandId() { return Commands::FindRootCertificateResponse::Id; }
243
0
    static constexpr ClusterId GetClusterId() { return Clusters::TlsCertificateManagement::Id; }
244
245
    DataModel::List<const Structs::TLSCertStruct::Type> certificateDetails;
246
247
    CHIP_ERROR Encode(DataModel::FabricAwareTLVWriter & aWriter, TLV::Tag aTag) const;
248
249
    using ResponseType = DataModel::NullObjectType;
250
251
0
    static constexpr bool MustUseTimedInvoke() { return false; }
252
};
253
254
struct DecodableType
255
{
256
public:
257
0
    static constexpr CommandId GetCommandId() { return Commands::FindRootCertificateResponse::Id; }
258
0
    static constexpr ClusterId GetClusterId() { return Clusters::TlsCertificateManagement::Id; }
259
260
    DataModel::DecodableList<Structs::TLSCertStruct::DecodableType> certificateDetails;
261
262
    CHIP_ERROR Decode(TLV::TLVReader & reader);
263
};
264
}; // namespace FindRootCertificateResponse
265
namespace LookupRootCertificate {
266
enum class Fields : uint8_t
267
{
268
    kFingerprint = 0,
269
};
270
271
struct Type
272
{
273
public:
274
    // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand
275
0
    static constexpr CommandId GetCommandId() { return Commands::LookupRootCertificate::Id; }
276
0
    static constexpr ClusterId GetClusterId() { return Clusters::TlsCertificateManagement::Id; }
277
278
    chip::ByteSpan fingerprint;
279
280
    CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
281
282
    using ResponseType = Clusters::TlsCertificateManagement::Commands::LookupRootCertificateResponse::DecodableType;
283
284
0
    static constexpr bool MustUseTimedInvoke() { return false; }
285
};
286
287
struct DecodableType
288
{
289
public:
290
0
    static constexpr CommandId GetCommandId() { return Commands::LookupRootCertificate::Id; }
291
0
    static constexpr ClusterId GetClusterId() { return Clusters::TlsCertificateManagement::Id; }
292
    static constexpr bool kIsFabricScoped = true;
293
294
    chip::ByteSpan fingerprint;
295
296
    CHIP_ERROR Decode(TLV::TLVReader & reader, FabricIndex aAccessingFabricIndex);
297
};
298
}; // namespace LookupRootCertificate
299
namespace LookupRootCertificateResponse {
300
enum class Fields : uint8_t
301
{
302
    kCaid = 0,
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::LookupRootCertificateResponse::Id; }
310
0
    static constexpr ClusterId GetClusterId() { return Clusters::TlsCertificateManagement::Id; }
311
312
    uint16_t caid = static_cast<uint16_t>(0);
313
314
    CHIP_ERROR Encode(DataModel::FabricAwareTLVWriter & aWriter, TLV::Tag aTag) const;
315
316
    using ResponseType = DataModel::NullObjectType;
317
318
0
    static constexpr bool MustUseTimedInvoke() { return false; }
319
};
320
321
struct DecodableType
322
{
323
public:
324
0
    static constexpr CommandId GetCommandId() { return Commands::LookupRootCertificateResponse::Id; }
325
0
    static constexpr ClusterId GetClusterId() { return Clusters::TlsCertificateManagement::Id; }
326
327
    uint16_t caid = static_cast<uint16_t>(0);
328
329
    CHIP_ERROR Decode(TLV::TLVReader & reader);
330
};
331
}; // namespace LookupRootCertificateResponse
332
namespace RemoveRootCertificate {
333
enum class Fields : uint8_t
334
{
335
    kCaid = 0,
336
};
337
338
struct Type
339
{
340
public:
341
    // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand
342
0
    static constexpr CommandId GetCommandId() { return Commands::RemoveRootCertificate::Id; }
343
0
    static constexpr ClusterId GetClusterId() { return Clusters::TlsCertificateManagement::Id; }
344
345
    uint16_t caid = static_cast<uint16_t>(0);
346
347
    CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
348
349
    using ResponseType = DataModel::NullObjectType;
350
351
0
    static constexpr bool MustUseTimedInvoke() { return false; }
352
};
353
354
struct DecodableType
355
{
356
public:
357
0
    static constexpr CommandId GetCommandId() { return Commands::RemoveRootCertificate::Id; }
358
0
    static constexpr ClusterId GetClusterId() { return Clusters::TlsCertificateManagement::Id; }
359
    static constexpr bool kIsFabricScoped = true;
360
361
    uint16_t caid = static_cast<uint16_t>(0);
362
363
    CHIP_ERROR Decode(TLV::TLVReader & reader, FabricIndex aAccessingFabricIndex);
364
};
365
}; // namespace RemoveRootCertificate
366
namespace ClientCSR {
367
enum class Fields : uint8_t
368
{
369
    kNonce = 0,
370
    kCcdid = 1,
371
};
372
373
struct Type
374
{
375
public:
376
    // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand
377
0
    static constexpr CommandId GetCommandId() { return Commands::ClientCSR::Id; }
378
0
    static constexpr ClusterId GetClusterId() { return Clusters::TlsCertificateManagement::Id; }
379
380
    chip::ByteSpan nonce;
381
    DataModel::Nullable<uint16_t> ccdid;
382
383
    CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
384
385
    using ResponseType = Clusters::TlsCertificateManagement::Commands::ClientCSRResponse::DecodableType;
386
387
0
    static constexpr bool MustUseTimedInvoke() { return false; }
388
};
389
390
struct DecodableType
391
{
392
public:
393
0
    static constexpr CommandId GetCommandId() { return Commands::ClientCSR::Id; }
394
0
    static constexpr ClusterId GetClusterId() { return Clusters::TlsCertificateManagement::Id; }
395
    static constexpr bool kIsFabricScoped = true;
396
397
    chip::ByteSpan nonce;
398
    DataModel::Nullable<uint16_t> ccdid;
399
400
    CHIP_ERROR Decode(TLV::TLVReader & reader, FabricIndex aAccessingFabricIndex);
401
};
402
}; // namespace ClientCSR
403
namespace ClientCSRResponse {
404
enum class Fields : uint8_t
405
{
406
    kCcdid          = 0,
407
    kCsr            = 1,
408
    kNonceSignature = 2,
409
};
410
411
struct Type
412
{
413
public:
414
    // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand
415
0
    static constexpr CommandId GetCommandId() { return Commands::ClientCSRResponse::Id; }
416
0
    static constexpr ClusterId GetClusterId() { return Clusters::TlsCertificateManagement::Id; }
417
418
    uint16_t ccdid = static_cast<uint16_t>(0);
419
    chip::ByteSpan csr;
420
    chip::ByteSpan nonceSignature;
421
422
    CHIP_ERROR Encode(DataModel::FabricAwareTLVWriter & aWriter, TLV::Tag aTag) const;
423
424
    using ResponseType = DataModel::NullObjectType;
425
426
0
    static constexpr bool MustUseTimedInvoke() { return false; }
427
};
428
429
struct DecodableType
430
{
431
public:
432
0
    static constexpr CommandId GetCommandId() { return Commands::ClientCSRResponse::Id; }
433
0
    static constexpr ClusterId GetClusterId() { return Clusters::TlsCertificateManagement::Id; }
434
435
    uint16_t ccdid = static_cast<uint16_t>(0);
436
    chip::ByteSpan csr;
437
    chip::ByteSpan nonceSignature;
438
439
    CHIP_ERROR Decode(TLV::TLVReader & reader);
440
};
441
}; // namespace ClientCSRResponse
442
namespace ProvisionClientCertificate {
443
enum class Fields : uint8_t
444
{
445
    kCcdid                    = 0,
446
    kClientCertificate        = 1,
447
    kIntermediateCertificates = 2,
448
};
449
450
struct Type
451
{
452
public:
453
    // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand
454
0
    static constexpr CommandId GetCommandId() { return Commands::ProvisionClientCertificate::Id; }
455
0
    static constexpr ClusterId GetClusterId() { return Clusters::TlsCertificateManagement::Id; }
456
457
    uint16_t ccdid = static_cast<uint16_t>(0);
458
    chip::ByteSpan clientCertificate;
459
    DataModel::List<const chip::ByteSpan> intermediateCertificates;
460
461
    CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
462
463
    using ResponseType = DataModel::NullObjectType;
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::ProvisionClientCertificate::Id; }
472
0
    static constexpr ClusterId GetClusterId() { return Clusters::TlsCertificateManagement::Id; }
473
    static constexpr bool kIsFabricScoped = true;
474
475
    uint16_t ccdid = static_cast<uint16_t>(0);
476
    chip::ByteSpan clientCertificate;
477
    DataModel::DecodableList<chip::ByteSpan> intermediateCertificates;
478
479
    CHIP_ERROR Decode(TLV::TLVReader & reader, FabricIndex aAccessingFabricIndex);
480
};
481
}; // namespace ProvisionClientCertificate
482
namespace FindClientCertificate {
483
enum class Fields : uint8_t
484
{
485
    kCcdid = 0,
486
};
487
488
struct Type
489
{
490
public:
491
    // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand
492
0
    static constexpr CommandId GetCommandId() { return Commands::FindClientCertificate::Id; }
493
0
    static constexpr ClusterId GetClusterId() { return Clusters::TlsCertificateManagement::Id; }
494
495
    DataModel::Nullable<uint16_t> ccdid;
496
497
    CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
498
499
    using ResponseType = Clusters::TlsCertificateManagement::Commands::FindClientCertificateResponse::DecodableType;
500
501
0
    static constexpr bool MustUseTimedInvoke() { return false; }
502
};
503
504
struct DecodableType
505
{
506
public:
507
0
    static constexpr CommandId GetCommandId() { return Commands::FindClientCertificate::Id; }
508
0
    static constexpr ClusterId GetClusterId() { return Clusters::TlsCertificateManagement::Id; }
509
    static constexpr bool kIsFabricScoped = true;
510
511
    DataModel::Nullable<uint16_t> ccdid;
512
513
    CHIP_ERROR Decode(TLV::TLVReader & reader, FabricIndex aAccessingFabricIndex);
514
};
515
}; // namespace FindClientCertificate
516
namespace FindClientCertificateResponse {
517
enum class Fields : uint8_t
518
{
519
    kCertificateDetails = 0,
520
};
521
522
struct Type
523
{
524
public:
525
    // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand
526
0
    static constexpr CommandId GetCommandId() { return Commands::FindClientCertificateResponse::Id; }
527
0
    static constexpr ClusterId GetClusterId() { return Clusters::TlsCertificateManagement::Id; }
528
529
    DataModel::List<const Structs::TLSClientCertificateDetailStruct::Type> certificateDetails;
530
531
    CHIP_ERROR Encode(DataModel::FabricAwareTLVWriter & aWriter, TLV::Tag aTag) const;
532
533
    using ResponseType = DataModel::NullObjectType;
534
535
0
    static constexpr bool MustUseTimedInvoke() { return false; }
536
};
537
538
struct DecodableType
539
{
540
public:
541
0
    static constexpr CommandId GetCommandId() { return Commands::FindClientCertificateResponse::Id; }
542
0
    static constexpr ClusterId GetClusterId() { return Clusters::TlsCertificateManagement::Id; }
543
544
    DataModel::DecodableList<Structs::TLSClientCertificateDetailStruct::DecodableType> certificateDetails;
545
546
    CHIP_ERROR Decode(TLV::TLVReader & reader);
547
};
548
}; // namespace FindClientCertificateResponse
549
namespace LookupClientCertificate {
550
enum class Fields : uint8_t
551
{
552
    kFingerprint = 0,
553
};
554
555
struct Type
556
{
557
public:
558
    // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand
559
0
    static constexpr CommandId GetCommandId() { return Commands::LookupClientCertificate::Id; }
560
0
    static constexpr ClusterId GetClusterId() { return Clusters::TlsCertificateManagement::Id; }
561
562
    chip::ByteSpan fingerprint;
563
564
    CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
565
566
    using ResponseType = Clusters::TlsCertificateManagement::Commands::LookupClientCertificateResponse::DecodableType;
567
568
0
    static constexpr bool MustUseTimedInvoke() { return false; }
569
};
570
571
struct DecodableType
572
{
573
public:
574
0
    static constexpr CommandId GetCommandId() { return Commands::LookupClientCertificate::Id; }
575
0
    static constexpr ClusterId GetClusterId() { return Clusters::TlsCertificateManagement::Id; }
576
    static constexpr bool kIsFabricScoped = true;
577
578
    chip::ByteSpan fingerprint;
579
580
    CHIP_ERROR Decode(TLV::TLVReader & reader, FabricIndex aAccessingFabricIndex);
581
};
582
}; // namespace LookupClientCertificate
583
namespace LookupClientCertificateResponse {
584
enum class Fields : uint8_t
585
{
586
    kCcdid = 0,
587
};
588
589
struct Type
590
{
591
public:
592
    // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand
593
0
    static constexpr CommandId GetCommandId() { return Commands::LookupClientCertificateResponse::Id; }
594
0
    static constexpr ClusterId GetClusterId() { return Clusters::TlsCertificateManagement::Id; }
595
596
    uint16_t ccdid = static_cast<uint16_t>(0);
597
598
    CHIP_ERROR Encode(DataModel::FabricAwareTLVWriter & aWriter, TLV::Tag aTag) const;
599
600
    using ResponseType = DataModel::NullObjectType;
601
602
0
    static constexpr bool MustUseTimedInvoke() { return false; }
603
};
604
605
struct DecodableType
606
{
607
public:
608
0
    static constexpr CommandId GetCommandId() { return Commands::LookupClientCertificateResponse::Id; }
609
0
    static constexpr ClusterId GetClusterId() { return Clusters::TlsCertificateManagement::Id; }
610
611
    uint16_t ccdid = static_cast<uint16_t>(0);
612
613
    CHIP_ERROR Decode(TLV::TLVReader & reader);
614
};
615
}; // namespace LookupClientCertificateResponse
616
namespace RemoveClientCertificate {
617
enum class Fields : uint8_t
618
{
619
    kCcdid = 0,
620
};
621
622
struct Type
623
{
624
public:
625
    // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand
626
0
    static constexpr CommandId GetCommandId() { return Commands::RemoveClientCertificate::Id; }
627
0
    static constexpr ClusterId GetClusterId() { return Clusters::TlsCertificateManagement::Id; }
628
629
    uint16_t ccdid = static_cast<uint16_t>(0);
630
631
    CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
632
633
    using ResponseType = DataModel::NullObjectType;
634
635
0
    static constexpr bool MustUseTimedInvoke() { return false; }
636
};
637
638
struct DecodableType
639
{
640
public:
641
0
    static constexpr CommandId GetCommandId() { return Commands::RemoveClientCertificate::Id; }
642
0
    static constexpr ClusterId GetClusterId() { return Clusters::TlsCertificateManagement::Id; }
643
    static constexpr bool kIsFabricScoped = true;
644
645
    uint16_t ccdid = static_cast<uint16_t>(0);
646
647
    CHIP_ERROR Decode(TLV::TLVReader & reader, FabricIndex aAccessingFabricIndex);
648
};
649
}; // namespace RemoveClientCertificate
650
} // namespace Commands
651
} // namespace TlsCertificateManagement
652
} // namespace Clusters
653
} // namespace app
654
} // namespace chip