/src/connectedhomeip/zzz_generated/app-common/clusters/OperationalCredentials/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/OperationalCredentials/ClusterId.h> |
37 | | #include <clusters/OperationalCredentials/CommandIds.h> |
38 | | #include <clusters/OperationalCredentials/Enums.h> |
39 | | #include <clusters/OperationalCredentials/Structs.h> |
40 | | |
41 | | #include <cstdint> |
42 | | |
43 | | namespace chip { |
44 | | namespace app { |
45 | | namespace Clusters { |
46 | | namespace OperationalCredentials { |
47 | | namespace Commands { |
48 | | // Forward-declarations so we can reference these later. |
49 | | |
50 | | namespace AttestationRequest { |
51 | | struct Type; |
52 | | struct DecodableType; |
53 | | } // namespace AttestationRequest |
54 | | |
55 | | namespace AttestationResponse { |
56 | | struct Type; |
57 | | struct DecodableType; |
58 | | } // namespace AttestationResponse |
59 | | |
60 | | namespace CertificateChainRequest { |
61 | | struct Type; |
62 | | struct DecodableType; |
63 | | } // namespace CertificateChainRequest |
64 | | |
65 | | namespace CertificateChainResponse { |
66 | | struct Type; |
67 | | struct DecodableType; |
68 | | } // namespace CertificateChainResponse |
69 | | |
70 | | namespace CSRRequest { |
71 | | struct Type; |
72 | | struct DecodableType; |
73 | | } // namespace CSRRequest |
74 | | |
75 | | namespace CSRResponse { |
76 | | struct Type; |
77 | | struct DecodableType; |
78 | | } // namespace CSRResponse |
79 | | |
80 | | namespace AddNOC { |
81 | | struct Type; |
82 | | struct DecodableType; |
83 | | } // namespace AddNOC |
84 | | |
85 | | namespace UpdateNOC { |
86 | | struct Type; |
87 | | struct DecodableType; |
88 | | } // namespace UpdateNOC |
89 | | |
90 | | namespace NOCResponse { |
91 | | struct Type; |
92 | | struct DecodableType; |
93 | | } // namespace NOCResponse |
94 | | |
95 | | namespace UpdateFabricLabel { |
96 | | struct Type; |
97 | | struct DecodableType; |
98 | | } // namespace UpdateFabricLabel |
99 | | |
100 | | namespace RemoveFabric { |
101 | | struct Type; |
102 | | struct DecodableType; |
103 | | } // namespace RemoveFabric |
104 | | |
105 | | namespace AddTrustedRootCertificate { |
106 | | struct Type; |
107 | | struct DecodableType; |
108 | | } // namespace AddTrustedRootCertificate |
109 | | |
110 | | namespace SetVIDVerificationStatement { |
111 | | struct Type; |
112 | | struct DecodableType; |
113 | | } // namespace SetVIDVerificationStatement |
114 | | |
115 | | namespace SignVIDVerificationRequest { |
116 | | struct Type; |
117 | | struct DecodableType; |
118 | | } // namespace SignVIDVerificationRequest |
119 | | |
120 | | namespace SignVIDVerificationResponse { |
121 | | struct Type; |
122 | | struct DecodableType; |
123 | | } // namespace SignVIDVerificationResponse |
124 | | |
125 | | } // namespace Commands |
126 | | |
127 | | namespace Commands { |
128 | | namespace AttestationRequest { |
129 | | enum class Fields : uint8_t |
130 | | { |
131 | | kAttestationNonce = 0, |
132 | | }; |
133 | | |
134 | | struct Type |
135 | | { |
136 | | public: |
137 | | // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand |
138 | 0 | static constexpr CommandId GetCommandId() { return Commands::AttestationRequest::Id; } |
139 | 0 | static constexpr ClusterId GetClusterId() { return Clusters::OperationalCredentials::Id; } |
140 | | |
141 | | chip::ByteSpan attestationNonce; |
142 | | |
143 | | CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const; |
144 | | |
145 | | using ResponseType = Clusters::OperationalCredentials::Commands::AttestationResponse::DecodableType; |
146 | | |
147 | 0 | static constexpr bool MustUseTimedInvoke() { return false; } |
148 | | }; |
149 | | |
150 | | struct DecodableType |
151 | | { |
152 | | public: |
153 | 0 | static constexpr CommandId GetCommandId() { return Commands::AttestationRequest::Id; } |
154 | 0 | static constexpr ClusterId GetClusterId() { return Clusters::OperationalCredentials::Id; } |
155 | | static constexpr bool kIsFabricScoped = false; |
156 | | |
157 | | chip::ByteSpan attestationNonce; |
158 | | |
159 | | CHIP_ERROR Decode(TLV::TLVReader & reader); |
160 | | }; |
161 | | }; // namespace AttestationRequest |
162 | | namespace AttestationResponse { |
163 | | enum class Fields : uint8_t |
164 | | { |
165 | | kAttestationElements = 0, |
166 | | kAttestationSignature = 1, |
167 | | }; |
168 | | |
169 | | struct Type |
170 | | { |
171 | | public: |
172 | | // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand |
173 | 0 | static constexpr CommandId GetCommandId() { return Commands::AttestationResponse::Id; } |
174 | 0 | static constexpr ClusterId GetClusterId() { return Clusters::OperationalCredentials::Id; } |
175 | | |
176 | | chip::ByteSpan attestationElements; |
177 | | chip::ByteSpan attestationSignature; |
178 | | |
179 | | CHIP_ERROR Encode(DataModel::FabricAwareTLVWriter & aWriter, TLV::Tag aTag) const; |
180 | | |
181 | | using ResponseType = DataModel::NullObjectType; |
182 | | |
183 | 0 | static constexpr bool MustUseTimedInvoke() { return false; } |
184 | | }; |
185 | | |
186 | | struct DecodableType |
187 | | { |
188 | | public: |
189 | 0 | static constexpr CommandId GetCommandId() { return Commands::AttestationResponse::Id; } |
190 | 0 | static constexpr ClusterId GetClusterId() { return Clusters::OperationalCredentials::Id; } |
191 | | |
192 | | chip::ByteSpan attestationElements; |
193 | | chip::ByteSpan attestationSignature; |
194 | | |
195 | | CHIP_ERROR Decode(TLV::TLVReader & reader); |
196 | | }; |
197 | | }; // namespace AttestationResponse |
198 | | namespace CertificateChainRequest { |
199 | | enum class Fields : uint8_t |
200 | | { |
201 | | kCertificateType = 0, |
202 | | kCryptoProfile = 1, |
203 | | kSegmentID = 2, |
204 | | kMaxSegmentSize = 3, |
205 | | }; |
206 | | |
207 | | struct Type |
208 | | { |
209 | | public: |
210 | | // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand |
211 | 0 | static constexpr CommandId GetCommandId() { return Commands::CertificateChainRequest::Id; } |
212 | 0 | static constexpr ClusterId GetClusterId() { return Clusters::OperationalCredentials::Id; } |
213 | | |
214 | | CertificateChainTypeEnum certificateType = static_cast<CertificateChainTypeEnum>(0); |
215 | | Optional<Structs::CryptoProfileChainStruct::Type> cryptoProfile; |
216 | | Optional<uint16_t> segmentID; |
217 | | Optional<uint16_t> maxSegmentSize; |
218 | | |
219 | | CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const; |
220 | | |
221 | | using ResponseType = Clusters::OperationalCredentials::Commands::CertificateChainResponse::DecodableType; |
222 | | |
223 | 0 | static constexpr bool MustUseTimedInvoke() { return false; } |
224 | | }; |
225 | | |
226 | | struct DecodableType |
227 | | { |
228 | | public: |
229 | 0 | static constexpr CommandId GetCommandId() { return Commands::CertificateChainRequest::Id; } |
230 | 0 | static constexpr ClusterId GetClusterId() { return Clusters::OperationalCredentials::Id; } |
231 | | static constexpr bool kIsFabricScoped = false; |
232 | | |
233 | | CertificateChainTypeEnum certificateType = static_cast<CertificateChainTypeEnum>(0); |
234 | | Optional<Structs::CryptoProfileChainStruct::DecodableType> cryptoProfile; |
235 | | Optional<uint16_t> segmentID; |
236 | | Optional<uint16_t> maxSegmentSize; |
237 | | |
238 | | CHIP_ERROR Decode(TLV::TLVReader & reader); |
239 | | }; |
240 | | }; // namespace CertificateChainRequest |
241 | | namespace CertificateChainResponse { |
242 | | enum class Fields : uint8_t |
243 | | { |
244 | | kCertificate = 0, |
245 | | kTotalDocumentSize = 1, |
246 | | kNextSegmentID = 2, |
247 | | }; |
248 | | |
249 | | struct Type |
250 | | { |
251 | | public: |
252 | | // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand |
253 | 0 | static constexpr CommandId GetCommandId() { return Commands::CertificateChainResponse::Id; } |
254 | 0 | static constexpr ClusterId GetClusterId() { return Clusters::OperationalCredentials::Id; } |
255 | | |
256 | | chip::ByteSpan certificate; |
257 | | Optional<uint16_t> totalDocumentSize; |
258 | | Optional<uint16_t> nextSegmentID; |
259 | | |
260 | | CHIP_ERROR Encode(DataModel::FabricAwareTLVWriter & aWriter, TLV::Tag aTag) const; |
261 | | |
262 | | using ResponseType = DataModel::NullObjectType; |
263 | | |
264 | 0 | static constexpr bool MustUseTimedInvoke() { return false; } |
265 | | }; |
266 | | |
267 | | struct DecodableType |
268 | | { |
269 | | public: |
270 | 0 | static constexpr CommandId GetCommandId() { return Commands::CertificateChainResponse::Id; } |
271 | 0 | static constexpr ClusterId GetClusterId() { return Clusters::OperationalCredentials::Id; } |
272 | | |
273 | | chip::ByteSpan certificate; |
274 | | Optional<uint16_t> totalDocumentSize; |
275 | | Optional<uint16_t> nextSegmentID; |
276 | | |
277 | | CHIP_ERROR Decode(TLV::TLVReader & reader); |
278 | | }; |
279 | | }; // namespace CertificateChainResponse |
280 | | namespace CSRRequest { |
281 | | enum class Fields : uint8_t |
282 | | { |
283 | | kCSRNonce = 0, |
284 | | kIsForUpdateNOC = 1, |
285 | | }; |
286 | | |
287 | | struct Type |
288 | | { |
289 | | public: |
290 | | // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand |
291 | 0 | static constexpr CommandId GetCommandId() { return Commands::CSRRequest::Id; } |
292 | 0 | static constexpr ClusterId GetClusterId() { return Clusters::OperationalCredentials::Id; } |
293 | | |
294 | | chip::ByteSpan CSRNonce; |
295 | | Optional<bool> isForUpdateNOC; |
296 | | |
297 | | CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const; |
298 | | |
299 | | using ResponseType = Clusters::OperationalCredentials::Commands::CSRResponse::DecodableType; |
300 | | |
301 | 0 | static constexpr bool MustUseTimedInvoke() { return false; } |
302 | | }; |
303 | | |
304 | | struct DecodableType |
305 | | { |
306 | | public: |
307 | 0 | static constexpr CommandId GetCommandId() { return Commands::CSRRequest::Id; } |
308 | 0 | static constexpr ClusterId GetClusterId() { return Clusters::OperationalCredentials::Id; } |
309 | | static constexpr bool kIsFabricScoped = false; |
310 | | |
311 | | chip::ByteSpan CSRNonce; |
312 | | Optional<bool> isForUpdateNOC; |
313 | | |
314 | | CHIP_ERROR Decode(TLV::TLVReader & reader); |
315 | | }; |
316 | | }; // namespace CSRRequest |
317 | | namespace CSRResponse { |
318 | | enum class Fields : uint8_t |
319 | | { |
320 | | kNOCSRElements = 0, |
321 | | kAttestationSignature = 1, |
322 | | }; |
323 | | |
324 | | struct Type |
325 | | { |
326 | | public: |
327 | | // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand |
328 | 0 | static constexpr CommandId GetCommandId() { return Commands::CSRResponse::Id; } |
329 | 0 | static constexpr ClusterId GetClusterId() { return Clusters::OperationalCredentials::Id; } |
330 | | |
331 | | chip::ByteSpan NOCSRElements; |
332 | | chip::ByteSpan attestationSignature; |
333 | | |
334 | | CHIP_ERROR Encode(DataModel::FabricAwareTLVWriter & aWriter, TLV::Tag aTag) const; |
335 | | |
336 | | using ResponseType = DataModel::NullObjectType; |
337 | | |
338 | 0 | static constexpr bool MustUseTimedInvoke() { return false; } |
339 | | }; |
340 | | |
341 | | struct DecodableType |
342 | | { |
343 | | public: |
344 | 0 | static constexpr CommandId GetCommandId() { return Commands::CSRResponse::Id; } |
345 | 0 | static constexpr ClusterId GetClusterId() { return Clusters::OperationalCredentials::Id; } |
346 | | |
347 | | chip::ByteSpan NOCSRElements; |
348 | | chip::ByteSpan attestationSignature; |
349 | | |
350 | | CHIP_ERROR Decode(TLV::TLVReader & reader); |
351 | | }; |
352 | | }; // namespace CSRResponse |
353 | | namespace AddNOC { |
354 | | enum class Fields : uint8_t |
355 | | { |
356 | | kNOCValue = 0, |
357 | | kICACValue = 1, |
358 | | kIPKValue = 2, |
359 | | kCaseAdminSubject = 3, |
360 | | kAdminVendorId = 4, |
361 | | }; |
362 | | |
363 | | struct Type |
364 | | { |
365 | | public: |
366 | | // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand |
367 | 0 | static constexpr CommandId GetCommandId() { return Commands::AddNOC::Id; } |
368 | 0 | static constexpr ClusterId GetClusterId() { return Clusters::OperationalCredentials::Id; } |
369 | | |
370 | | chip::ByteSpan NOCValue; |
371 | | Optional<chip::ByteSpan> ICACValue; |
372 | | chip::ByteSpan IPKValue; |
373 | | uint64_t caseAdminSubject = static_cast<uint64_t>(0); |
374 | | chip::VendorId adminVendorId = static_cast<chip::VendorId>(0); |
375 | | |
376 | | CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const; |
377 | | |
378 | | using ResponseType = Clusters::OperationalCredentials::Commands::NOCResponse::DecodableType; |
379 | | |
380 | 0 | static constexpr bool MustUseTimedInvoke() { return false; } |
381 | | }; |
382 | | |
383 | | struct DecodableType |
384 | | { |
385 | | public: |
386 | 0 | static constexpr CommandId GetCommandId() { return Commands::AddNOC::Id; } |
387 | 0 | static constexpr ClusterId GetClusterId() { return Clusters::OperationalCredentials::Id; } |
388 | | static constexpr bool kIsFabricScoped = false; |
389 | | |
390 | | chip::ByteSpan NOCValue; |
391 | | Optional<chip::ByteSpan> ICACValue; |
392 | | chip::ByteSpan IPKValue; |
393 | | uint64_t caseAdminSubject = static_cast<uint64_t>(0); |
394 | | chip::VendorId adminVendorId = static_cast<chip::VendorId>(0); |
395 | | |
396 | | CHIP_ERROR Decode(TLV::TLVReader & reader); |
397 | | }; |
398 | | }; // namespace AddNOC |
399 | | namespace UpdateNOC { |
400 | | enum class Fields : uint8_t |
401 | | { |
402 | | kNOCValue = 0, |
403 | | kICACValue = 1, |
404 | | }; |
405 | | |
406 | | struct Type |
407 | | { |
408 | | public: |
409 | | // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand |
410 | 0 | static constexpr CommandId GetCommandId() { return Commands::UpdateNOC::Id; } |
411 | 0 | static constexpr ClusterId GetClusterId() { return Clusters::OperationalCredentials::Id; } |
412 | | |
413 | | chip::ByteSpan NOCValue; |
414 | | Optional<chip::ByteSpan> ICACValue; |
415 | | |
416 | | CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const; |
417 | | |
418 | | using ResponseType = Clusters::OperationalCredentials::Commands::NOCResponse::DecodableType; |
419 | | |
420 | 0 | static constexpr bool MustUseTimedInvoke() { return false; } |
421 | | }; |
422 | | |
423 | | struct DecodableType |
424 | | { |
425 | | public: |
426 | 0 | static constexpr CommandId GetCommandId() { return Commands::UpdateNOC::Id; } |
427 | 0 | static constexpr ClusterId GetClusterId() { return Clusters::OperationalCredentials::Id; } |
428 | | static constexpr bool kIsFabricScoped = true; |
429 | | |
430 | | chip::ByteSpan NOCValue; |
431 | | Optional<chip::ByteSpan> ICACValue; |
432 | | |
433 | | CHIP_ERROR Decode(TLV::TLVReader & reader, FabricIndex aAccessingFabricIndex); |
434 | | }; |
435 | | }; // namespace UpdateNOC |
436 | | namespace NOCResponse { |
437 | | enum class Fields : uint8_t |
438 | | { |
439 | | kStatusCode = 0, |
440 | | kFabricIndex = 1, |
441 | | kDebugText = 2, |
442 | | }; |
443 | | |
444 | | struct Type |
445 | | { |
446 | | public: |
447 | | // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand |
448 | 0 | static constexpr CommandId GetCommandId() { return Commands::NOCResponse::Id; } |
449 | 0 | static constexpr ClusterId GetClusterId() { return Clusters::OperationalCredentials::Id; } |
450 | | |
451 | | NodeOperationalCertStatusEnum statusCode = static_cast<NodeOperationalCertStatusEnum>(0); |
452 | | Optional<chip::FabricIndex> fabricIndex; |
453 | | Optional<chip::CharSpan> debugText; |
454 | | |
455 | | CHIP_ERROR Encode(DataModel::FabricAwareTLVWriter & aWriter, TLV::Tag aTag) const; |
456 | | |
457 | | using ResponseType = DataModel::NullObjectType; |
458 | | |
459 | 0 | static constexpr bool MustUseTimedInvoke() { return false; } |
460 | | }; |
461 | | |
462 | | struct DecodableType |
463 | | { |
464 | | public: |
465 | 0 | static constexpr CommandId GetCommandId() { return Commands::NOCResponse::Id; } |
466 | 0 | static constexpr ClusterId GetClusterId() { return Clusters::OperationalCredentials::Id; } |
467 | | |
468 | | NodeOperationalCertStatusEnum statusCode = static_cast<NodeOperationalCertStatusEnum>(0); |
469 | | Optional<chip::FabricIndex> fabricIndex; |
470 | | Optional<chip::CharSpan> debugText; |
471 | | |
472 | | CHIP_ERROR Decode(TLV::TLVReader & reader); |
473 | | }; |
474 | | }; // namespace NOCResponse |
475 | | namespace UpdateFabricLabel { |
476 | | enum class Fields : uint8_t |
477 | | { |
478 | | kLabel = 0, |
479 | | }; |
480 | | |
481 | | struct Type |
482 | | { |
483 | | public: |
484 | | // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand |
485 | 0 | static constexpr CommandId GetCommandId() { return Commands::UpdateFabricLabel::Id; } |
486 | 0 | static constexpr ClusterId GetClusterId() { return Clusters::OperationalCredentials::Id; } |
487 | | |
488 | | chip::CharSpan label; |
489 | | |
490 | | CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const; |
491 | | |
492 | | using ResponseType = Clusters::OperationalCredentials::Commands::NOCResponse::DecodableType; |
493 | | |
494 | 0 | static constexpr bool MustUseTimedInvoke() { return false; } |
495 | | }; |
496 | | |
497 | | struct DecodableType |
498 | | { |
499 | | public: |
500 | 0 | static constexpr CommandId GetCommandId() { return Commands::UpdateFabricLabel::Id; } |
501 | 0 | static constexpr ClusterId GetClusterId() { return Clusters::OperationalCredentials::Id; } |
502 | | static constexpr bool kIsFabricScoped = true; |
503 | | |
504 | | chip::CharSpan label; |
505 | | |
506 | | CHIP_ERROR Decode(TLV::TLVReader & reader, FabricIndex aAccessingFabricIndex); |
507 | | }; |
508 | | }; // namespace UpdateFabricLabel |
509 | | namespace RemoveFabric { |
510 | | enum class Fields : uint8_t |
511 | | { |
512 | | kFabricIndex = 0, |
513 | | }; |
514 | | |
515 | | struct Type |
516 | | { |
517 | | public: |
518 | | // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand |
519 | 0 | static constexpr CommandId GetCommandId() { return Commands::RemoveFabric::Id; } |
520 | 0 | static constexpr ClusterId GetClusterId() { return Clusters::OperationalCredentials::Id; } |
521 | | |
522 | | chip::FabricIndex fabricIndex = static_cast<chip::FabricIndex>(0); |
523 | | |
524 | | CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const; |
525 | | |
526 | | using ResponseType = Clusters::OperationalCredentials::Commands::NOCResponse::DecodableType; |
527 | | |
528 | 0 | static constexpr bool MustUseTimedInvoke() { return false; } |
529 | | }; |
530 | | |
531 | | struct DecodableType |
532 | | { |
533 | | public: |
534 | 0 | static constexpr CommandId GetCommandId() { return Commands::RemoveFabric::Id; } |
535 | 0 | static constexpr ClusterId GetClusterId() { return Clusters::OperationalCredentials::Id; } |
536 | | static constexpr bool kIsFabricScoped = false; |
537 | | |
538 | | chip::FabricIndex fabricIndex = static_cast<chip::FabricIndex>(0); |
539 | | |
540 | | CHIP_ERROR Decode(TLV::TLVReader & reader); |
541 | | }; |
542 | | }; // namespace RemoveFabric |
543 | | namespace AddTrustedRootCertificate { |
544 | | enum class Fields : uint8_t |
545 | | { |
546 | | kRootCACertificate = 0, |
547 | | }; |
548 | | |
549 | | struct Type |
550 | | { |
551 | | public: |
552 | | // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand |
553 | 0 | static constexpr CommandId GetCommandId() { return Commands::AddTrustedRootCertificate::Id; } |
554 | 0 | static constexpr ClusterId GetClusterId() { return Clusters::OperationalCredentials::Id; } |
555 | | |
556 | | chip::ByteSpan rootCACertificate; |
557 | | |
558 | | CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const; |
559 | | |
560 | | using ResponseType = DataModel::NullObjectType; |
561 | | |
562 | 0 | static constexpr bool MustUseTimedInvoke() { return false; } |
563 | | }; |
564 | | |
565 | | struct DecodableType |
566 | | { |
567 | | public: |
568 | 0 | static constexpr CommandId GetCommandId() { return Commands::AddTrustedRootCertificate::Id; } |
569 | 0 | static constexpr ClusterId GetClusterId() { return Clusters::OperationalCredentials::Id; } |
570 | | static constexpr bool kIsFabricScoped = false; |
571 | | |
572 | | chip::ByteSpan rootCACertificate; |
573 | | |
574 | | CHIP_ERROR Decode(TLV::TLVReader & reader); |
575 | | }; |
576 | | }; // namespace AddTrustedRootCertificate |
577 | | namespace SetVIDVerificationStatement { |
578 | | enum class Fields : uint8_t |
579 | | { |
580 | | kVendorID = 0, |
581 | | kVIDVerificationStatement = 1, |
582 | | kVvsc = 2, |
583 | | }; |
584 | | |
585 | | struct Type |
586 | | { |
587 | | public: |
588 | | // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand |
589 | 0 | static constexpr CommandId GetCommandId() { return Commands::SetVIDVerificationStatement::Id; } |
590 | 0 | static constexpr ClusterId GetClusterId() { return Clusters::OperationalCredentials::Id; } |
591 | | |
592 | | Optional<chip::VendorId> vendorID; |
593 | | Optional<chip::ByteSpan> VIDVerificationStatement; |
594 | | Optional<chip::ByteSpan> vvsc; |
595 | | |
596 | | CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const; |
597 | | |
598 | | using ResponseType = DataModel::NullObjectType; |
599 | | |
600 | 0 | static constexpr bool MustUseTimedInvoke() { return false; } |
601 | | }; |
602 | | |
603 | | struct DecodableType |
604 | | { |
605 | | public: |
606 | 0 | static constexpr CommandId GetCommandId() { return Commands::SetVIDVerificationStatement::Id; } |
607 | 0 | static constexpr ClusterId GetClusterId() { return Clusters::OperationalCredentials::Id; } |
608 | | static constexpr bool kIsFabricScoped = true; |
609 | | |
610 | | Optional<chip::VendorId> vendorID; |
611 | | Optional<chip::ByteSpan> VIDVerificationStatement; |
612 | | Optional<chip::ByteSpan> vvsc; |
613 | | |
614 | | CHIP_ERROR Decode(TLV::TLVReader & reader, FabricIndex aAccessingFabricIndex); |
615 | | }; |
616 | | }; // namespace SetVIDVerificationStatement |
617 | | namespace SignVIDVerificationRequest { |
618 | | enum class Fields : uint8_t |
619 | | { |
620 | | kFabricIndex = 0, |
621 | | kClientChallenge = 1, |
622 | | }; |
623 | | |
624 | | struct Type |
625 | | { |
626 | | public: |
627 | | // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand |
628 | 0 | static constexpr CommandId GetCommandId() { return Commands::SignVIDVerificationRequest::Id; } |
629 | 0 | static constexpr ClusterId GetClusterId() { return Clusters::OperationalCredentials::Id; } |
630 | | |
631 | | chip::FabricIndex fabricIndex = static_cast<chip::FabricIndex>(0); |
632 | | chip::ByteSpan clientChallenge; |
633 | | |
634 | | CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const; |
635 | | |
636 | | using ResponseType = Clusters::OperationalCredentials::Commands::SignVIDVerificationResponse::DecodableType; |
637 | | |
638 | 0 | static constexpr bool MustUseTimedInvoke() { return false; } |
639 | | }; |
640 | | |
641 | | struct DecodableType |
642 | | { |
643 | | public: |
644 | 0 | static constexpr CommandId GetCommandId() { return Commands::SignVIDVerificationRequest::Id; } |
645 | 0 | static constexpr ClusterId GetClusterId() { return Clusters::OperationalCredentials::Id; } |
646 | | static constexpr bool kIsFabricScoped = false; |
647 | | |
648 | | chip::FabricIndex fabricIndex = static_cast<chip::FabricIndex>(0); |
649 | | chip::ByteSpan clientChallenge; |
650 | | |
651 | | CHIP_ERROR Decode(TLV::TLVReader & reader); |
652 | | }; |
653 | | }; // namespace SignVIDVerificationRequest |
654 | | namespace SignVIDVerificationResponse { |
655 | | enum class Fields : uint8_t |
656 | | { |
657 | | kFabricIndex = 0, |
658 | | kFabricBindingVersion = 1, |
659 | | kSignature = 2, |
660 | | }; |
661 | | |
662 | | struct Type |
663 | | { |
664 | | public: |
665 | | // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand |
666 | 0 | static constexpr CommandId GetCommandId() { return Commands::SignVIDVerificationResponse::Id; } |
667 | 0 | static constexpr ClusterId GetClusterId() { return Clusters::OperationalCredentials::Id; } |
668 | | |
669 | | chip::FabricIndex fabricIndex = static_cast<chip::FabricIndex>(0); |
670 | | uint8_t fabricBindingVersion = static_cast<uint8_t>(0); |
671 | | chip::ByteSpan signature; |
672 | | |
673 | | CHIP_ERROR Encode(DataModel::FabricAwareTLVWriter & aWriter, TLV::Tag aTag) const; |
674 | | |
675 | | using ResponseType = DataModel::NullObjectType; |
676 | | |
677 | 0 | static constexpr bool MustUseTimedInvoke() { return false; } |
678 | | }; |
679 | | |
680 | | struct DecodableType |
681 | | { |
682 | | public: |
683 | 0 | static constexpr CommandId GetCommandId() { return Commands::SignVIDVerificationResponse::Id; } |
684 | 0 | static constexpr ClusterId GetClusterId() { return Clusters::OperationalCredentials::Id; } |
685 | | |
686 | | chip::FabricIndex fabricIndex = static_cast<chip::FabricIndex>(0); |
687 | | uint8_t fabricBindingVersion = static_cast<uint8_t>(0); |
688 | | chip::ByteSpan signature; |
689 | | |
690 | | CHIP_ERROR Decode(TLV::TLVReader & reader); |
691 | | }; |
692 | | }; // namespace SignVIDVerificationResponse |
693 | | } // namespace Commands |
694 | | } // namespace OperationalCredentials |
695 | | } // namespace Clusters |
696 | | } // namespace app |
697 | | } // namespace chip |