diff --git a/examples/chip-tool/templates/ComplexArgumentParser-src.zapt b/examples/chip-tool/templates/ComplexArgumentParser-src.zapt index b2c9d172fec555..f9b0f4bef764c5 100644 --- a/examples/chip-tool/templates/ComplexArgumentParser-src.zapt +++ b/examples/chip-tool/templates/ComplexArgumentParser-src.zapt @@ -2,52 +2,16 @@ #include -{{#structs_with_clusters groupByStructName=1}} -CHIP_ERROR ComplexArgumentParser::Setup(const char * label, chip::app::Clusters::{{#unless (is_number_greater_than structClusterCount 1)}}{{as_camel_cased clusterName false}}{{else}}detail{{/unless}}::Structs::{{name}}::Type & request, Json::Value & value) -{ - VerifyOrReturnError(value.isObject(), CHIP_ERROR_INVALID_ARGUMENT); - - // Copy to track which members we already processed. - Json::Value valueCopy(value); - - {{#zcl_struct_items}} - {{#unless isOptional}} - {{~! Fabric index fields are not sent on writes, so don't force people to - provide them. ~}} - {{#unless (is_num_equal fieldIdentifier 254)}} - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("{{parent.name}}.{{asLowerCamelCase label}}", "{{asLowerCamelCase label}}", value.isMember("{{asLowerCamelCase label}}"))); - {{/unless}} - {{/unless}} - {{/zcl_struct_items}} - - char labelWithMember[kMaxLabelLength]; - {{#zcl_struct_items}} - {{#if isOptional}} - if (value.isMember("{{asLowerCamelCase label}}")) - { - {{else if (is_num_equal fieldIdentifier 254)}} - if (value.isMember("{{asLowerCamelCase label}}")) - { - {{/if}} - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "{{asLowerCamelCase label}}"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.{{asLowerCamelCase label}}, value["{{asLowerCamelCase label}}"])); - {{#if isOptional}} - } - {{else if (is_num_equal fieldIdentifier 254)}} - } - {{/if}} - valueCopy.removeMember("{{asLowerCamelCase label}}"); - - {{/zcl_struct_items}} - - return ComplexArgumentParser::EnsureNoMembersRemaining(label, valueCopy); -} - -void ComplexArgumentParser::Finalize(chip::app::Clusters::{{#unless (is_number_greater_than structClusterCount 1)}}{{as_camel_cased clusterName false}}{{else}}detail{{/unless}}::Structs::{{name}}::Type & request) -{ - {{#zcl_struct_items}} - ComplexArgumentParser::Finalize(request.{{asLowerCamelCase label}}); - {{/zcl_struct_items}} -} -{{/structs_with_clusters}} - +{{#zcl_structs}} +{{#if has_more_than_one_cluster}} +{{> struct_parser_impl namespace="detail"}} +{{/if}} +{{/zcl_structs}} + +{{#zcl_clusters}} +{{#zcl_structs}} +{{#unless has_more_than_one_cluster}} +{{> struct_parser_impl namespace=(as_camel_cased ../name false)}} +{{/unless}} +{{/zcl_structs}} +{{/zcl_clusters}} diff --git a/examples/chip-tool/templates/ComplexArgumentParser.zapt b/examples/chip-tool/templates/ComplexArgumentParser.zapt index e057f0462df0a4..7364b243188333 100644 --- a/examples/chip-tool/templates/ComplexArgumentParser.zapt +++ b/examples/chip-tool/templates/ComplexArgumentParser.zapt @@ -5,8 +5,16 @@ #include #include -{{#structs_with_clusters groupByStructName=1}} -static CHIP_ERROR Setup(const char * label, chip::app::Clusters::{{#unless (is_number_greater_than structClusterCount 1)}}{{as_camel_cased clusterName false}}{{else}}detail{{/unless}}::Structs::{{name}}::Type & request, Json::Value & value); +{{#zcl_structs}} +{{#if has_more_than_one_cluster}} +{{> struct_parser_decl namespace="detail"}} +{{/if}} +{{/zcl_structs}} -static void Finalize(chip::app::Clusters::{{#unless (is_number_greater_than structClusterCount 1)}}{{as_camel_cased clusterName false}}{{else}}detail{{/unless}}::Structs::{{name}}::Type & request); -{{/structs_with_clusters}} +{{#zcl_clusters}} +{{#zcl_structs}} +{{#unless has_more_than_one_cluster}} +{{> struct_parser_decl namespace=(as_camel_cased ../name false)}} +{{/unless}} +{{/zcl_structs}} +{{/zcl_clusters}} diff --git a/examples/chip-tool/templates/logging/DataModelLogger-src.zapt b/examples/chip-tool/templates/logging/DataModelLogger-src.zapt index d710ff53735f6c..d400874cf67ffb 100644 --- a/examples/chip-tool/templates/logging/DataModelLogger-src.zapt +++ b/examples/chip-tool/templates/logging/DataModelLogger-src.zapt @@ -4,25 +4,19 @@ using namespace chip::app::Clusters; -{{#structs_with_clusters groupByStructName=1}} -CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, const chip::app::Clusters::{{#unless (is_number_greater_than structClusterCount 1)}}{{as_camel_cased clusterName false}}{{else}}detail{{/unless}}::Structs::{{name}}::DecodableType & value) -{ - DataModelLogger::LogString(label, indent, "{"); -{{#zcl_struct_items}} - { - CHIP_ERROR err = LogValue("{{asUpperCamelCase label}}", indent + 1, value.{{asLowerCamelCase label}}); - if (err != CHIP_NO_ERROR) - { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for '{{asUpperCamelCase label}}'"); - return err; - } - } -{{/zcl_struct_items}} - DataModelLogger::LogString(indent, "}"); +{{#zcl_structs}} +{{#if has_more_than_one_cluster}} +{{> struct_logger_impl namespace="detail"}} +{{/if}} +{{/zcl_structs}} - return CHIP_NO_ERROR; -} -{{/structs_with_clusters}} +{{#zcl_clusters}} +{{#zcl_structs}} +{{#unless has_more_than_one_cluster}} +{{> struct_logger_impl namespace=(as_camel_cased ../name false)}} +{{/unless}} +{{/zcl_structs}} +{{/zcl_clusters}} {{#zcl_clusters}} {{#zcl_events}} diff --git a/examples/chip-tool/templates/logging/DataModelLogger.zapt b/examples/chip-tool/templates/logging/DataModelLogger.zapt index c0ea82e116e1ba..222ab67dee0364 100644 --- a/examples/chip-tool/templates/logging/DataModelLogger.zapt +++ b/examples/chip-tool/templates/logging/DataModelLogger.zapt @@ -3,9 +3,19 @@ #include #include -{{#structs_with_clusters groupByStructName=1}} -static CHIP_ERROR LogValue(const char * label, size_t indent, const chip::app::Clusters::{{#unless (is_number_greater_than structClusterCount 1)}}{{as_camel_cased clusterName false}}{{else}}detail{{/unless}}::Structs::{{name}}::DecodableType & value); -{{/structs_with_clusters}} +{{#zcl_structs}} +{{#if has_more_than_one_cluster}} +{{> struct_logger_decl namespace="detail"}} +{{/if}} +{{/zcl_structs}} + +{{#zcl_clusters}} +{{#zcl_structs}} +{{#unless has_more_than_one_cluster}} +{{> struct_logger_decl namespace=(as_camel_cased ../name false)}} +{{/unless}} +{{/zcl_structs}} +{{/zcl_clusters}} {{#zcl_clusters}} {{#zcl_events}} diff --git a/examples/chip-tool/templates/partials/StructLoggerDecl.zapt b/examples/chip-tool/templates/partials/StructLoggerDecl.zapt new file mode 100644 index 00000000000000..0f7e47ddc8ecca --- /dev/null +++ b/examples/chip-tool/templates/partials/StructLoggerDecl.zapt @@ -0,0 +1,2 @@ +static CHIP_ERROR LogValue(const char * label, size_t indent, const chip::app::Clusters::{{namespace}}::Structs::{{name}}::DecodableType & value); + diff --git a/examples/chip-tool/templates/partials/StructLoggerImpl.zapt b/examples/chip-tool/templates/partials/StructLoggerImpl.zapt new file mode 100644 index 00000000000000..3dbd99e7400ef4 --- /dev/null +++ b/examples/chip-tool/templates/partials/StructLoggerImpl.zapt @@ -0,0 +1,18 @@ +CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, const chip::app::Clusters::{{namespace}}::Structs::{{name}}::DecodableType & value) +{ + DataModelLogger::LogString(label, indent, "{"); +{{#zcl_struct_items}} + { + CHIP_ERROR err = LogValue("{{asUpperCamelCase label}}", indent + 1, value.{{asLowerCamelCase label}}); + if (err != CHIP_NO_ERROR) + { + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for '{{asUpperCamelCase label}}'"); + return err; + } + } +{{/zcl_struct_items}} + DataModelLogger::LogString(indent, "}"); + + return CHIP_NO_ERROR; +} + diff --git a/examples/chip-tool/templates/partials/StructParserDecl.zapt b/examples/chip-tool/templates/partials/StructParserDecl.zapt new file mode 100644 index 00000000000000..7fd3364d034c89 --- /dev/null +++ b/examples/chip-tool/templates/partials/StructParserDecl.zapt @@ -0,0 +1,4 @@ +static CHIP_ERROR Setup(const char * label, chip::app::Clusters::{{namespace}}::Structs::{{name}}::Type & request, Json::Value & value); + +static void Finalize(chip::app::Clusters::{{namespace}}::Structs::{{name}}::Type & request); + diff --git a/examples/chip-tool/templates/partials/StructParserImpl.zapt b/examples/chip-tool/templates/partials/StructParserImpl.zapt new file mode 100644 index 00000000000000..268b09451c6036 --- /dev/null +++ b/examples/chip-tool/templates/partials/StructParserImpl.zapt @@ -0,0 +1,47 @@ +CHIP_ERROR ComplexArgumentParser::Setup(const char * label, chip::app::Clusters::{{namespace}}::Structs::{{name}}::Type & request, Json::Value & value) +{ + VerifyOrReturnError(value.isObject(), CHIP_ERROR_INVALID_ARGUMENT); + + // Copy to track which members we already processed. + Json::Value valueCopy(value); + + {{#zcl_struct_items}} + {{#unless isOptional}} + {{~! Fabric index fields are not sent on writes, so don't force people to + provide them. ~}} + {{#unless (is_num_equal fieldIdentifier 254)}} + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("{{parent.name}}.{{asLowerCamelCase label}}", "{{asLowerCamelCase label}}", value.isMember("{{asLowerCamelCase label}}"))); + {{/unless}} + {{/unless}} + {{/zcl_struct_items}} + + char labelWithMember[kMaxLabelLength]; + {{#zcl_struct_items}} + {{#if isOptional}} + if (value.isMember("{{asLowerCamelCase label}}")) + { + {{else if (is_num_equal fieldIdentifier 254)}} + if (value.isMember("{{asLowerCamelCase label}}")) + { + {{/if}} + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "{{asLowerCamelCase label}}"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.{{asLowerCamelCase label}}, value["{{asLowerCamelCase label}}"])); + {{#if isOptional}} + } + {{else if (is_num_equal fieldIdentifier 254)}} + } + {{/if}} + valueCopy.removeMember("{{asLowerCamelCase label}}"); + + {{/zcl_struct_items}} + + return ComplexArgumentParser::EnsureNoMembersRemaining(label, valueCopy); +} + +void ComplexArgumentParser::Finalize(chip::app::Clusters::{{namespace}}::Structs::{{name}}::Type & request) +{ + {{#zcl_struct_items}} + ComplexArgumentParser::Finalize(request.{{asLowerCamelCase label}}); + {{/zcl_struct_items}} +} + diff --git a/examples/chip-tool/templates/templates.json b/examples/chip-tool/templates/templates.json index 1552ab8566bfa6..528c7d266dcb97 100644 --- a/examples/chip-tool/templates/templates.json +++ b/examples/chip-tool/templates/templates.json @@ -21,6 +21,22 @@ { "name": "cluster_header", "path": "../../../src/app/zap-templates/partials/cluster_header.zapt" + }, + { + "name": "struct_parser_decl", + "path": "partials/StructParserDecl.zapt" + }, + { + "name": "struct_parser_impl", + "path": "partials/StructParserImpl.zapt" + }, + { + "name": "struct_logger_decl", + "path": "partials/StructLoggerDecl.zapt" + }, + { + "name": "struct_logger_impl", + "path": "partials/StructLoggerImpl.zapt" } ], "templates": [ diff --git a/zzz_generated/chip-tool/zap-generated/cluster/ComplexArgumentParser.cpp b/zzz_generated/chip-tool/zap-generated/cluster/ComplexArgumentParser.cpp index 859fd542e6cc77..3d128bfb24f2e8 100644 --- a/zzz_generated/chip-tool/zap-generated/cluster/ComplexArgumentParser.cpp +++ b/zzz_generated/chip-tool/zap-generated/cluster/ComplexArgumentParser.cpp @@ -19,6 +19,253 @@ #include +CHIP_ERROR ComplexArgumentParser::Setup(const char * label, chip::app::Clusters::detail::Structs::ApplicationStruct::Type & request, + Json::Value & value) +{ + VerifyOrReturnError(value.isObject(), CHIP_ERROR_INVALID_ARGUMENT); + + // Copy to track which members we already processed. + Json::Value valueCopy(value); + + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("ApplicationStruct.catalogVendorID", "catalogVendorID", + value.isMember("catalogVendorID"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("ApplicationStruct.applicationID", "applicationID", + value.isMember("applicationID"))); + + char labelWithMember[kMaxLabelLength]; + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "catalogVendorID"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.catalogVendorID, value["catalogVendorID"])); + valueCopy.removeMember("catalogVendorID"); + + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "applicationID"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.applicationID, value["applicationID"])); + valueCopy.removeMember("applicationID"); + + return ComplexArgumentParser::EnsureNoMembersRemaining(label, valueCopy); +} + +void ComplexArgumentParser::Finalize(chip::app::Clusters::detail::Structs::ApplicationStruct::Type & request) +{ + ComplexArgumentParser::Finalize(request.catalogVendorID); + ComplexArgumentParser::Finalize(request.applicationID); +} + +CHIP_ERROR ComplexArgumentParser::Setup(const char * label, chip::app::Clusters::detail::Structs::LabelStruct::Type & request, + Json::Value & value) +{ + VerifyOrReturnError(value.isObject(), CHIP_ERROR_INVALID_ARGUMENT); + + // Copy to track which members we already processed. + Json::Value valueCopy(value); + + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("LabelStruct.label", "label", value.isMember("label"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("LabelStruct.value", "value", value.isMember("value"))); + + char labelWithMember[kMaxLabelLength]; + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "label"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.label, value["label"])); + valueCopy.removeMember("label"); + + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "value"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.value, value["value"])); + valueCopy.removeMember("value"); + + return ComplexArgumentParser::EnsureNoMembersRemaining(label, valueCopy); +} + +void ComplexArgumentParser::Finalize(chip::app::Clusters::detail::Structs::LabelStruct::Type & request) +{ + ComplexArgumentParser::Finalize(request.label); + ComplexArgumentParser::Finalize(request.value); +} + +CHIP_ERROR ComplexArgumentParser::Setup(const char * label, + chip::app::Clusters::Scenes::Structs::AttributeValuePair::Type & request, + Json::Value & value) +{ + VerifyOrReturnError(value.isObject(), CHIP_ERROR_INVALID_ARGUMENT); + + // Copy to track which members we already processed. + Json::Value valueCopy(value); + + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("AttributeValuePair.attributeValue", "attributeValue", + value.isMember("attributeValue"))); + + char labelWithMember[kMaxLabelLength]; + if (value.isMember("attributeID")) + { + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "attributeID"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.attributeID, value["attributeID"])); + } + valueCopy.removeMember("attributeID"); + + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "attributeValue"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.attributeValue, value["attributeValue"])); + valueCopy.removeMember("attributeValue"); + + return ComplexArgumentParser::EnsureNoMembersRemaining(label, valueCopy); +} + +void ComplexArgumentParser::Finalize(chip::app::Clusters::Scenes::Structs::AttributeValuePair::Type & request) +{ + ComplexArgumentParser::Finalize(request.attributeID); + ComplexArgumentParser::Finalize(request.attributeValue); +} + +CHIP_ERROR ComplexArgumentParser::Setup(const char * label, chip::app::Clusters::Scenes::Structs::ExtensionFieldSet::Type & request, + Json::Value & value) +{ + VerifyOrReturnError(value.isObject(), CHIP_ERROR_INVALID_ARGUMENT); + + // Copy to track which members we already processed. + Json::Value valueCopy(value); + + ReturnErrorOnFailure( + ComplexArgumentParser::EnsureMemberExist("ExtensionFieldSet.clusterID", "clusterID", value.isMember("clusterID"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("ExtensionFieldSet.attributeValueList", "attributeValueList", + value.isMember("attributeValueList"))); + + char labelWithMember[kMaxLabelLength]; + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "clusterID"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.clusterID, value["clusterID"])); + valueCopy.removeMember("clusterID"); + + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "attributeValueList"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.attributeValueList, value["attributeValueList"])); + valueCopy.removeMember("attributeValueList"); + + return ComplexArgumentParser::EnsureNoMembersRemaining(label, valueCopy); +} + +void ComplexArgumentParser::Finalize(chip::app::Clusters::Scenes::Structs::ExtensionFieldSet::Type & request) +{ + ComplexArgumentParser::Finalize(request.clusterID); + ComplexArgumentParser::Finalize(request.attributeValueList); +} + +CHIP_ERROR ComplexArgumentParser::Setup(const char * label, + chip::app::Clusters::Descriptor::Structs::DeviceTypeStruct::Type & request, + Json::Value & value) +{ + VerifyOrReturnError(value.isObject(), CHIP_ERROR_INVALID_ARGUMENT); + + // Copy to track which members we already processed. + Json::Value valueCopy(value); + + ReturnErrorOnFailure( + ComplexArgumentParser::EnsureMemberExist("DeviceTypeStruct.deviceType", "deviceType", value.isMember("deviceType"))); + ReturnErrorOnFailure( + ComplexArgumentParser::EnsureMemberExist("DeviceTypeStruct.revision", "revision", value.isMember("revision"))); + + char labelWithMember[kMaxLabelLength]; + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "deviceType"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.deviceType, value["deviceType"])); + valueCopy.removeMember("deviceType"); + + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "revision"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.revision, value["revision"])); + valueCopy.removeMember("revision"); + + return ComplexArgumentParser::EnsureNoMembersRemaining(label, valueCopy); +} + +void ComplexArgumentParser::Finalize(chip::app::Clusters::Descriptor::Structs::DeviceTypeStruct::Type & request) +{ + ComplexArgumentParser::Finalize(request.deviceType); + ComplexArgumentParser::Finalize(request.revision); +} + +CHIP_ERROR ComplexArgumentParser::Setup(const char * label, chip::app::Clusters::Binding::Structs::TargetStruct::Type & request, + Json::Value & value) +{ + VerifyOrReturnError(value.isObject(), CHIP_ERROR_INVALID_ARGUMENT); + + // Copy to track which members we already processed. + Json::Value valueCopy(value); + + char labelWithMember[kMaxLabelLength]; + if (value.isMember("node")) + { + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "node"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.node, value["node"])); + } + valueCopy.removeMember("node"); + + if (value.isMember("group")) + { + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "group"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.group, value["group"])); + } + valueCopy.removeMember("group"); + + if (value.isMember("endpoint")) + { + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "endpoint"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.endpoint, value["endpoint"])); + } + valueCopy.removeMember("endpoint"); + + if (value.isMember("cluster")) + { + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "cluster"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.cluster, value["cluster"])); + } + valueCopy.removeMember("cluster"); + + if (value.isMember("fabricIndex")) + { + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "fabricIndex"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.fabricIndex, value["fabricIndex"])); + } + valueCopy.removeMember("fabricIndex"); + + return ComplexArgumentParser::EnsureNoMembersRemaining(label, valueCopy); +} + +void ComplexArgumentParser::Finalize(chip::app::Clusters::Binding::Structs::TargetStruct::Type & request) +{ + ComplexArgumentParser::Finalize(request.node); + ComplexArgumentParser::Finalize(request.group); + ComplexArgumentParser::Finalize(request.endpoint); + ComplexArgumentParser::Finalize(request.cluster); + ComplexArgumentParser::Finalize(request.fabricIndex); +} + +CHIP_ERROR ComplexArgumentParser::Setup(const char * label, chip::app::Clusters::AccessControl::Structs::Target::Type & request, + Json::Value & value) +{ + VerifyOrReturnError(value.isObject(), CHIP_ERROR_INVALID_ARGUMENT); + + // Copy to track which members we already processed. + Json::Value valueCopy(value); + + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("Target.cluster", "cluster", value.isMember("cluster"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("Target.endpoint", "endpoint", value.isMember("endpoint"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("Target.deviceType", "deviceType", value.isMember("deviceType"))); + + char labelWithMember[kMaxLabelLength]; + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "cluster"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.cluster, value["cluster"])); + valueCopy.removeMember("cluster"); + + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "endpoint"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.endpoint, value["endpoint"])); + valueCopy.removeMember("endpoint"); + + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "deviceType"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.deviceType, value["deviceType"])); + valueCopy.removeMember("deviceType"); + + return ComplexArgumentParser::EnsureNoMembersRemaining(label, valueCopy); +} + +void ComplexArgumentParser::Finalize(chip::app::Clusters::AccessControl::Structs::Target::Type & request) +{ + ComplexArgumentParser::Finalize(request.cluster); + ComplexArgumentParser::Finalize(request.endpoint); + ComplexArgumentParser::Finalize(request.deviceType); +} + CHIP_ERROR ComplexArgumentParser::Setup(const char * label, chip::app::Clusters::AccessControl::Structs::AccessControlEntryStruct::Type & request, Json::Value & value) @@ -72,6 +319,7 @@ void ComplexArgumentParser::Finalize(chip::app::Clusters::AccessControl::Structs ComplexArgumentParser::Finalize(request.targets); ComplexArgumentParser::Finalize(request.fabricIndex); } + CHIP_ERROR ComplexArgumentParser::Setup(const char * label, chip::app::Clusters::AccessControl::Structs::AccessControlExtensionStruct::Type & request, Json::Value & value) @@ -104,6 +352,7 @@ void ComplexArgumentParser::Finalize(chip::app::Clusters::AccessControl::Structs ComplexArgumentParser::Finalize(request.data); ComplexArgumentParser::Finalize(request.fabricIndex); } + CHIP_ERROR ComplexArgumentParser::Setup(const char * label, chip::app::Clusters::Actions::Structs::ActionStruct::Type & request, Json::Value & value) { @@ -158,8 +407,9 @@ void ComplexArgumentParser::Finalize(chip::app::Clusters::Actions::Structs::Acti ComplexArgumentParser::Finalize(request.supportedCommands); ComplexArgumentParser::Finalize(request.state); } + CHIP_ERROR ComplexArgumentParser::Setup(const char * label, - chip::app::Clusters::ContentLauncher::Structs::AdditionalInfoStruct::Type & request, + chip::app::Clusters::Actions::Structs::EndpointListStruct::Type & request, Json::Value & value) { VerifyOrReturnError(value.isObject(), CHIP_ERROR_INVALID_ARGUMENT); @@ -167,28 +417,43 @@ CHIP_ERROR ComplexArgumentParser::Setup(const char * label, // Copy to track which members we already processed. Json::Value valueCopy(value); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("AdditionalInfoStruct.name", "name", value.isMember("name"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("AdditionalInfoStruct.value", "value", value.isMember("value"))); - - char labelWithMember[kMaxLabelLength]; + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("EndpointListStruct.endpointListID", "endpointListID", + value.isMember("endpointListID"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("EndpointListStruct.name", "name", value.isMember("name"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("EndpointListStruct.type", "type", value.isMember("type"))); + ReturnErrorOnFailure( + ComplexArgumentParser::EnsureMemberExist("EndpointListStruct.endpoints", "endpoints", value.isMember("endpoints"))); + + char labelWithMember[kMaxLabelLength]; + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "endpointListID"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.endpointListID, value["endpointListID"])); + valueCopy.removeMember("endpointListID"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "name"); ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.name, value["name"])); valueCopy.removeMember("name"); - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "value"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.value, value["value"])); - valueCopy.removeMember("value"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "type"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.type, value["type"])); + valueCopy.removeMember("type"); + + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "endpoints"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.endpoints, value["endpoints"])); + valueCopy.removeMember("endpoints"); return ComplexArgumentParser::EnsureNoMembersRemaining(label, valueCopy); } -void ComplexArgumentParser::Finalize(chip::app::Clusters::ContentLauncher::Structs::AdditionalInfoStruct::Type & request) +void ComplexArgumentParser::Finalize(chip::app::Clusters::Actions::Structs::EndpointListStruct::Type & request) { + ComplexArgumentParser::Finalize(request.endpointListID); ComplexArgumentParser::Finalize(request.name); - ComplexArgumentParser::Finalize(request.value); + ComplexArgumentParser::Finalize(request.type); + ComplexArgumentParser::Finalize(request.endpoints); } + CHIP_ERROR ComplexArgumentParser::Setup(const char * label, - chip::app::Clusters::ApplicationLauncher::Structs::ApplicationEPStruct::Type & request, + chip::app::Clusters::BasicInformation::Structs::CapabilityMinimaStruct::Type & request, Json::Value & value) { VerifyOrReturnError(value.isObject(), CHIP_ERROR_INVALID_ARGUMENT); @@ -196,61 +461,33 @@ CHIP_ERROR ComplexArgumentParser::Setup(const char * label, // Copy to track which members we already processed. Json::Value valueCopy(value); - ReturnErrorOnFailure( - ComplexArgumentParser::EnsureMemberExist("ApplicationEPStruct.application", "application", value.isMember("application"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist( + "CapabilityMinimaStruct.caseSessionsPerFabric", "caseSessionsPerFabric", value.isMember("caseSessionsPerFabric"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist( + "CapabilityMinimaStruct.subscriptionsPerFabric", "subscriptionsPerFabric", value.isMember("subscriptionsPerFabric"))); char labelWithMember[kMaxLabelLength]; - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "application"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.application, value["application"])); - valueCopy.removeMember("application"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "caseSessionsPerFabric"); + ReturnErrorOnFailure( + ComplexArgumentParser::Setup(labelWithMember, request.caseSessionsPerFabric, value["caseSessionsPerFabric"])); + valueCopy.removeMember("caseSessionsPerFabric"); - if (value.isMember("endpoint")) - { - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "endpoint"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.endpoint, value["endpoint"])); - } - valueCopy.removeMember("endpoint"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "subscriptionsPerFabric"); + ReturnErrorOnFailure( + ComplexArgumentParser::Setup(labelWithMember, request.subscriptionsPerFabric, value["subscriptionsPerFabric"])); + valueCopy.removeMember("subscriptionsPerFabric"); return ComplexArgumentParser::EnsureNoMembersRemaining(label, valueCopy); } -void ComplexArgumentParser::Finalize(chip::app::Clusters::ApplicationLauncher::Structs::ApplicationEPStruct::Type & request) -{ - ComplexArgumentParser::Finalize(request.application); - ComplexArgumentParser::Finalize(request.endpoint); -} -CHIP_ERROR ComplexArgumentParser::Setup(const char * label, chip::app::Clusters::detail::Structs::ApplicationStruct::Type & request, - Json::Value & value) +void ComplexArgumentParser::Finalize(chip::app::Clusters::BasicInformation::Structs::CapabilityMinimaStruct::Type & request) { - VerifyOrReturnError(value.isObject(), CHIP_ERROR_INVALID_ARGUMENT); - - // Copy to track which members we already processed. - Json::Value valueCopy(value); - - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("ApplicationStruct.catalogVendorID", "catalogVendorID", - value.isMember("catalogVendorID"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("ApplicationStruct.applicationID", "applicationID", - value.isMember("applicationID"))); - - char labelWithMember[kMaxLabelLength]; - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "catalogVendorID"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.catalogVendorID, value["catalogVendorID"])); - valueCopy.removeMember("catalogVendorID"); - - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "applicationID"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.applicationID, value["applicationID"])); - valueCopy.removeMember("applicationID"); - - return ComplexArgumentParser::EnsureNoMembersRemaining(label, valueCopy); + ComplexArgumentParser::Finalize(request.caseSessionsPerFabric); + ComplexArgumentParser::Finalize(request.subscriptionsPerFabric); } -void ComplexArgumentParser::Finalize(chip::app::Clusters::detail::Structs::ApplicationStruct::Type & request) -{ - ComplexArgumentParser::Finalize(request.catalogVendorID); - ComplexArgumentParser::Finalize(request.applicationID); -} CHIP_ERROR ComplexArgumentParser::Setup(const char * label, - chip::app::Clusters::Scenes::Structs::AttributeValuePair::Type & request, + chip::app::Clusters::OtaSoftwareUpdateRequestor::Structs::ProviderLocation::Type & request, Json::Value & value) { VerifyOrReturnError(value.isObject(), CHIP_ERROR_INVALID_ARGUMENT); @@ -258,64 +495,37 @@ CHIP_ERROR ComplexArgumentParser::Setup(const char * label, // Copy to track which members we already processed. Json::Value valueCopy(value); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("AttributeValuePair.attributeValue", "attributeValue", - value.isMember("attributeValue"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("ProviderLocation.providerNodeID", "providerNodeID", + value.isMember("providerNodeID"))); + ReturnErrorOnFailure( + ComplexArgumentParser::EnsureMemberExist("ProviderLocation.endpoint", "endpoint", value.isMember("endpoint"))); char labelWithMember[kMaxLabelLength]; - if (value.isMember("attributeID")) + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "providerNodeID"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.providerNodeID, value["providerNodeID"])); + valueCopy.removeMember("providerNodeID"); + + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "endpoint"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.endpoint, value["endpoint"])); + valueCopy.removeMember("endpoint"); + + if (value.isMember("fabricIndex")) { - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "attributeID"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.attributeID, value["attributeID"])); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "fabricIndex"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.fabricIndex, value["fabricIndex"])); } - valueCopy.removeMember("attributeID"); - - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "attributeValue"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.attributeValue, value["attributeValue"])); - valueCopy.removeMember("attributeValue"); + valueCopy.removeMember("fabricIndex"); return ComplexArgumentParser::EnsureNoMembersRemaining(label, valueCopy); } -void ComplexArgumentParser::Finalize(chip::app::Clusters::Scenes::Structs::AttributeValuePair::Type & request) -{ - ComplexArgumentParser::Finalize(request.attributeID); - ComplexArgumentParser::Finalize(request.attributeValue); -} -CHIP_ERROR ComplexArgumentParser::Setup(const char * label, - chip::app::Clusters::GeneralCommissioning::Structs::BasicCommissioningInfo::Type & request, - Json::Value & value) +void ComplexArgumentParser::Finalize(chip::app::Clusters::OtaSoftwareUpdateRequestor::Structs::ProviderLocation::Type & request) { - VerifyOrReturnError(value.isObject(), CHIP_ERROR_INVALID_ARGUMENT); - - // Copy to track which members we already processed. - Json::Value valueCopy(value); - - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("BasicCommissioningInfo.failSafeExpiryLengthSeconds", - "failSafeExpiryLengthSeconds", - value.isMember("failSafeExpiryLengthSeconds"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("BasicCommissioningInfo.maxCumulativeFailsafeSeconds", - "maxCumulativeFailsafeSeconds", - value.isMember("maxCumulativeFailsafeSeconds"))); - - char labelWithMember[kMaxLabelLength]; - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "failSafeExpiryLengthSeconds"); - ReturnErrorOnFailure( - ComplexArgumentParser::Setup(labelWithMember, request.failSafeExpiryLengthSeconds, value["failSafeExpiryLengthSeconds"])); - valueCopy.removeMember("failSafeExpiryLengthSeconds"); - - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "maxCumulativeFailsafeSeconds"); - ReturnErrorOnFailure( - ComplexArgumentParser::Setup(labelWithMember, request.maxCumulativeFailsafeSeconds, value["maxCumulativeFailsafeSeconds"])); - valueCopy.removeMember("maxCumulativeFailsafeSeconds"); - - return ComplexArgumentParser::EnsureNoMembersRemaining(label, valueCopy); + ComplexArgumentParser::Finalize(request.providerNodeID); + ComplexArgumentParser::Finalize(request.endpoint); + ComplexArgumentParser::Finalize(request.fabricIndex); } -void ComplexArgumentParser::Finalize(chip::app::Clusters::GeneralCommissioning::Structs::BasicCommissioningInfo::Type & request) -{ - ComplexArgumentParser::Finalize(request.failSafeExpiryLengthSeconds); - ComplexArgumentParser::Finalize(request.maxCumulativeFailsafeSeconds); -} CHIP_ERROR ComplexArgumentParser::Setup(const char * label, chip::app::Clusters::PowerSource::Structs::BatChargeFaultChangeType::Type & request, Json::Value & value) @@ -347,6 +557,7 @@ void ComplexArgumentParser::Finalize(chip::app::Clusters::PowerSource::Structs:: ComplexArgumentParser::Finalize(request.current); ComplexArgumentParser::Finalize(request.previous); } + CHIP_ERROR ComplexArgumentParser::Setup(const char * label, chip::app::Clusters::PowerSource::Structs::BatFaultChangeType::Type & request, Json::Value & value) @@ -378,8 +589,9 @@ void ComplexArgumentParser::Finalize(chip::app::Clusters::PowerSource::Structs:: ComplexArgumentParser::Finalize(request.current); ComplexArgumentParser::Finalize(request.previous); } + CHIP_ERROR ComplexArgumentParser::Setup(const char * label, - chip::app::Clusters::ContentLauncher::Structs::BrandingInformationStruct::Type & request, + chip::app::Clusters::PowerSource::Structs::WiredFaultChangeType::Type & request, Json::Value & value) { VerifyOrReturnError(value.isObject(), CHIP_ERROR_INVALID_ARGUMENT); @@ -387,63 +599,31 @@ CHIP_ERROR ComplexArgumentParser::Setup(const char * label, // Copy to track which members we already processed. Json::Value valueCopy(value); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("BrandingInformationStruct.providerName", "providerName", - value.isMember("providerName"))); + ReturnErrorOnFailure( + ComplexArgumentParser::EnsureMemberExist("WiredFaultChangeType.current", "current", value.isMember("current"))); + ReturnErrorOnFailure( + ComplexArgumentParser::EnsureMemberExist("WiredFaultChangeType.previous", "previous", value.isMember("previous"))); char labelWithMember[kMaxLabelLength]; - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "providerName"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.providerName, value["providerName"])); - valueCopy.removeMember("providerName"); - - if (value.isMember("background")) - { - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "background"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.background, value["background"])); - } - valueCopy.removeMember("background"); - - if (value.isMember("logo")) - { - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "logo"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.logo, value["logo"])); - } - valueCopy.removeMember("logo"); - - if (value.isMember("progressBar")) - { - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "progressBar"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.progressBar, value["progressBar"])); - } - valueCopy.removeMember("progressBar"); - - if (value.isMember("splash")) - { - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "splash"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.splash, value["splash"])); - } - valueCopy.removeMember("splash"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "current"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.current, value["current"])); + valueCopy.removeMember("current"); - if (value.isMember("waterMark")) - { - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "waterMark"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.waterMark, value["waterMark"])); - } - valueCopy.removeMember("waterMark"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "previous"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.previous, value["previous"])); + valueCopy.removeMember("previous"); return ComplexArgumentParser::EnsureNoMembersRemaining(label, valueCopy); } -void ComplexArgumentParser::Finalize(chip::app::Clusters::ContentLauncher::Structs::BrandingInformationStruct::Type & request) +void ComplexArgumentParser::Finalize(chip::app::Clusters::PowerSource::Structs::WiredFaultChangeType::Type & request) { - ComplexArgumentParser::Finalize(request.providerName); - ComplexArgumentParser::Finalize(request.background); - ComplexArgumentParser::Finalize(request.logo); - ComplexArgumentParser::Finalize(request.progressBar); - ComplexArgumentParser::Finalize(request.splash); - ComplexArgumentParser::Finalize(request.waterMark); + ComplexArgumentParser::Finalize(request.current); + ComplexArgumentParser::Finalize(request.previous); } + CHIP_ERROR ComplexArgumentParser::Setup(const char * label, - chip::app::Clusters::BasicInformation::Structs::CapabilityMinimaStruct::Type & request, + chip::app::Clusters::GeneralCommissioning::Structs::BasicCommissioningInfo::Type & request, Json::Value & value) { VerifyOrReturnError(value.isObject(), CHIP_ERROR_INVALID_ARGUMENT); @@ -451,32 +631,35 @@ CHIP_ERROR ComplexArgumentParser::Setup(const char * label, // Copy to track which members we already processed. Json::Value valueCopy(value); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist( - "CapabilityMinimaStruct.caseSessionsPerFabric", "caseSessionsPerFabric", value.isMember("caseSessionsPerFabric"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist( - "CapabilityMinimaStruct.subscriptionsPerFabric", "subscriptionsPerFabric", value.isMember("subscriptionsPerFabric"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("BasicCommissioningInfo.failSafeExpiryLengthSeconds", + "failSafeExpiryLengthSeconds", + value.isMember("failSafeExpiryLengthSeconds"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("BasicCommissioningInfo.maxCumulativeFailsafeSeconds", + "maxCumulativeFailsafeSeconds", + value.isMember("maxCumulativeFailsafeSeconds"))); char labelWithMember[kMaxLabelLength]; - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "caseSessionsPerFabric"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "failSafeExpiryLengthSeconds"); ReturnErrorOnFailure( - ComplexArgumentParser::Setup(labelWithMember, request.caseSessionsPerFabric, value["caseSessionsPerFabric"])); - valueCopy.removeMember("caseSessionsPerFabric"); + ComplexArgumentParser::Setup(labelWithMember, request.failSafeExpiryLengthSeconds, value["failSafeExpiryLengthSeconds"])); + valueCopy.removeMember("failSafeExpiryLengthSeconds"); - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "subscriptionsPerFabric"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "maxCumulativeFailsafeSeconds"); ReturnErrorOnFailure( - ComplexArgumentParser::Setup(labelWithMember, request.subscriptionsPerFabric, value["subscriptionsPerFabric"])); - valueCopy.removeMember("subscriptionsPerFabric"); + ComplexArgumentParser::Setup(labelWithMember, request.maxCumulativeFailsafeSeconds, value["maxCumulativeFailsafeSeconds"])); + valueCopy.removeMember("maxCumulativeFailsafeSeconds"); return ComplexArgumentParser::EnsureNoMembersRemaining(label, valueCopy); } -void ComplexArgumentParser::Finalize(chip::app::Clusters::BasicInformation::Structs::CapabilityMinimaStruct::Type & request) +void ComplexArgumentParser::Finalize(chip::app::Clusters::GeneralCommissioning::Structs::BasicCommissioningInfo::Type & request) { - ComplexArgumentParser::Finalize(request.caseSessionsPerFabric); - ComplexArgumentParser::Finalize(request.subscriptionsPerFabric); + ComplexArgumentParser::Finalize(request.failSafeExpiryLengthSeconds); + ComplexArgumentParser::Finalize(request.maxCumulativeFailsafeSeconds); } + CHIP_ERROR ComplexArgumentParser::Setup(const char * label, - chip::app::Clusters::Channel::Structs::ChannelInfoStruct::Type & request, + chip::app::Clusters::NetworkCommissioning::Structs::NetworkInfo::Type & request, Json::Value & value) { VerifyOrReturnError(value.isObject(), CHIP_ERROR_INVALID_ARGUMENT); @@ -485,77 +668,104 @@ CHIP_ERROR ComplexArgumentParser::Setup(const char * label, Json::Value valueCopy(value); ReturnErrorOnFailure( - ComplexArgumentParser::EnsureMemberExist("ChannelInfoStruct.majorNumber", "majorNumber", value.isMember("majorNumber"))); + ComplexArgumentParser::EnsureMemberExist("NetworkInfo.networkID", "networkID", value.isMember("networkID"))); ReturnErrorOnFailure( - ComplexArgumentParser::EnsureMemberExist("ChannelInfoStruct.minorNumber", "minorNumber", value.isMember("minorNumber"))); + ComplexArgumentParser::EnsureMemberExist("NetworkInfo.connected", "connected", value.isMember("connected"))); char labelWithMember[kMaxLabelLength]; - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "majorNumber"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.majorNumber, value["majorNumber"])); - valueCopy.removeMember("majorNumber"); - - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "minorNumber"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.minorNumber, value["minorNumber"])); - valueCopy.removeMember("minorNumber"); - - if (value.isMember("name")) - { - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "name"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.name, value["name"])); - } - valueCopy.removeMember("name"); - - if (value.isMember("callSign")) - { - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "callSign"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.callSign, value["callSign"])); - } - valueCopy.removeMember("callSign"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "networkID"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.networkID, value["networkID"])); + valueCopy.removeMember("networkID"); - if (value.isMember("affiliateCallSign")) - { - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "affiliateCallSign"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.affiliateCallSign, value["affiliateCallSign"])); - } - valueCopy.removeMember("affiliateCallSign"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "connected"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.connected, value["connected"])); + valueCopy.removeMember("connected"); return ComplexArgumentParser::EnsureNoMembersRemaining(label, valueCopy); } -void ComplexArgumentParser::Finalize(chip::app::Clusters::Channel::Structs::ChannelInfoStruct::Type & request) +void ComplexArgumentParser::Finalize(chip::app::Clusters::NetworkCommissioning::Structs::NetworkInfo::Type & request) { - ComplexArgumentParser::Finalize(request.majorNumber); - ComplexArgumentParser::Finalize(request.minorNumber); - ComplexArgumentParser::Finalize(request.name); - ComplexArgumentParser::Finalize(request.callSign); - ComplexArgumentParser::Finalize(request.affiliateCallSign); + ComplexArgumentParser::Finalize(request.networkID); + ComplexArgumentParser::Finalize(request.connected); } -CHIP_ERROR ComplexArgumentParser::Setup(const char * label, - chip::app::Clusters::ContentLauncher::Structs::ContentSearchStruct::Type & request, - Json::Value & value) + +CHIP_ERROR +ComplexArgumentParser::Setup(const char * label, + chip::app::Clusters::NetworkCommissioning::Structs::ThreadInterfaceScanResult::Type & request, + Json::Value & value) { VerifyOrReturnError(value.isObject(), CHIP_ERROR_INVALID_ARGUMENT); // Copy to track which members we already processed. Json::Value valueCopy(value); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("ContentSearchStruct.parameterList", "parameterList", - value.isMember("parameterList"))); + ReturnErrorOnFailure( + ComplexArgumentParser::EnsureMemberExist("ThreadInterfaceScanResult.panId", "panId", value.isMember("panId"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("ThreadInterfaceScanResult.extendedPanId", "extendedPanId", + value.isMember("extendedPanId"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("ThreadInterfaceScanResult.networkName", "networkName", + value.isMember("networkName"))); + ReturnErrorOnFailure( + ComplexArgumentParser::EnsureMemberExist("ThreadInterfaceScanResult.channel", "channel", value.isMember("channel"))); + ReturnErrorOnFailure( + ComplexArgumentParser::EnsureMemberExist("ThreadInterfaceScanResult.version", "version", value.isMember("version"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("ThreadInterfaceScanResult.extendedAddress", "extendedAddress", + value.isMember("extendedAddress"))); + ReturnErrorOnFailure( + ComplexArgumentParser::EnsureMemberExist("ThreadInterfaceScanResult.rssi", "rssi", value.isMember("rssi"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("ThreadInterfaceScanResult.lqi", "lqi", value.isMember("lqi"))); char labelWithMember[kMaxLabelLength]; - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "parameterList"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.parameterList, value["parameterList"])); - valueCopy.removeMember("parameterList"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "panId"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.panId, value["panId"])); + valueCopy.removeMember("panId"); + + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "extendedPanId"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.extendedPanId, value["extendedPanId"])); + valueCopy.removeMember("extendedPanId"); + + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "networkName"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.networkName, value["networkName"])); + valueCopy.removeMember("networkName"); + + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "channel"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.channel, value["channel"])); + valueCopy.removeMember("channel"); + + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "version"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.version, value["version"])); + valueCopy.removeMember("version"); + + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "extendedAddress"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.extendedAddress, value["extendedAddress"])); + valueCopy.removeMember("extendedAddress"); + + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "rssi"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.rssi, value["rssi"])); + valueCopy.removeMember("rssi"); + + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "lqi"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.lqi, value["lqi"])); + valueCopy.removeMember("lqi"); return ComplexArgumentParser::EnsureNoMembersRemaining(label, valueCopy); } -void ComplexArgumentParser::Finalize(chip::app::Clusters::ContentLauncher::Structs::ContentSearchStruct::Type & request) +void ComplexArgumentParser::Finalize(chip::app::Clusters::NetworkCommissioning::Structs::ThreadInterfaceScanResult::Type & request) { - ComplexArgumentParser::Finalize(request.parameterList); + ComplexArgumentParser::Finalize(request.panId); + ComplexArgumentParser::Finalize(request.extendedPanId); + ComplexArgumentParser::Finalize(request.networkName); + ComplexArgumentParser::Finalize(request.channel); + ComplexArgumentParser::Finalize(request.version); + ComplexArgumentParser::Finalize(request.extendedAddress); + ComplexArgumentParser::Finalize(request.rssi); + ComplexArgumentParser::Finalize(request.lqi); } + CHIP_ERROR ComplexArgumentParser::Setup(const char * label, - chip::app::Clusters::DoorLock::Structs::CredentialStruct::Type & request, + chip::app::Clusters::NetworkCommissioning::Structs::WiFiInterfaceScanResult::Type & request, Json::Value & value) { VerifyOrReturnError(value.isObject(), CHIP_ERROR_INVALID_ARGUMENT); @@ -563,30 +773,57 @@ CHIP_ERROR ComplexArgumentParser::Setup(const char * label, // Copy to track which members we already processed. Json::Value valueCopy(value); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("CredentialStruct.credentialType", "credentialType", - value.isMember("credentialType"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("CredentialStruct.credentialIndex", "credentialIndex", - value.isMember("credentialIndex"))); + ReturnErrorOnFailure( + ComplexArgumentParser::EnsureMemberExist("WiFiInterfaceScanResult.security", "security", value.isMember("security"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("WiFiInterfaceScanResult.ssid", "ssid", value.isMember("ssid"))); + ReturnErrorOnFailure( + ComplexArgumentParser::EnsureMemberExist("WiFiInterfaceScanResult.bssid", "bssid", value.isMember("bssid"))); + ReturnErrorOnFailure( + ComplexArgumentParser::EnsureMemberExist("WiFiInterfaceScanResult.channel", "channel", value.isMember("channel"))); + ReturnErrorOnFailure( + ComplexArgumentParser::EnsureMemberExist("WiFiInterfaceScanResult.wiFiBand", "wiFiBand", value.isMember("wiFiBand"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("WiFiInterfaceScanResult.rssi", "rssi", value.isMember("rssi"))); char labelWithMember[kMaxLabelLength]; - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "credentialType"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.credentialType, value["credentialType"])); - valueCopy.removeMember("credentialType"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "security"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.security, value["security"])); + valueCopy.removeMember("security"); - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "credentialIndex"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.credentialIndex, value["credentialIndex"])); - valueCopy.removeMember("credentialIndex"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "ssid"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.ssid, value["ssid"])); + valueCopy.removeMember("ssid"); + + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "bssid"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.bssid, value["bssid"])); + valueCopy.removeMember("bssid"); + + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "channel"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.channel, value["channel"])); + valueCopy.removeMember("channel"); + + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "wiFiBand"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.wiFiBand, value["wiFiBand"])); + valueCopy.removeMember("wiFiBand"); + + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "rssi"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.rssi, value["rssi"])); + valueCopy.removeMember("rssi"); return ComplexArgumentParser::EnsureNoMembersRemaining(label, valueCopy); } -void ComplexArgumentParser::Finalize(chip::app::Clusters::DoorLock::Structs::CredentialStruct::Type & request) +void ComplexArgumentParser::Finalize(chip::app::Clusters::NetworkCommissioning::Structs::WiFiInterfaceScanResult::Type & request) { - ComplexArgumentParser::Finalize(request.credentialType); - ComplexArgumentParser::Finalize(request.credentialIndex); + ComplexArgumentParser::Finalize(request.security); + ComplexArgumentParser::Finalize(request.ssid); + ComplexArgumentParser::Finalize(request.bssid); + ComplexArgumentParser::Finalize(request.channel); + ComplexArgumentParser::Finalize(request.wiFiBand); + ComplexArgumentParser::Finalize(request.rssi); } + CHIP_ERROR ComplexArgumentParser::Setup(const char * label, - chip::app::Clusters::TimeSynchronization::Structs::DSTOffsetStruct::Type & request, + chip::app::Clusters::GeneralDiagnostics::Structs::NetworkInterface::Type & request, Json::Value & value) { VerifyOrReturnError(value.isObject(), CHIP_ERROR_INVALID_ARGUMENT); @@ -594,36 +831,75 @@ CHIP_ERROR ComplexArgumentParser::Setup(const char * label, // Copy to track which members we already processed. Json::Value valueCopy(value); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("DSTOffsetStruct.offset", "offset", value.isMember("offset"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("DSTOffsetStruct.validStarting", "validStarting", - value.isMember("validStarting"))); - ReturnErrorOnFailure( - ComplexArgumentParser::EnsureMemberExist("DSTOffsetStruct.validUntil", "validUntil", value.isMember("validUntil"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("NetworkInterface.name", "name", value.isMember("name"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("NetworkInterface.isOperational", "isOperational", + value.isMember("isOperational"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("NetworkInterface.offPremiseServicesReachableIPv4", + "offPremiseServicesReachableIPv4", + value.isMember("offPremiseServicesReachableIPv4"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("NetworkInterface.offPremiseServicesReachableIPv6", + "offPremiseServicesReachableIPv6", + value.isMember("offPremiseServicesReachableIPv6"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("NetworkInterface.hardwareAddress", "hardwareAddress", + value.isMember("hardwareAddress"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("NetworkInterface.IPv4Addresses", "IPv4Addresses", + value.isMember("IPv4Addresses"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("NetworkInterface.IPv6Addresses", "IPv6Addresses", + value.isMember("IPv6Addresses"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("NetworkInterface.type", "type", value.isMember("type"))); char labelWithMember[kMaxLabelLength]; - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "offset"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.offset, value["offset"])); - valueCopy.removeMember("offset"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "name"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.name, value["name"])); + valueCopy.removeMember("name"); - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "validStarting"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.validStarting, value["validStarting"])); - valueCopy.removeMember("validStarting"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "isOperational"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.isOperational, value["isOperational"])); + valueCopy.removeMember("isOperational"); - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "validUntil"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.validUntil, value["validUntil"])); - valueCopy.removeMember("validUntil"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "offPremiseServicesReachableIPv4"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.offPremiseServicesReachableIPv4, + value["offPremiseServicesReachableIPv4"])); + valueCopy.removeMember("offPremiseServicesReachableIPv4"); + + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "offPremiseServicesReachableIPv6"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.offPremiseServicesReachableIPv6, + value["offPremiseServicesReachableIPv6"])); + valueCopy.removeMember("offPremiseServicesReachableIPv6"); + + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "hardwareAddress"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.hardwareAddress, value["hardwareAddress"])); + valueCopy.removeMember("hardwareAddress"); + + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "IPv4Addresses"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.IPv4Addresses, value["IPv4Addresses"])); + valueCopy.removeMember("IPv4Addresses"); + + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "IPv6Addresses"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.IPv6Addresses, value["IPv6Addresses"])); + valueCopy.removeMember("IPv6Addresses"); + + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "type"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.type, value["type"])); + valueCopy.removeMember("type"); return ComplexArgumentParser::EnsureNoMembersRemaining(label, valueCopy); } -void ComplexArgumentParser::Finalize(chip::app::Clusters::TimeSynchronization::Structs::DSTOffsetStruct::Type & request) +void ComplexArgumentParser::Finalize(chip::app::Clusters::GeneralDiagnostics::Structs::NetworkInterface::Type & request) { - ComplexArgumentParser::Finalize(request.offset); - ComplexArgumentParser::Finalize(request.validStarting); - ComplexArgumentParser::Finalize(request.validUntil); + ComplexArgumentParser::Finalize(request.name); + ComplexArgumentParser::Finalize(request.isOperational); + ComplexArgumentParser::Finalize(request.offPremiseServicesReachableIPv4); + ComplexArgumentParser::Finalize(request.offPremiseServicesReachableIPv6); + ComplexArgumentParser::Finalize(request.hardwareAddress); + ComplexArgumentParser::Finalize(request.IPv4Addresses); + ComplexArgumentParser::Finalize(request.IPv6Addresses); + ComplexArgumentParser::Finalize(request.type); } + CHIP_ERROR ComplexArgumentParser::Setup(const char * label, - chip::app::Clusters::Descriptor::Structs::DeviceTypeStruct::Type & request, + chip::app::Clusters::SoftwareDiagnostics::Structs::ThreadMetricsStruct::Type & request, Json::Value & value) { VerifyOrReturnError(value.isObject(), CHIP_ERROR_INVALID_ARGUMENT); @@ -631,65 +907,55 @@ CHIP_ERROR ComplexArgumentParser::Setup(const char * label, // Copy to track which members we already processed. Json::Value valueCopy(value); - ReturnErrorOnFailure( - ComplexArgumentParser::EnsureMemberExist("DeviceTypeStruct.deviceType", "deviceType", value.isMember("deviceType"))); - ReturnErrorOnFailure( - ComplexArgumentParser::EnsureMemberExist("DeviceTypeStruct.revision", "revision", value.isMember("revision"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("ThreadMetricsStruct.id", "id", value.isMember("id"))); char labelWithMember[kMaxLabelLength]; - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "deviceType"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.deviceType, value["deviceType"])); - valueCopy.removeMember("deviceType"); - - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "revision"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.revision, value["revision"])); - valueCopy.removeMember("revision"); - - return ComplexArgumentParser::EnsureNoMembersRemaining(label, valueCopy); -} - -void ComplexArgumentParser::Finalize(chip::app::Clusters::Descriptor::Structs::DeviceTypeStruct::Type & request) -{ - ComplexArgumentParser::Finalize(request.deviceType); - ComplexArgumentParser::Finalize(request.revision); -} -CHIP_ERROR ComplexArgumentParser::Setup(const char * label, - chip::app::Clusters::ContentLauncher::Structs::DimensionStruct::Type & request, - Json::Value & value) -{ - VerifyOrReturnError(value.isObject(), CHIP_ERROR_INVALID_ARGUMENT); - - // Copy to track which members we already processed. - Json::Value valueCopy(value); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "id"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.id, value["id"])); + valueCopy.removeMember("id"); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("DimensionStruct.width", "width", value.isMember("width"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("DimensionStruct.height", "height", value.isMember("height"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("DimensionStruct.metric", "metric", value.isMember("metric"))); + if (value.isMember("name")) + { + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "name"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.name, value["name"])); + } + valueCopy.removeMember("name"); - char labelWithMember[kMaxLabelLength]; - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "width"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.width, value["width"])); - valueCopy.removeMember("width"); + if (value.isMember("stackFreeCurrent")) + { + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "stackFreeCurrent"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.stackFreeCurrent, value["stackFreeCurrent"])); + } + valueCopy.removeMember("stackFreeCurrent"); - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "height"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.height, value["height"])); - valueCopy.removeMember("height"); + if (value.isMember("stackFreeMinimum")) + { + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "stackFreeMinimum"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.stackFreeMinimum, value["stackFreeMinimum"])); + } + valueCopy.removeMember("stackFreeMinimum"); - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "metric"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.metric, value["metric"])); - valueCopy.removeMember("metric"); + if (value.isMember("stackSize")) + { + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "stackSize"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.stackSize, value["stackSize"])); + } + valueCopy.removeMember("stackSize"); return ComplexArgumentParser::EnsureNoMembersRemaining(label, valueCopy); } -void ComplexArgumentParser::Finalize(chip::app::Clusters::ContentLauncher::Structs::DimensionStruct::Type & request) +void ComplexArgumentParser::Finalize(chip::app::Clusters::SoftwareDiagnostics::Structs::ThreadMetricsStruct::Type & request) { - ComplexArgumentParser::Finalize(request.width); - ComplexArgumentParser::Finalize(request.height); - ComplexArgumentParser::Finalize(request.metric); + ComplexArgumentParser::Finalize(request.id); + ComplexArgumentParser::Finalize(request.name); + ComplexArgumentParser::Finalize(request.stackFreeCurrent); + ComplexArgumentParser::Finalize(request.stackFreeMinimum); + ComplexArgumentParser::Finalize(request.stackSize); } + CHIP_ERROR ComplexArgumentParser::Setup(const char * label, - chip::app::Clusters::UnitTesting::Structs::DoubleNestedStructList::Type & request, + chip::app::Clusters::ThreadNetworkDiagnostics::Structs::NeighborTable::Type & request, Json::Value & value) { VerifyOrReturnError(value.isObject(), CHIP_ERROR_INVALID_ARGUMENT); @@ -697,96 +963,112 @@ CHIP_ERROR ComplexArgumentParser::Setup(const char * label, // Copy to track which members we already processed. Json::Value valueCopy(value); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("DoubleNestedStructList.a", "a", value.isMember("a"))); + ReturnErrorOnFailure( + ComplexArgumentParser::EnsureMemberExist("NeighborTable.extAddress", "extAddress", value.isMember("extAddress"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("NeighborTable.age", "age", value.isMember("age"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("NeighborTable.rloc16", "rloc16", value.isMember("rloc16"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("NeighborTable.linkFrameCounter", "linkFrameCounter", + value.isMember("linkFrameCounter"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("NeighborTable.mleFrameCounter", "mleFrameCounter", + value.isMember("mleFrameCounter"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("NeighborTable.lqi", "lqi", value.isMember("lqi"))); + ReturnErrorOnFailure( + ComplexArgumentParser::EnsureMemberExist("NeighborTable.averageRssi", "averageRssi", value.isMember("averageRssi"))); + ReturnErrorOnFailure( + ComplexArgumentParser::EnsureMemberExist("NeighborTable.lastRssi", "lastRssi", value.isMember("lastRssi"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("NeighborTable.frameErrorRate", "frameErrorRate", + value.isMember("frameErrorRate"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("NeighborTable.messageErrorRate", "messageErrorRate", + value.isMember("messageErrorRate"))); + ReturnErrorOnFailure( + ComplexArgumentParser::EnsureMemberExist("NeighborTable.rxOnWhenIdle", "rxOnWhenIdle", value.isMember("rxOnWhenIdle"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("NeighborTable.fullThreadDevice", "fullThreadDevice", + value.isMember("fullThreadDevice"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("NeighborTable.fullNetworkData", "fullNetworkData", + value.isMember("fullNetworkData"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("NeighborTable.isChild", "isChild", value.isMember("isChild"))); char labelWithMember[kMaxLabelLength]; - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "a"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.a, value["a"])); - valueCopy.removeMember("a"); - - return ComplexArgumentParser::EnsureNoMembersRemaining(label, valueCopy); -} + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "extAddress"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.extAddress, value["extAddress"])); + valueCopy.removeMember("extAddress"); -void ComplexArgumentParser::Finalize(chip::app::Clusters::UnitTesting::Structs::DoubleNestedStructList::Type & request) -{ - ComplexArgumentParser::Finalize(request.a); -} -CHIP_ERROR ComplexArgumentParser::Setup(const char * label, - chip::app::Clusters::Actions::Structs::EndpointListStruct::Type & request, - Json::Value & value) -{ - VerifyOrReturnError(value.isObject(), CHIP_ERROR_INVALID_ARGUMENT); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "age"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.age, value["age"])); + valueCopy.removeMember("age"); - // Copy to track which members we already processed. - Json::Value valueCopy(value); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "rloc16"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.rloc16, value["rloc16"])); + valueCopy.removeMember("rloc16"); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("EndpointListStruct.endpointListID", "endpointListID", - value.isMember("endpointListID"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("EndpointListStruct.name", "name", value.isMember("name"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("EndpointListStruct.type", "type", value.isMember("type"))); - ReturnErrorOnFailure( - ComplexArgumentParser::EnsureMemberExist("EndpointListStruct.endpoints", "endpoints", value.isMember("endpoints"))); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "linkFrameCounter"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.linkFrameCounter, value["linkFrameCounter"])); + valueCopy.removeMember("linkFrameCounter"); - char labelWithMember[kMaxLabelLength]; - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "endpointListID"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.endpointListID, value["endpointListID"])); - valueCopy.removeMember("endpointListID"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "mleFrameCounter"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.mleFrameCounter, value["mleFrameCounter"])); + valueCopy.removeMember("mleFrameCounter"); - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "name"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.name, value["name"])); - valueCopy.removeMember("name"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "lqi"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.lqi, value["lqi"])); + valueCopy.removeMember("lqi"); - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "type"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.type, value["type"])); - valueCopy.removeMember("type"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "averageRssi"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.averageRssi, value["averageRssi"])); + valueCopy.removeMember("averageRssi"); - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "endpoints"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.endpoints, value["endpoints"])); - valueCopy.removeMember("endpoints"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "lastRssi"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.lastRssi, value["lastRssi"])); + valueCopy.removeMember("lastRssi"); - return ComplexArgumentParser::EnsureNoMembersRemaining(label, valueCopy); -} + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "frameErrorRate"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.frameErrorRate, value["frameErrorRate"])); + valueCopy.removeMember("frameErrorRate"); -void ComplexArgumentParser::Finalize(chip::app::Clusters::Actions::Structs::EndpointListStruct::Type & request) -{ - ComplexArgumentParser::Finalize(request.endpointListID); - ComplexArgumentParser::Finalize(request.name); - ComplexArgumentParser::Finalize(request.type); - ComplexArgumentParser::Finalize(request.endpoints); -} -CHIP_ERROR ComplexArgumentParser::Setup(const char * label, chip::app::Clusters::Scenes::Structs::ExtensionFieldSet::Type & request, - Json::Value & value) -{ - VerifyOrReturnError(value.isObject(), CHIP_ERROR_INVALID_ARGUMENT); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "messageErrorRate"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.messageErrorRate, value["messageErrorRate"])); + valueCopy.removeMember("messageErrorRate"); - // Copy to track which members we already processed. - Json::Value valueCopy(value); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "rxOnWhenIdle"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.rxOnWhenIdle, value["rxOnWhenIdle"])); + valueCopy.removeMember("rxOnWhenIdle"); - ReturnErrorOnFailure( - ComplexArgumentParser::EnsureMemberExist("ExtensionFieldSet.clusterID", "clusterID", value.isMember("clusterID"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("ExtensionFieldSet.attributeValueList", "attributeValueList", - value.isMember("attributeValueList"))); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "fullThreadDevice"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.fullThreadDevice, value["fullThreadDevice"])); + valueCopy.removeMember("fullThreadDevice"); - char labelWithMember[kMaxLabelLength]; - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "clusterID"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.clusterID, value["clusterID"])); - valueCopy.removeMember("clusterID"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "fullNetworkData"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.fullNetworkData, value["fullNetworkData"])); + valueCopy.removeMember("fullNetworkData"); - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "attributeValueList"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.attributeValueList, value["attributeValueList"])); - valueCopy.removeMember("attributeValueList"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "isChild"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.isChild, value["isChild"])); + valueCopy.removeMember("isChild"); return ComplexArgumentParser::EnsureNoMembersRemaining(label, valueCopy); } -void ComplexArgumentParser::Finalize(chip::app::Clusters::Scenes::Structs::ExtensionFieldSet::Type & request) +void ComplexArgumentParser::Finalize(chip::app::Clusters::ThreadNetworkDiagnostics::Structs::NeighborTable::Type & request) { - ComplexArgumentParser::Finalize(request.clusterID); - ComplexArgumentParser::Finalize(request.attributeValueList); + ComplexArgumentParser::Finalize(request.extAddress); + ComplexArgumentParser::Finalize(request.age); + ComplexArgumentParser::Finalize(request.rloc16); + ComplexArgumentParser::Finalize(request.linkFrameCounter); + ComplexArgumentParser::Finalize(request.mleFrameCounter); + ComplexArgumentParser::Finalize(request.lqi); + ComplexArgumentParser::Finalize(request.averageRssi); + ComplexArgumentParser::Finalize(request.lastRssi); + ComplexArgumentParser::Finalize(request.frameErrorRate); + ComplexArgumentParser::Finalize(request.messageErrorRate); + ComplexArgumentParser::Finalize(request.rxOnWhenIdle); + ComplexArgumentParser::Finalize(request.fullThreadDevice); + ComplexArgumentParser::Finalize(request.fullNetworkData); + ComplexArgumentParser::Finalize(request.isChild); } + CHIP_ERROR ComplexArgumentParser::Setup(const char * label, - chip::app::Clusters::OperationalCredentials::Structs::FabricDescriptorStruct::Type & request, + chip::app::Clusters::ThreadNetworkDiagnostics::Structs::OperationalDatasetComponents::Type & request, Json::Value & value) { VerifyOrReturnError(value.isObject(), CHIP_ERROR_INVALID_ARGUMENT); @@ -794,59 +1076,108 @@ ComplexArgumentParser::Setup(const char * label, // Copy to track which members we already processed. Json::Value valueCopy(value); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("FabricDescriptorStruct.rootPublicKey", "rootPublicKey", - value.isMember("rootPublicKey"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist( + "OperationalDatasetComponents.activeTimestampPresent", "activeTimestampPresent", value.isMember("activeTimestampPresent"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("OperationalDatasetComponents.pendingTimestampPresent", + "pendingTimestampPresent", + value.isMember("pendingTimestampPresent"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("OperationalDatasetComponents.masterKeyPresent", + "masterKeyPresent", value.isMember("masterKeyPresent"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("OperationalDatasetComponents.networkNamePresent", + "networkNamePresent", value.isMember("networkNamePresent"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("OperationalDatasetComponents.extendedPanIdPresent", + "extendedPanIdPresent", value.isMember("extendedPanIdPresent"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist( + "OperationalDatasetComponents.meshLocalPrefixPresent", "meshLocalPrefixPresent", value.isMember("meshLocalPrefixPresent"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("OperationalDatasetComponents.delayPresent", "delayPresent", + value.isMember("delayPresent"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("OperationalDatasetComponents.panIdPresent", "panIdPresent", + value.isMember("panIdPresent"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("OperationalDatasetComponents.channelPresent", "channelPresent", + value.isMember("channelPresent"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("OperationalDatasetComponents.pskcPresent", "pskcPresent", + value.isMember("pskcPresent"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist( + "OperationalDatasetComponents.securityPolicyPresent", "securityPolicyPresent", value.isMember("securityPolicyPresent"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("OperationalDatasetComponents.channelMaskPresent", + "channelMaskPresent", value.isMember("channelMaskPresent"))); + + char labelWithMember[kMaxLabelLength]; + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "activeTimestampPresent"); ReturnErrorOnFailure( - ComplexArgumentParser::EnsureMemberExist("FabricDescriptorStruct.vendorID", "vendorID", value.isMember("vendorID"))); + ComplexArgumentParser::Setup(labelWithMember, request.activeTimestampPresent, value["activeTimestampPresent"])); + valueCopy.removeMember("activeTimestampPresent"); + + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "pendingTimestampPresent"); ReturnErrorOnFailure( - ComplexArgumentParser::EnsureMemberExist("FabricDescriptorStruct.fabricID", "fabricID", value.isMember("fabricID"))); + ComplexArgumentParser::Setup(labelWithMember, request.pendingTimestampPresent, value["pendingTimestampPresent"])); + valueCopy.removeMember("pendingTimestampPresent"); + + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "masterKeyPresent"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.masterKeyPresent, value["masterKeyPresent"])); + valueCopy.removeMember("masterKeyPresent"); + + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "networkNamePresent"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.networkNamePresent, value["networkNamePresent"])); + valueCopy.removeMember("networkNamePresent"); + + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "extendedPanIdPresent"); ReturnErrorOnFailure( - ComplexArgumentParser::EnsureMemberExist("FabricDescriptorStruct.nodeID", "nodeID", value.isMember("nodeID"))); + ComplexArgumentParser::Setup(labelWithMember, request.extendedPanIdPresent, value["extendedPanIdPresent"])); + valueCopy.removeMember("extendedPanIdPresent"); + + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "meshLocalPrefixPresent"); ReturnErrorOnFailure( - ComplexArgumentParser::EnsureMemberExist("FabricDescriptorStruct.label", "label", value.isMember("label"))); + ComplexArgumentParser::Setup(labelWithMember, request.meshLocalPrefixPresent, value["meshLocalPrefixPresent"])); + valueCopy.removeMember("meshLocalPrefixPresent"); - char labelWithMember[kMaxLabelLength]; - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "rootPublicKey"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.rootPublicKey, value["rootPublicKey"])); - valueCopy.removeMember("rootPublicKey"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "delayPresent"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.delayPresent, value["delayPresent"])); + valueCopy.removeMember("delayPresent"); - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "vendorID"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.vendorID, value["vendorID"])); - valueCopy.removeMember("vendorID"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "panIdPresent"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.panIdPresent, value["panIdPresent"])); + valueCopy.removeMember("panIdPresent"); - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "fabricID"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.fabricID, value["fabricID"])); - valueCopy.removeMember("fabricID"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "channelPresent"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.channelPresent, value["channelPresent"])); + valueCopy.removeMember("channelPresent"); - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "nodeID"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.nodeID, value["nodeID"])); - valueCopy.removeMember("nodeID"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "pskcPresent"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.pskcPresent, value["pskcPresent"])); + valueCopy.removeMember("pskcPresent"); - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "label"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.label, value["label"])); - valueCopy.removeMember("label"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "securityPolicyPresent"); + ReturnErrorOnFailure( + ComplexArgumentParser::Setup(labelWithMember, request.securityPolicyPresent, value["securityPolicyPresent"])); + valueCopy.removeMember("securityPolicyPresent"); - if (value.isMember("fabricIndex")) - { - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "fabricIndex"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.fabricIndex, value["fabricIndex"])); - } - valueCopy.removeMember("fabricIndex"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "channelMaskPresent"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.channelMaskPresent, value["channelMaskPresent"])); + valueCopy.removeMember("channelMaskPresent"); return ComplexArgumentParser::EnsureNoMembersRemaining(label, valueCopy); } -void ComplexArgumentParser::Finalize(chip::app::Clusters::OperationalCredentials::Structs::FabricDescriptorStruct::Type & request) +void ComplexArgumentParser::Finalize( + chip::app::Clusters::ThreadNetworkDiagnostics::Structs::OperationalDatasetComponents::Type & request) { - ComplexArgumentParser::Finalize(request.rootPublicKey); - ComplexArgumentParser::Finalize(request.vendorID); - ComplexArgumentParser::Finalize(request.fabricID); - ComplexArgumentParser::Finalize(request.nodeID); - ComplexArgumentParser::Finalize(request.label); - ComplexArgumentParser::Finalize(request.fabricIndex); + ComplexArgumentParser::Finalize(request.activeTimestampPresent); + ComplexArgumentParser::Finalize(request.pendingTimestampPresent); + ComplexArgumentParser::Finalize(request.masterKeyPresent); + ComplexArgumentParser::Finalize(request.networkNamePresent); + ComplexArgumentParser::Finalize(request.extendedPanIdPresent); + ComplexArgumentParser::Finalize(request.meshLocalPrefixPresent); + ComplexArgumentParser::Finalize(request.delayPresent); + ComplexArgumentParser::Finalize(request.panIdPresent); + ComplexArgumentParser::Finalize(request.channelPresent); + ComplexArgumentParser::Finalize(request.pskcPresent); + ComplexArgumentParser::Finalize(request.securityPolicyPresent); + ComplexArgumentParser::Finalize(request.channelMaskPresent); } + CHIP_ERROR ComplexArgumentParser::Setup(const char * label, - chip::app::Clusters::GroupKeyManagement::Structs::GroupInfoMapStruct::Type & request, + chip::app::Clusters::ThreadNetworkDiagnostics::Structs::RouteTable::Type & request, Json::Value & value) { VerifyOrReturnError(value.isObject(), CHIP_ERROR_INVALID_ARGUMENT); @@ -855,45 +1186,79 @@ CHIP_ERROR ComplexArgumentParser::Setup(const char * label, Json::Value valueCopy(value); ReturnErrorOnFailure( - ComplexArgumentParser::EnsureMemberExist("GroupInfoMapStruct.groupId", "groupId", value.isMember("groupId"))); + ComplexArgumentParser::EnsureMemberExist("RouteTable.extAddress", "extAddress", value.isMember("extAddress"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("RouteTable.rloc16", "rloc16", value.isMember("rloc16"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("RouteTable.routerId", "routerId", value.isMember("routerId"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("RouteTable.nextHop", "nextHop", value.isMember("nextHop"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("RouteTable.pathCost", "pathCost", value.isMember("pathCost"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("RouteTable.LQIIn", "LQIIn", value.isMember("LQIIn"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("RouteTable.LQIOut", "LQIOut", value.isMember("LQIOut"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("RouteTable.age", "age", value.isMember("age"))); ReturnErrorOnFailure( - ComplexArgumentParser::EnsureMemberExist("GroupInfoMapStruct.endpoints", "endpoints", value.isMember("endpoints"))); + ComplexArgumentParser::EnsureMemberExist("RouteTable.allocated", "allocated", value.isMember("allocated"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("RouteTable.linkEstablished", "linkEstablished", + value.isMember("linkEstablished"))); char labelWithMember[kMaxLabelLength]; - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "groupId"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.groupId, value["groupId"])); - valueCopy.removeMember("groupId"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "extAddress"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.extAddress, value["extAddress"])); + valueCopy.removeMember("extAddress"); - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "endpoints"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.endpoints, value["endpoints"])); - valueCopy.removeMember("endpoints"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "rloc16"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.rloc16, value["rloc16"])); + valueCopy.removeMember("rloc16"); - if (value.isMember("groupName")) - { - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "groupName"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.groupName, value["groupName"])); - } - valueCopy.removeMember("groupName"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "routerId"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.routerId, value["routerId"])); + valueCopy.removeMember("routerId"); - if (value.isMember("fabricIndex")) - { - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "fabricIndex"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.fabricIndex, value["fabricIndex"])); - } - valueCopy.removeMember("fabricIndex"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "nextHop"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.nextHop, value["nextHop"])); + valueCopy.removeMember("nextHop"); + + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "pathCost"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.pathCost, value["pathCost"])); + valueCopy.removeMember("pathCost"); + + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "LQIIn"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.LQIIn, value["LQIIn"])); + valueCopy.removeMember("LQIIn"); + + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "LQIOut"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.LQIOut, value["LQIOut"])); + valueCopy.removeMember("LQIOut"); + + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "age"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.age, value["age"])); + valueCopy.removeMember("age"); + + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "allocated"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.allocated, value["allocated"])); + valueCopy.removeMember("allocated"); + + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "linkEstablished"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.linkEstablished, value["linkEstablished"])); + valueCopy.removeMember("linkEstablished"); return ComplexArgumentParser::EnsureNoMembersRemaining(label, valueCopy); } -void ComplexArgumentParser::Finalize(chip::app::Clusters::GroupKeyManagement::Structs::GroupInfoMapStruct::Type & request) +void ComplexArgumentParser::Finalize(chip::app::Clusters::ThreadNetworkDiagnostics::Structs::RouteTable::Type & request) { - ComplexArgumentParser::Finalize(request.groupId); - ComplexArgumentParser::Finalize(request.endpoints); - ComplexArgumentParser::Finalize(request.groupName); - ComplexArgumentParser::Finalize(request.fabricIndex); + ComplexArgumentParser::Finalize(request.extAddress); + ComplexArgumentParser::Finalize(request.rloc16); + ComplexArgumentParser::Finalize(request.routerId); + ComplexArgumentParser::Finalize(request.nextHop); + ComplexArgumentParser::Finalize(request.pathCost); + ComplexArgumentParser::Finalize(request.LQIIn); + ComplexArgumentParser::Finalize(request.LQIOut); + ComplexArgumentParser::Finalize(request.age); + ComplexArgumentParser::Finalize(request.allocated); + ComplexArgumentParser::Finalize(request.linkEstablished); } + CHIP_ERROR ComplexArgumentParser::Setup(const char * label, - chip::app::Clusters::GroupKeyManagement::Structs::GroupKeyMapStruct::Type & request, + chip::app::Clusters::ThreadNetworkDiagnostics::Structs::SecurityPolicy::Type & request, Json::Value & value) { VerifyOrReturnError(value.isObject(), CHIP_ERROR_INVALID_ARGUMENT); @@ -902,37 +1267,29 @@ CHIP_ERROR ComplexArgumentParser::Setup(const char * label, Json::Value valueCopy(value); ReturnErrorOnFailure( - ComplexArgumentParser::EnsureMemberExist("GroupKeyMapStruct.groupId", "groupId", value.isMember("groupId"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("GroupKeyMapStruct.groupKeySetID", "groupKeySetID", - value.isMember("groupKeySetID"))); + ComplexArgumentParser::EnsureMemberExist("SecurityPolicy.rotationTime", "rotationTime", value.isMember("rotationTime"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("SecurityPolicy.flags", "flags", value.isMember("flags"))); char labelWithMember[kMaxLabelLength]; - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "groupId"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.groupId, value["groupId"])); - valueCopy.removeMember("groupId"); - - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "groupKeySetID"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.groupKeySetID, value["groupKeySetID"])); - valueCopy.removeMember("groupKeySetID"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "rotationTime"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.rotationTime, value["rotationTime"])); + valueCopy.removeMember("rotationTime"); - if (value.isMember("fabricIndex")) - { - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "fabricIndex"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.fabricIndex, value["fabricIndex"])); - } - valueCopy.removeMember("fabricIndex"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "flags"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.flags, value["flags"])); + valueCopy.removeMember("flags"); return ComplexArgumentParser::EnsureNoMembersRemaining(label, valueCopy); } -void ComplexArgumentParser::Finalize(chip::app::Clusters::GroupKeyManagement::Structs::GroupKeyMapStruct::Type & request) +void ComplexArgumentParser::Finalize(chip::app::Clusters::ThreadNetworkDiagnostics::Structs::SecurityPolicy::Type & request) { - ComplexArgumentParser::Finalize(request.groupId); - ComplexArgumentParser::Finalize(request.groupKeySetID); - ComplexArgumentParser::Finalize(request.fabricIndex); + ComplexArgumentParser::Finalize(request.rotationTime); + ComplexArgumentParser::Finalize(request.flags); } + CHIP_ERROR ComplexArgumentParser::Setup(const char * label, - chip::app::Clusters::GroupKeyManagement::Structs::GroupKeySetStruct::Type & request, + chip::app::Clusters::TimeSynchronization::Structs::DSTOffsetStruct::Type & request, Json::Value & value) { VerifyOrReturnError(value.isObject(), CHIP_ERROR_INVALID_ARGUMENT); @@ -940,73 +1297,37 @@ CHIP_ERROR ComplexArgumentParser::Setup(const char * label, // Copy to track which members we already processed. Json::Value valueCopy(value); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("GroupKeySetStruct.groupKeySetID", "groupKeySetID", - value.isMember("groupKeySetID"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist( - "GroupKeySetStruct.groupKeySecurityPolicy", "groupKeySecurityPolicy", value.isMember("groupKeySecurityPolicy"))); - ReturnErrorOnFailure( - ComplexArgumentParser::EnsureMemberExist("GroupKeySetStruct.epochKey0", "epochKey0", value.isMember("epochKey0"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("GroupKeySetStruct.epochStartTime0", "epochStartTime0", - value.isMember("epochStartTime0"))); - ReturnErrorOnFailure( - ComplexArgumentParser::EnsureMemberExist("GroupKeySetStruct.epochKey1", "epochKey1", value.isMember("epochKey1"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("GroupKeySetStruct.epochStartTime1", "epochStartTime1", - value.isMember("epochStartTime1"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("DSTOffsetStruct.offset", "offset", value.isMember("offset"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("DSTOffsetStruct.validStarting", "validStarting", + value.isMember("validStarting"))); ReturnErrorOnFailure( - ComplexArgumentParser::EnsureMemberExist("GroupKeySetStruct.epochKey2", "epochKey2", value.isMember("epochKey2"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("GroupKeySetStruct.epochStartTime2", "epochStartTime2", - value.isMember("epochStartTime2"))); + ComplexArgumentParser::EnsureMemberExist("DSTOffsetStruct.validUntil", "validUntil", value.isMember("validUntil"))); char labelWithMember[kMaxLabelLength]; - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "groupKeySetID"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.groupKeySetID, value["groupKeySetID"])); - valueCopy.removeMember("groupKeySetID"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "offset"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.offset, value["offset"])); + valueCopy.removeMember("offset"); - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "groupKeySecurityPolicy"); - ReturnErrorOnFailure( - ComplexArgumentParser::Setup(labelWithMember, request.groupKeySecurityPolicy, value["groupKeySecurityPolicy"])); - valueCopy.removeMember("groupKeySecurityPolicy"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "validStarting"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.validStarting, value["validStarting"])); + valueCopy.removeMember("validStarting"); - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "epochKey0"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.epochKey0, value["epochKey0"])); - valueCopy.removeMember("epochKey0"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "validUntil"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.validUntil, value["validUntil"])); + valueCopy.removeMember("validUntil"); - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "epochStartTime0"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.epochStartTime0, value["epochStartTime0"])); - valueCopy.removeMember("epochStartTime0"); + return ComplexArgumentParser::EnsureNoMembersRemaining(label, valueCopy); +} - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "epochKey1"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.epochKey1, value["epochKey1"])); - valueCopy.removeMember("epochKey1"); - - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "epochStartTime1"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.epochStartTime1, value["epochStartTime1"])); - valueCopy.removeMember("epochStartTime1"); - - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "epochKey2"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.epochKey2, value["epochKey2"])); - valueCopy.removeMember("epochKey2"); - - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "epochStartTime2"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.epochStartTime2, value["epochStartTime2"])); - valueCopy.removeMember("epochStartTime2"); - - return ComplexArgumentParser::EnsureNoMembersRemaining(label, valueCopy); -} - -void ComplexArgumentParser::Finalize(chip::app::Clusters::GroupKeyManagement::Structs::GroupKeySetStruct::Type & request) +void ComplexArgumentParser::Finalize(chip::app::Clusters::TimeSynchronization::Structs::DSTOffsetStruct::Type & request) { - ComplexArgumentParser::Finalize(request.groupKeySetID); - ComplexArgumentParser::Finalize(request.groupKeySecurityPolicy); - ComplexArgumentParser::Finalize(request.epochKey0); - ComplexArgumentParser::Finalize(request.epochStartTime0); - ComplexArgumentParser::Finalize(request.epochKey1); - ComplexArgumentParser::Finalize(request.epochStartTime1); - ComplexArgumentParser::Finalize(request.epochKey2); - ComplexArgumentParser::Finalize(request.epochStartTime2); + ComplexArgumentParser::Finalize(request.offset); + ComplexArgumentParser::Finalize(request.validStarting); + ComplexArgumentParser::Finalize(request.validUntil); } + CHIP_ERROR ComplexArgumentParser::Setup(const char * label, - chip::app::Clusters::MediaInput::Structs::InputInfoStruct::Type & request, + chip::app::Clusters::TimeSynchronization::Structs::TimeZoneStruct::Type & request, Json::Value & value) { VerifyOrReturnError(value.isObject(), CHIP_ERROR_INVALID_ARGUMENT); @@ -1014,69 +1335,99 @@ CHIP_ERROR ComplexArgumentParser::Setup(const char * label, // Copy to track which members we already processed. Json::Value valueCopy(value); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("InputInfoStruct.index", "index", value.isMember("index"))); - ReturnErrorOnFailure( - ComplexArgumentParser::EnsureMemberExist("InputInfoStruct.inputType", "inputType", value.isMember("inputType"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("InputInfoStruct.name", "name", value.isMember("name"))); - ReturnErrorOnFailure( - ComplexArgumentParser::EnsureMemberExist("InputInfoStruct.description", "description", value.isMember("description"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("TimeZoneStruct.offset", "offset", value.isMember("offset"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("TimeZoneStruct.validAt", "validAt", value.isMember("validAt"))); char labelWithMember[kMaxLabelLength]; - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "index"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.index, value["index"])); - valueCopy.removeMember("index"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "offset"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.offset, value["offset"])); + valueCopy.removeMember("offset"); - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "inputType"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.inputType, value["inputType"])); - valueCopy.removeMember("inputType"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "validAt"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.validAt, value["validAt"])); + valueCopy.removeMember("validAt"); - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "name"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.name, value["name"])); + if (value.isMember("name")) + { + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "name"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.name, value["name"])); + } valueCopy.removeMember("name"); - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "description"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.description, value["description"])); - valueCopy.removeMember("description"); - return ComplexArgumentParser::EnsureNoMembersRemaining(label, valueCopy); } -void ComplexArgumentParser::Finalize(chip::app::Clusters::MediaInput::Structs::InputInfoStruct::Type & request) +void ComplexArgumentParser::Finalize(chip::app::Clusters::TimeSynchronization::Structs::TimeZoneStruct::Type & request) { - ComplexArgumentParser::Finalize(request.index); - ComplexArgumentParser::Finalize(request.inputType); + ComplexArgumentParser::Finalize(request.offset); + ComplexArgumentParser::Finalize(request.validAt); ComplexArgumentParser::Finalize(request.name); - ComplexArgumentParser::Finalize(request.description); } -CHIP_ERROR ComplexArgumentParser::Setup(const char * label, chip::app::Clusters::detail::Structs::LabelStruct::Type & request, - Json::Value & value) + +CHIP_ERROR +ComplexArgumentParser::Setup(const char * label, + chip::app::Clusters::OperationalCredentials::Structs::FabricDescriptorStruct::Type & request, + Json::Value & value) { VerifyOrReturnError(value.isObject(), CHIP_ERROR_INVALID_ARGUMENT); // Copy to track which members we already processed. Json::Value valueCopy(value); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("LabelStruct.label", "label", value.isMember("label"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("LabelStruct.value", "value", value.isMember("value"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("FabricDescriptorStruct.rootPublicKey", "rootPublicKey", + value.isMember("rootPublicKey"))); + ReturnErrorOnFailure( + ComplexArgumentParser::EnsureMemberExist("FabricDescriptorStruct.vendorID", "vendorID", value.isMember("vendorID"))); + ReturnErrorOnFailure( + ComplexArgumentParser::EnsureMemberExist("FabricDescriptorStruct.fabricID", "fabricID", value.isMember("fabricID"))); + ReturnErrorOnFailure( + ComplexArgumentParser::EnsureMemberExist("FabricDescriptorStruct.nodeID", "nodeID", value.isMember("nodeID"))); + ReturnErrorOnFailure( + ComplexArgumentParser::EnsureMemberExist("FabricDescriptorStruct.label", "label", value.isMember("label"))); char labelWithMember[kMaxLabelLength]; + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "rootPublicKey"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.rootPublicKey, value["rootPublicKey"])); + valueCopy.removeMember("rootPublicKey"); + + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "vendorID"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.vendorID, value["vendorID"])); + valueCopy.removeMember("vendorID"); + + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "fabricID"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.fabricID, value["fabricID"])); + valueCopy.removeMember("fabricID"); + + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "nodeID"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.nodeID, value["nodeID"])); + valueCopy.removeMember("nodeID"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "label"); ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.label, value["label"])); valueCopy.removeMember("label"); - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "value"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.value, value["value"])); - valueCopy.removeMember("value"); + if (value.isMember("fabricIndex")) + { + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "fabricIndex"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.fabricIndex, value["fabricIndex"])); + } + valueCopy.removeMember("fabricIndex"); return ComplexArgumentParser::EnsureNoMembersRemaining(label, valueCopy); } -void ComplexArgumentParser::Finalize(chip::app::Clusters::detail::Structs::LabelStruct::Type & request) +void ComplexArgumentParser::Finalize(chip::app::Clusters::OperationalCredentials::Structs::FabricDescriptorStruct::Type & request) { + ComplexArgumentParser::Finalize(request.rootPublicKey); + ComplexArgumentParser::Finalize(request.vendorID); + ComplexArgumentParser::Finalize(request.fabricID); + ComplexArgumentParser::Finalize(request.nodeID); ComplexArgumentParser::Finalize(request.label); - ComplexArgumentParser::Finalize(request.value); + ComplexArgumentParser::Finalize(request.fabricIndex); } -CHIP_ERROR ComplexArgumentParser::Setup(const char * label, chip::app::Clusters::Channel::Structs::LineupInfoStruct::Type & request, + +CHIP_ERROR ComplexArgumentParser::Setup(const char * label, + chip::app::Clusters::OperationalCredentials::Structs::NOCStruct::Type & request, Json::Value & value) { VerifyOrReturnError(value.isObject(), CHIP_ERROR_INVALID_ARGUMENT); @@ -1084,46 +1435,37 @@ CHIP_ERROR ComplexArgumentParser::Setup(const char * label, chip::app::Clusters: // Copy to track which members we already processed. Json::Value valueCopy(value); - ReturnErrorOnFailure( - ComplexArgumentParser::EnsureMemberExist("LineupInfoStruct.operatorName", "operatorName", value.isMember("operatorName"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("LineupInfoStruct.lineupInfoType", "lineupInfoType", - value.isMember("lineupInfoType"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("NOCStruct.noc", "noc", value.isMember("noc"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("NOCStruct.icac", "icac", value.isMember("icac"))); char labelWithMember[kMaxLabelLength]; - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "operatorName"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.operatorName, value["operatorName"])); - valueCopy.removeMember("operatorName"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "noc"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.noc, value["noc"])); + valueCopy.removeMember("noc"); - if (value.isMember("lineupName")) - { - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "lineupName"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.lineupName, value["lineupName"])); - } - valueCopy.removeMember("lineupName"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "icac"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.icac, value["icac"])); + valueCopy.removeMember("icac"); - if (value.isMember("postalCode")) + if (value.isMember("fabricIndex")) { - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "postalCode"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.postalCode, value["postalCode"])); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "fabricIndex"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.fabricIndex, value["fabricIndex"])); } - valueCopy.removeMember("postalCode"); - - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "lineupInfoType"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.lineupInfoType, value["lineupInfoType"])); - valueCopy.removeMember("lineupInfoType"); + valueCopy.removeMember("fabricIndex"); return ComplexArgumentParser::EnsureNoMembersRemaining(label, valueCopy); } -void ComplexArgumentParser::Finalize(chip::app::Clusters::Channel::Structs::LineupInfoStruct::Type & request) +void ComplexArgumentParser::Finalize(chip::app::Clusters::OperationalCredentials::Structs::NOCStruct::Type & request) { - ComplexArgumentParser::Finalize(request.operatorName); - ComplexArgumentParser::Finalize(request.lineupName); - ComplexArgumentParser::Finalize(request.postalCode); - ComplexArgumentParser::Finalize(request.lineupInfoType); + ComplexArgumentParser::Finalize(request.noc); + ComplexArgumentParser::Finalize(request.icac); + ComplexArgumentParser::Finalize(request.fabricIndex); } + CHIP_ERROR ComplexArgumentParser::Setup(const char * label, - chip::app::Clusters::ModeSelect::Structs::ModeOptionStruct::Type & request, + chip::app::Clusters::GroupKeyManagement::Structs::GroupInfoMapStruct::Type & request, Json::Value & value) { VerifyOrReturnError(value.isObject(), CHIP_ERROR_INVALID_ARGUMENT); @@ -1131,35 +1473,47 @@ CHIP_ERROR ComplexArgumentParser::Setup(const char * label, // Copy to track which members we already processed. Json::Value valueCopy(value); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("ModeOptionStruct.label", "label", value.isMember("label"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("ModeOptionStruct.mode", "mode", value.isMember("mode"))); ReturnErrorOnFailure( - ComplexArgumentParser::EnsureMemberExist("ModeOptionStruct.semanticTags", "semanticTags", value.isMember("semanticTags"))); + ComplexArgumentParser::EnsureMemberExist("GroupInfoMapStruct.groupId", "groupId", value.isMember("groupId"))); + ReturnErrorOnFailure( + ComplexArgumentParser::EnsureMemberExist("GroupInfoMapStruct.endpoints", "endpoints", value.isMember("endpoints"))); char labelWithMember[kMaxLabelLength]; - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "label"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.label, value["label"])); - valueCopy.removeMember("label"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "groupId"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.groupId, value["groupId"])); + valueCopy.removeMember("groupId"); - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "mode"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.mode, value["mode"])); - valueCopy.removeMember("mode"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "endpoints"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.endpoints, value["endpoints"])); + valueCopy.removeMember("endpoints"); - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "semanticTags"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.semanticTags, value["semanticTags"])); - valueCopy.removeMember("semanticTags"); + if (value.isMember("groupName")) + { + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "groupName"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.groupName, value["groupName"])); + } + valueCopy.removeMember("groupName"); + + if (value.isMember("fabricIndex")) + { + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "fabricIndex"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.fabricIndex, value["fabricIndex"])); + } + valueCopy.removeMember("fabricIndex"); return ComplexArgumentParser::EnsureNoMembersRemaining(label, valueCopy); } -void ComplexArgumentParser::Finalize(chip::app::Clusters::ModeSelect::Structs::ModeOptionStruct::Type & request) +void ComplexArgumentParser::Finalize(chip::app::Clusters::GroupKeyManagement::Structs::GroupInfoMapStruct::Type & request) { - ComplexArgumentParser::Finalize(request.label); - ComplexArgumentParser::Finalize(request.mode); - ComplexArgumentParser::Finalize(request.semanticTags); + ComplexArgumentParser::Finalize(request.groupId); + ComplexArgumentParser::Finalize(request.endpoints); + ComplexArgumentParser::Finalize(request.groupName); + ComplexArgumentParser::Finalize(request.fabricIndex); } + CHIP_ERROR ComplexArgumentParser::Setup(const char * label, - chip::app::Clusters::ClientMonitoring::Structs::MonitoringRegistration::Type & request, + chip::app::Clusters::GroupKeyManagement::Structs::GroupKeyMapStruct::Type & request, Json::Value & value) { VerifyOrReturnError(value.isObject(), CHIP_ERROR_INVALID_ARGUMENT); @@ -1167,18 +1521,19 @@ CHIP_ERROR ComplexArgumentParser::Setup(const char * label, // Copy to track which members we already processed. Json::Value valueCopy(value); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("MonitoringRegistration.clientNodeId", "clientNodeId", - value.isMember("clientNodeId"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("MonitoringRegistration.ICid", "ICid", value.isMember("ICid"))); + ReturnErrorOnFailure( + ComplexArgumentParser::EnsureMemberExist("GroupKeyMapStruct.groupId", "groupId", value.isMember("groupId"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("GroupKeyMapStruct.groupKeySetID", "groupKeySetID", + value.isMember("groupKeySetID"))); char labelWithMember[kMaxLabelLength]; - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "clientNodeId"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.clientNodeId, value["clientNodeId"])); - valueCopy.removeMember("clientNodeId"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "groupId"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.groupId, value["groupId"])); + valueCopy.removeMember("groupId"); - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "ICid"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.ICid, value["ICid"])); - valueCopy.removeMember("ICid"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "groupKeySetID"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.groupKeySetID, value["groupKeySetID"])); + valueCopy.removeMember("groupKeySetID"); if (value.isMember("fabricIndex")) { @@ -1190,14 +1545,15 @@ CHIP_ERROR ComplexArgumentParser::Setup(const char * label, return ComplexArgumentParser::EnsureNoMembersRemaining(label, valueCopy); } -void ComplexArgumentParser::Finalize(chip::app::Clusters::ClientMonitoring::Structs::MonitoringRegistration::Type & request) +void ComplexArgumentParser::Finalize(chip::app::Clusters::GroupKeyManagement::Structs::GroupKeyMapStruct::Type & request) { - ComplexArgumentParser::Finalize(request.clientNodeId); - ComplexArgumentParser::Finalize(request.ICid); + ComplexArgumentParser::Finalize(request.groupId); + ComplexArgumentParser::Finalize(request.groupKeySetID); ComplexArgumentParser::Finalize(request.fabricIndex); } + CHIP_ERROR ComplexArgumentParser::Setup(const char * label, - chip::app::Clusters::OperationalCredentials::Structs::NOCStruct::Type & request, + chip::app::Clusters::GroupKeyManagement::Structs::GroupKeySetStruct::Type & request, Json::Value & value) { VerifyOrReturnError(value.isObject(), CHIP_ERROR_INVALID_ARGUMENT); @@ -1205,146 +1561,74 @@ CHIP_ERROR ComplexArgumentParser::Setup(const char * label, // Copy to track which members we already processed. Json::Value valueCopy(value); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("NOCStruct.noc", "noc", value.isMember("noc"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("NOCStruct.icac", "icac", value.isMember("icac"))); - - char labelWithMember[kMaxLabelLength]; - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "noc"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.noc, value["noc"])); - valueCopy.removeMember("noc"); - - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "icac"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.icac, value["icac"])); - valueCopy.removeMember("icac"); - - if (value.isMember("fabricIndex")) - { - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "fabricIndex"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.fabricIndex, value["fabricIndex"])); - } - valueCopy.removeMember("fabricIndex"); - - return ComplexArgumentParser::EnsureNoMembersRemaining(label, valueCopy); -} - -void ComplexArgumentParser::Finalize(chip::app::Clusters::OperationalCredentials::Structs::NOCStruct::Type & request) -{ - ComplexArgumentParser::Finalize(request.noc); - ComplexArgumentParser::Finalize(request.icac); - ComplexArgumentParser::Finalize(request.fabricIndex); -} -CHIP_ERROR ComplexArgumentParser::Setup(const char * label, - chip::app::Clusters::ThreadNetworkDiagnostics::Structs::NeighborTable::Type & request, - Json::Value & value) -{ - VerifyOrReturnError(value.isObject(), CHIP_ERROR_INVALID_ARGUMENT); - - // Copy to track which members we already processed. - Json::Value valueCopy(value); - - ReturnErrorOnFailure( - ComplexArgumentParser::EnsureMemberExist("NeighborTable.extAddress", "extAddress", value.isMember("extAddress"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("NeighborTable.age", "age", value.isMember("age"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("NeighborTable.rloc16", "rloc16", value.isMember("rloc16"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("NeighborTable.linkFrameCounter", "linkFrameCounter", - value.isMember("linkFrameCounter"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("NeighborTable.mleFrameCounter", "mleFrameCounter", - value.isMember("mleFrameCounter"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("NeighborTable.lqi", "lqi", value.isMember("lqi"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("GroupKeySetStruct.groupKeySetID", "groupKeySetID", + value.isMember("groupKeySetID"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist( + "GroupKeySetStruct.groupKeySecurityPolicy", "groupKeySecurityPolicy", value.isMember("groupKeySecurityPolicy"))); ReturnErrorOnFailure( - ComplexArgumentParser::EnsureMemberExist("NeighborTable.averageRssi", "averageRssi", value.isMember("averageRssi"))); + ComplexArgumentParser::EnsureMemberExist("GroupKeySetStruct.epochKey0", "epochKey0", value.isMember("epochKey0"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("GroupKeySetStruct.epochStartTime0", "epochStartTime0", + value.isMember("epochStartTime0"))); ReturnErrorOnFailure( - ComplexArgumentParser::EnsureMemberExist("NeighborTable.lastRssi", "lastRssi", value.isMember("lastRssi"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("NeighborTable.frameErrorRate", "frameErrorRate", - value.isMember("frameErrorRate"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("NeighborTable.messageErrorRate", "messageErrorRate", - value.isMember("messageErrorRate"))); + ComplexArgumentParser::EnsureMemberExist("GroupKeySetStruct.epochKey1", "epochKey1", value.isMember("epochKey1"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("GroupKeySetStruct.epochStartTime1", "epochStartTime1", + value.isMember("epochStartTime1"))); ReturnErrorOnFailure( - ComplexArgumentParser::EnsureMemberExist("NeighborTable.rxOnWhenIdle", "rxOnWhenIdle", value.isMember("rxOnWhenIdle"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("NeighborTable.fullThreadDevice", "fullThreadDevice", - value.isMember("fullThreadDevice"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("NeighborTable.fullNetworkData", "fullNetworkData", - value.isMember("fullNetworkData"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("NeighborTable.isChild", "isChild", value.isMember("isChild"))); + ComplexArgumentParser::EnsureMemberExist("GroupKeySetStruct.epochKey2", "epochKey2", value.isMember("epochKey2"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("GroupKeySetStruct.epochStartTime2", "epochStartTime2", + value.isMember("epochStartTime2"))); char labelWithMember[kMaxLabelLength]; - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "extAddress"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.extAddress, value["extAddress"])); - valueCopy.removeMember("extAddress"); - - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "age"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.age, value["age"])); - valueCopy.removeMember("age"); - - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "rloc16"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.rloc16, value["rloc16"])); - valueCopy.removeMember("rloc16"); - - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "linkFrameCounter"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.linkFrameCounter, value["linkFrameCounter"])); - valueCopy.removeMember("linkFrameCounter"); - - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "mleFrameCounter"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.mleFrameCounter, value["mleFrameCounter"])); - valueCopy.removeMember("mleFrameCounter"); - - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "lqi"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.lqi, value["lqi"])); - valueCopy.removeMember("lqi"); - - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "averageRssi"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.averageRssi, value["averageRssi"])); - valueCopy.removeMember("averageRssi"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "groupKeySetID"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.groupKeySetID, value["groupKeySetID"])); + valueCopy.removeMember("groupKeySetID"); - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "lastRssi"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.lastRssi, value["lastRssi"])); - valueCopy.removeMember("lastRssi"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "groupKeySecurityPolicy"); + ReturnErrorOnFailure( + ComplexArgumentParser::Setup(labelWithMember, request.groupKeySecurityPolicy, value["groupKeySecurityPolicy"])); + valueCopy.removeMember("groupKeySecurityPolicy"); - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "frameErrorRate"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.frameErrorRate, value["frameErrorRate"])); - valueCopy.removeMember("frameErrorRate"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "epochKey0"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.epochKey0, value["epochKey0"])); + valueCopy.removeMember("epochKey0"); - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "messageErrorRate"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.messageErrorRate, value["messageErrorRate"])); - valueCopy.removeMember("messageErrorRate"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "epochStartTime0"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.epochStartTime0, value["epochStartTime0"])); + valueCopy.removeMember("epochStartTime0"); - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "rxOnWhenIdle"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.rxOnWhenIdle, value["rxOnWhenIdle"])); - valueCopy.removeMember("rxOnWhenIdle"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "epochKey1"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.epochKey1, value["epochKey1"])); + valueCopy.removeMember("epochKey1"); - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "fullThreadDevice"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.fullThreadDevice, value["fullThreadDevice"])); - valueCopy.removeMember("fullThreadDevice"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "epochStartTime1"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.epochStartTime1, value["epochStartTime1"])); + valueCopy.removeMember("epochStartTime1"); - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "fullNetworkData"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.fullNetworkData, value["fullNetworkData"])); - valueCopy.removeMember("fullNetworkData"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "epochKey2"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.epochKey2, value["epochKey2"])); + valueCopy.removeMember("epochKey2"); - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "isChild"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.isChild, value["isChild"])); - valueCopy.removeMember("isChild"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "epochStartTime2"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.epochStartTime2, value["epochStartTime2"])); + valueCopy.removeMember("epochStartTime2"); return ComplexArgumentParser::EnsureNoMembersRemaining(label, valueCopy); } -void ComplexArgumentParser::Finalize(chip::app::Clusters::ThreadNetworkDiagnostics::Structs::NeighborTable::Type & request) +void ComplexArgumentParser::Finalize(chip::app::Clusters::GroupKeyManagement::Structs::GroupKeySetStruct::Type & request) { - ComplexArgumentParser::Finalize(request.extAddress); - ComplexArgumentParser::Finalize(request.age); - ComplexArgumentParser::Finalize(request.rloc16); - ComplexArgumentParser::Finalize(request.linkFrameCounter); - ComplexArgumentParser::Finalize(request.mleFrameCounter); - ComplexArgumentParser::Finalize(request.lqi); - ComplexArgumentParser::Finalize(request.averageRssi); - ComplexArgumentParser::Finalize(request.lastRssi); - ComplexArgumentParser::Finalize(request.frameErrorRate); - ComplexArgumentParser::Finalize(request.messageErrorRate); - ComplexArgumentParser::Finalize(request.rxOnWhenIdle); - ComplexArgumentParser::Finalize(request.fullThreadDevice); - ComplexArgumentParser::Finalize(request.fullNetworkData); - ComplexArgumentParser::Finalize(request.isChild); + ComplexArgumentParser::Finalize(request.groupKeySetID); + ComplexArgumentParser::Finalize(request.groupKeySecurityPolicy); + ComplexArgumentParser::Finalize(request.epochKey0); + ComplexArgumentParser::Finalize(request.epochStartTime0); + ComplexArgumentParser::Finalize(request.epochKey1); + ComplexArgumentParser::Finalize(request.epochStartTime1); + ComplexArgumentParser::Finalize(request.epochKey2); + ComplexArgumentParser::Finalize(request.epochStartTime2); } -CHIP_ERROR ComplexArgumentParser::Setup(const char * label, chip::app::Clusters::UnitTesting::Structs::NestedStruct::Type & request, + +CHIP_ERROR ComplexArgumentParser::Setup(const char * label, + chip::app::Clusters::ModeSelect::Structs::SemanticTagStruct::Type & request, Json::Value & value) { VerifyOrReturnError(value.isObject(), CHIP_ERROR_INVALID_ARGUMENT); @@ -1352,34 +1636,30 @@ CHIP_ERROR ComplexArgumentParser::Setup(const char * label, chip::app::Clusters: // Copy to track which members we already processed. Json::Value valueCopy(value); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("NestedStruct.a", "a", value.isMember("a"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("NestedStruct.b", "b", value.isMember("b"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("NestedStruct.c", "c", value.isMember("c"))); + ReturnErrorOnFailure( + ComplexArgumentParser::EnsureMemberExist("SemanticTagStruct.mfgCode", "mfgCode", value.isMember("mfgCode"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("SemanticTagStruct.value", "value", value.isMember("value"))); char labelWithMember[kMaxLabelLength]; - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "a"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.a, value["a"])); - valueCopy.removeMember("a"); - - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "b"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.b, value["b"])); - valueCopy.removeMember("b"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "mfgCode"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.mfgCode, value["mfgCode"])); + valueCopy.removeMember("mfgCode"); - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "c"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.c, value["c"])); - valueCopy.removeMember("c"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "value"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.value, value["value"])); + valueCopy.removeMember("value"); return ComplexArgumentParser::EnsureNoMembersRemaining(label, valueCopy); } -void ComplexArgumentParser::Finalize(chip::app::Clusters::UnitTesting::Structs::NestedStruct::Type & request) +void ComplexArgumentParser::Finalize(chip::app::Clusters::ModeSelect::Structs::SemanticTagStruct::Type & request) { - ComplexArgumentParser::Finalize(request.a); - ComplexArgumentParser::Finalize(request.b); - ComplexArgumentParser::Finalize(request.c); + ComplexArgumentParser::Finalize(request.mfgCode); + ComplexArgumentParser::Finalize(request.value); } + CHIP_ERROR ComplexArgumentParser::Setup(const char * label, - chip::app::Clusters::UnitTesting::Structs::NestedStructList::Type & request, + chip::app::Clusters::ModeSelect::Structs::ModeOptionStruct::Type & request, Json::Value & value) { VerifyOrReturnError(value.isObject(), CHIP_ERROR_INVALID_ARGUMENT); @@ -1387,58 +1667,36 @@ CHIP_ERROR ComplexArgumentParser::Setup(const char * label, // Copy to track which members we already processed. Json::Value valueCopy(value); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("NestedStructList.a", "a", value.isMember("a"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("NestedStructList.b", "b", value.isMember("b"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("NestedStructList.c", "c", value.isMember("c"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("NestedStructList.d", "d", value.isMember("d"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("NestedStructList.e", "e", value.isMember("e"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("NestedStructList.f", "f", value.isMember("f"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("NestedStructList.g", "g", value.isMember("g"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("ModeOptionStruct.label", "label", value.isMember("label"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("ModeOptionStruct.mode", "mode", value.isMember("mode"))); + ReturnErrorOnFailure( + ComplexArgumentParser::EnsureMemberExist("ModeOptionStruct.semanticTags", "semanticTags", value.isMember("semanticTags"))); char labelWithMember[kMaxLabelLength]; - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "a"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.a, value["a"])); - valueCopy.removeMember("a"); - - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "b"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.b, value["b"])); - valueCopy.removeMember("b"); - - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "c"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.c, value["c"])); - valueCopy.removeMember("c"); - - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "d"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.d, value["d"])); - valueCopy.removeMember("d"); - - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "e"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.e, value["e"])); - valueCopy.removeMember("e"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "label"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.label, value["label"])); + valueCopy.removeMember("label"); - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "f"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.f, value["f"])); - valueCopy.removeMember("f"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "mode"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.mode, value["mode"])); + valueCopy.removeMember("mode"); - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "g"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.g, value["g"])); - valueCopy.removeMember("g"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "semanticTags"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.semanticTags, value["semanticTags"])); + valueCopy.removeMember("semanticTags"); return ComplexArgumentParser::EnsureNoMembersRemaining(label, valueCopy); } -void ComplexArgumentParser::Finalize(chip::app::Clusters::UnitTesting::Structs::NestedStructList::Type & request) +void ComplexArgumentParser::Finalize(chip::app::Clusters::ModeSelect::Structs::ModeOptionStruct::Type & request) { - ComplexArgumentParser::Finalize(request.a); - ComplexArgumentParser::Finalize(request.b); - ComplexArgumentParser::Finalize(request.c); - ComplexArgumentParser::Finalize(request.d); - ComplexArgumentParser::Finalize(request.e); - ComplexArgumentParser::Finalize(request.f); - ComplexArgumentParser::Finalize(request.g); + ComplexArgumentParser::Finalize(request.label); + ComplexArgumentParser::Finalize(request.mode); + ComplexArgumentParser::Finalize(request.semanticTags); } + CHIP_ERROR ComplexArgumentParser::Setup(const char * label, - chip::app::Clusters::NetworkCommissioning::Structs::NetworkInfo::Type & request, + chip::app::Clusters::DoorLock::Structs::CredentialStruct::Type & request, Json::Value & value) { VerifyOrReturnError(value.isObject(), CHIP_ERROR_INVALID_ARGUMENT); @@ -1446,30 +1704,31 @@ CHIP_ERROR ComplexArgumentParser::Setup(const char * label, // Copy to track which members we already processed. Json::Value valueCopy(value); - ReturnErrorOnFailure( - ComplexArgumentParser::EnsureMemberExist("NetworkInfo.networkID", "networkID", value.isMember("networkID"))); - ReturnErrorOnFailure( - ComplexArgumentParser::EnsureMemberExist("NetworkInfo.connected", "connected", value.isMember("connected"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("CredentialStruct.credentialType", "credentialType", + value.isMember("credentialType"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("CredentialStruct.credentialIndex", "credentialIndex", + value.isMember("credentialIndex"))); char labelWithMember[kMaxLabelLength]; - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "networkID"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.networkID, value["networkID"])); - valueCopy.removeMember("networkID"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "credentialType"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.credentialType, value["credentialType"])); + valueCopy.removeMember("credentialType"); - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "connected"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.connected, value["connected"])); - valueCopy.removeMember("connected"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "credentialIndex"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.credentialIndex, value["credentialIndex"])); + valueCopy.removeMember("credentialIndex"); return ComplexArgumentParser::EnsureNoMembersRemaining(label, valueCopy); } -void ComplexArgumentParser::Finalize(chip::app::Clusters::NetworkCommissioning::Structs::NetworkInfo::Type & request) +void ComplexArgumentParser::Finalize(chip::app::Clusters::DoorLock::Structs::CredentialStruct::Type & request) { - ComplexArgumentParser::Finalize(request.networkID); - ComplexArgumentParser::Finalize(request.connected); + ComplexArgumentParser::Finalize(request.credentialType); + ComplexArgumentParser::Finalize(request.credentialIndex); } + CHIP_ERROR ComplexArgumentParser::Setup(const char * label, - chip::app::Clusters::GeneralDiagnostics::Structs::NetworkInterface::Type & request, + chip::app::Clusters::Thermostat::Structs::ThermostatScheduleTransition::Type & request, Json::Value & value) { VerifyOrReturnError(value.isObject(), CHIP_ERROR_INVALID_ARGUMENT); @@ -1477,74 +1736,38 @@ CHIP_ERROR ComplexArgumentParser::Setup(const char * label, // Copy to track which members we already processed. Json::Value valueCopy(value); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("NetworkInterface.name", "name", value.isMember("name"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("NetworkInterface.isOperational", "isOperational", - value.isMember("isOperational"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("NetworkInterface.offPremiseServicesReachableIPv4", - "offPremiseServicesReachableIPv4", - value.isMember("offPremiseServicesReachableIPv4"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("NetworkInterface.offPremiseServicesReachableIPv6", - "offPremiseServicesReachableIPv6", - value.isMember("offPremiseServicesReachableIPv6"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("NetworkInterface.hardwareAddress", "hardwareAddress", - value.isMember("hardwareAddress"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("NetworkInterface.IPv4Addresses", "IPv4Addresses", - value.isMember("IPv4Addresses"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("NetworkInterface.IPv6Addresses", "IPv6Addresses", - value.isMember("IPv6Addresses"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("NetworkInterface.type", "type", value.isMember("type"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("ThermostatScheduleTransition.transitionTime", "transitionTime", + value.isMember("transitionTime"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("ThermostatScheduleTransition.heatSetpoint", "heatSetpoint", + value.isMember("heatSetpoint"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("ThermostatScheduleTransition.coolSetpoint", "coolSetpoint", + value.isMember("coolSetpoint"))); char labelWithMember[kMaxLabelLength]; - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "name"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.name, value["name"])); - valueCopy.removeMember("name"); - - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "isOperational"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.isOperational, value["isOperational"])); - valueCopy.removeMember("isOperational"); - - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "offPremiseServicesReachableIPv4"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.offPremiseServicesReachableIPv4, - value["offPremiseServicesReachableIPv4"])); - valueCopy.removeMember("offPremiseServicesReachableIPv4"); - - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "offPremiseServicesReachableIPv6"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.offPremiseServicesReachableIPv6, - value["offPremiseServicesReachableIPv6"])); - valueCopy.removeMember("offPremiseServicesReachableIPv6"); - - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "hardwareAddress"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.hardwareAddress, value["hardwareAddress"])); - valueCopy.removeMember("hardwareAddress"); - - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "IPv4Addresses"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.IPv4Addresses, value["IPv4Addresses"])); - valueCopy.removeMember("IPv4Addresses"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "transitionTime"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.transitionTime, value["transitionTime"])); + valueCopy.removeMember("transitionTime"); - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "IPv6Addresses"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.IPv6Addresses, value["IPv6Addresses"])); - valueCopy.removeMember("IPv6Addresses"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "heatSetpoint"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.heatSetpoint, value["heatSetpoint"])); + valueCopy.removeMember("heatSetpoint"); - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "type"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.type, value["type"])); - valueCopy.removeMember("type"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "coolSetpoint"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.coolSetpoint, value["coolSetpoint"])); + valueCopy.removeMember("coolSetpoint"); return ComplexArgumentParser::EnsureNoMembersRemaining(label, valueCopy); } -void ComplexArgumentParser::Finalize(chip::app::Clusters::GeneralDiagnostics::Structs::NetworkInterface::Type & request) +void ComplexArgumentParser::Finalize(chip::app::Clusters::Thermostat::Structs::ThermostatScheduleTransition::Type & request) { - ComplexArgumentParser::Finalize(request.name); - ComplexArgumentParser::Finalize(request.isOperational); - ComplexArgumentParser::Finalize(request.offPremiseServicesReachableIPv4); - ComplexArgumentParser::Finalize(request.offPremiseServicesReachableIPv6); - ComplexArgumentParser::Finalize(request.hardwareAddress); - ComplexArgumentParser::Finalize(request.IPv4Addresses); - ComplexArgumentParser::Finalize(request.IPv6Addresses); - ComplexArgumentParser::Finalize(request.type); + ComplexArgumentParser::Finalize(request.transitionTime); + ComplexArgumentParser::Finalize(request.heatSetpoint); + ComplexArgumentParser::Finalize(request.coolSetpoint); } + CHIP_ERROR ComplexArgumentParser::Setup(const char * label, - chip::app::Clusters::UnitTesting::Structs::NullablesAndOptionalsStruct::Type & request, + chip::app::Clusters::Channel::Structs::ChannelInfoStruct::Type & request, Json::Value & value) { VerifyOrReturnError(value.isObject(), CHIP_ERROR_INVALID_ARGUMENT); @@ -1552,221 +1775,54 @@ CHIP_ERROR ComplexArgumentParser::Setup(const char * label, // Copy to track which members we already processed. Json::Value valueCopy(value); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("NullablesAndOptionalsStruct.nullableInt", "nullableInt", - value.isMember("nullableInt"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("NullablesAndOptionalsStruct.nullableString", "nullableString", - value.isMember("nullableString"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("NullablesAndOptionalsStruct.nullableStruct", "nullableStruct", - value.isMember("nullableStruct"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("NullablesAndOptionalsStruct.nullableList", "nullableList", - value.isMember("nullableList"))); - - char labelWithMember[kMaxLabelLength]; - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "nullableInt"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.nullableInt, value["nullableInt"])); - valueCopy.removeMember("nullableInt"); - - if (value.isMember("optionalInt")) - { - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "optionalInt"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.optionalInt, value["optionalInt"])); - } - valueCopy.removeMember("optionalInt"); - - if (value.isMember("nullableOptionalInt")) - { - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "nullableOptionalInt"); - ReturnErrorOnFailure( - ComplexArgumentParser::Setup(labelWithMember, request.nullableOptionalInt, value["nullableOptionalInt"])); - } - valueCopy.removeMember("nullableOptionalInt"); - - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "nullableString"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.nullableString, value["nullableString"])); - valueCopy.removeMember("nullableString"); - - if (value.isMember("optionalString")) - { - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "optionalString"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.optionalString, value["optionalString"])); - } - valueCopy.removeMember("optionalString"); - - if (value.isMember("nullableOptionalString")) - { - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "nullableOptionalString"); - ReturnErrorOnFailure( - ComplexArgumentParser::Setup(labelWithMember, request.nullableOptionalString, value["nullableOptionalString"])); - } - valueCopy.removeMember("nullableOptionalString"); - - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "nullableStruct"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.nullableStruct, value["nullableStruct"])); - valueCopy.removeMember("nullableStruct"); - - if (value.isMember("optionalStruct")) - { - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "optionalStruct"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.optionalStruct, value["optionalStruct"])); - } - valueCopy.removeMember("optionalStruct"); - - if (value.isMember("nullableOptionalStruct")) - { - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "nullableOptionalStruct"); - ReturnErrorOnFailure( - ComplexArgumentParser::Setup(labelWithMember, request.nullableOptionalStruct, value["nullableOptionalStruct"])); - } - valueCopy.removeMember("nullableOptionalStruct"); - - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "nullableList"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.nullableList, value["nullableList"])); - valueCopy.removeMember("nullableList"); - - if (value.isMember("optionalList")) - { - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "optionalList"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.optionalList, value["optionalList"])); - } - valueCopy.removeMember("optionalList"); - - if (value.isMember("nullableOptionalList")) - { - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "nullableOptionalList"); - ReturnErrorOnFailure( - ComplexArgumentParser::Setup(labelWithMember, request.nullableOptionalList, value["nullableOptionalList"])); - } - valueCopy.removeMember("nullableOptionalList"); - - return ComplexArgumentParser::EnsureNoMembersRemaining(label, valueCopy); -} - -void ComplexArgumentParser::Finalize(chip::app::Clusters::UnitTesting::Structs::NullablesAndOptionalsStruct::Type & request) -{ - ComplexArgumentParser::Finalize(request.nullableInt); - ComplexArgumentParser::Finalize(request.optionalInt); - ComplexArgumentParser::Finalize(request.nullableOptionalInt); - ComplexArgumentParser::Finalize(request.nullableString); - ComplexArgumentParser::Finalize(request.optionalString); - ComplexArgumentParser::Finalize(request.nullableOptionalString); - ComplexArgumentParser::Finalize(request.nullableStruct); - ComplexArgumentParser::Finalize(request.optionalStruct); - ComplexArgumentParser::Finalize(request.nullableOptionalStruct); - ComplexArgumentParser::Finalize(request.nullableList); - ComplexArgumentParser::Finalize(request.optionalList); - ComplexArgumentParser::Finalize(request.nullableOptionalList); -} -CHIP_ERROR -ComplexArgumentParser::Setup(const char * label, - chip::app::Clusters::ThreadNetworkDiagnostics::Structs::OperationalDatasetComponents::Type & request, - Json::Value & value) -{ - VerifyOrReturnError(value.isObject(), CHIP_ERROR_INVALID_ARGUMENT); - - // Copy to track which members we already processed. - Json::Value valueCopy(value); - - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist( - "OperationalDatasetComponents.activeTimestampPresent", "activeTimestampPresent", value.isMember("activeTimestampPresent"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("OperationalDatasetComponents.pendingTimestampPresent", - "pendingTimestampPresent", - value.isMember("pendingTimestampPresent"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("OperationalDatasetComponents.masterKeyPresent", - "masterKeyPresent", value.isMember("masterKeyPresent"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("OperationalDatasetComponents.networkNamePresent", - "networkNamePresent", value.isMember("networkNamePresent"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("OperationalDatasetComponents.extendedPanIdPresent", - "extendedPanIdPresent", value.isMember("extendedPanIdPresent"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist( - "OperationalDatasetComponents.meshLocalPrefixPresent", "meshLocalPrefixPresent", value.isMember("meshLocalPrefixPresent"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("OperationalDatasetComponents.delayPresent", "delayPresent", - value.isMember("delayPresent"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("OperationalDatasetComponents.panIdPresent", "panIdPresent", - value.isMember("panIdPresent"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("OperationalDatasetComponents.channelPresent", "channelPresent", - value.isMember("channelPresent"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("OperationalDatasetComponents.pskcPresent", "pskcPresent", - value.isMember("pskcPresent"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist( - "OperationalDatasetComponents.securityPolicyPresent", "securityPolicyPresent", value.isMember("securityPolicyPresent"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("OperationalDatasetComponents.channelMaskPresent", - "channelMaskPresent", value.isMember("channelMaskPresent"))); - - char labelWithMember[kMaxLabelLength]; - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "activeTimestampPresent"); - ReturnErrorOnFailure( - ComplexArgumentParser::Setup(labelWithMember, request.activeTimestampPresent, value["activeTimestampPresent"])); - valueCopy.removeMember("activeTimestampPresent"); - - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "pendingTimestampPresent"); - ReturnErrorOnFailure( - ComplexArgumentParser::Setup(labelWithMember, request.pendingTimestampPresent, value["pendingTimestampPresent"])); - valueCopy.removeMember("pendingTimestampPresent"); - - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "masterKeyPresent"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.masterKeyPresent, value["masterKeyPresent"])); - valueCopy.removeMember("masterKeyPresent"); - - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "networkNamePresent"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.networkNamePresent, value["networkNamePresent"])); - valueCopy.removeMember("networkNamePresent"); - - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "extendedPanIdPresent"); ReturnErrorOnFailure( - ComplexArgumentParser::Setup(labelWithMember, request.extendedPanIdPresent, value["extendedPanIdPresent"])); - valueCopy.removeMember("extendedPanIdPresent"); - - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "meshLocalPrefixPresent"); + ComplexArgumentParser::EnsureMemberExist("ChannelInfoStruct.majorNumber", "majorNumber", value.isMember("majorNumber"))); ReturnErrorOnFailure( - ComplexArgumentParser::Setup(labelWithMember, request.meshLocalPrefixPresent, value["meshLocalPrefixPresent"])); - valueCopy.removeMember("meshLocalPrefixPresent"); - - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "delayPresent"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.delayPresent, value["delayPresent"])); - valueCopy.removeMember("delayPresent"); + ComplexArgumentParser::EnsureMemberExist("ChannelInfoStruct.minorNumber", "minorNumber", value.isMember("minorNumber"))); - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "panIdPresent"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.panIdPresent, value["panIdPresent"])); - valueCopy.removeMember("panIdPresent"); + char labelWithMember[kMaxLabelLength]; + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "majorNumber"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.majorNumber, value["majorNumber"])); + valueCopy.removeMember("majorNumber"); - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "channelPresent"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.channelPresent, value["channelPresent"])); - valueCopy.removeMember("channelPresent"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "minorNumber"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.minorNumber, value["minorNumber"])); + valueCopy.removeMember("minorNumber"); - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "pskcPresent"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.pskcPresent, value["pskcPresent"])); - valueCopy.removeMember("pskcPresent"); + if (value.isMember("name")) + { + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "name"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.name, value["name"])); + } + valueCopy.removeMember("name"); - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "securityPolicyPresent"); - ReturnErrorOnFailure( - ComplexArgumentParser::Setup(labelWithMember, request.securityPolicyPresent, value["securityPolicyPresent"])); - valueCopy.removeMember("securityPolicyPresent"); + if (value.isMember("callSign")) + { + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "callSign"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.callSign, value["callSign"])); + } + valueCopy.removeMember("callSign"); - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "channelMaskPresent"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.channelMaskPresent, value["channelMaskPresent"])); - valueCopy.removeMember("channelMaskPresent"); + if (value.isMember("affiliateCallSign")) + { + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "affiliateCallSign"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.affiliateCallSign, value["affiliateCallSign"])); + } + valueCopy.removeMember("affiliateCallSign"); return ComplexArgumentParser::EnsureNoMembersRemaining(label, valueCopy); } -void ComplexArgumentParser::Finalize( - chip::app::Clusters::ThreadNetworkDiagnostics::Structs::OperationalDatasetComponents::Type & request) +void ComplexArgumentParser::Finalize(chip::app::Clusters::Channel::Structs::ChannelInfoStruct::Type & request) { - ComplexArgumentParser::Finalize(request.activeTimestampPresent); - ComplexArgumentParser::Finalize(request.pendingTimestampPresent); - ComplexArgumentParser::Finalize(request.masterKeyPresent); - ComplexArgumentParser::Finalize(request.networkNamePresent); - ComplexArgumentParser::Finalize(request.extendedPanIdPresent); - ComplexArgumentParser::Finalize(request.meshLocalPrefixPresent); - ComplexArgumentParser::Finalize(request.delayPresent); - ComplexArgumentParser::Finalize(request.panIdPresent); - ComplexArgumentParser::Finalize(request.channelPresent); - ComplexArgumentParser::Finalize(request.pskcPresent); - ComplexArgumentParser::Finalize(request.securityPolicyPresent); - ComplexArgumentParser::Finalize(request.channelMaskPresent); + ComplexArgumentParser::Finalize(request.majorNumber); + ComplexArgumentParser::Finalize(request.minorNumber); + ComplexArgumentParser::Finalize(request.name); + ComplexArgumentParser::Finalize(request.callSign); + ComplexArgumentParser::Finalize(request.affiliateCallSign); } -CHIP_ERROR ComplexArgumentParser::Setup(const char * label, - chip::app::Clusters::AudioOutput::Structs::OutputInfoStruct::Type & request, + +CHIP_ERROR ComplexArgumentParser::Setup(const char * label, chip::app::Clusters::Channel::Structs::LineupInfoStruct::Type & request, Json::Value & value) { VerifyOrReturnError(value.isObject(), CHIP_ERROR_INVALID_ARGUMENT); @@ -1774,35 +1830,47 @@ CHIP_ERROR ComplexArgumentParser::Setup(const char * label, // Copy to track which members we already processed. Json::Value valueCopy(value); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("OutputInfoStruct.index", "index", value.isMember("index"))); ReturnErrorOnFailure( - ComplexArgumentParser::EnsureMemberExist("OutputInfoStruct.outputType", "outputType", value.isMember("outputType"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("OutputInfoStruct.name", "name", value.isMember("name"))); + ComplexArgumentParser::EnsureMemberExist("LineupInfoStruct.operatorName", "operatorName", value.isMember("operatorName"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("LineupInfoStruct.lineupInfoType", "lineupInfoType", + value.isMember("lineupInfoType"))); char labelWithMember[kMaxLabelLength]; - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "index"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.index, value["index"])); - valueCopy.removeMember("index"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "operatorName"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.operatorName, value["operatorName"])); + valueCopy.removeMember("operatorName"); - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "outputType"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.outputType, value["outputType"])); - valueCopy.removeMember("outputType"); + if (value.isMember("lineupName")) + { + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "lineupName"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.lineupName, value["lineupName"])); + } + valueCopy.removeMember("lineupName"); - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "name"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.name, value["name"])); - valueCopy.removeMember("name"); + if (value.isMember("postalCode")) + { + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "postalCode"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.postalCode, value["postalCode"])); + } + valueCopy.removeMember("postalCode"); + + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "lineupInfoType"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.lineupInfoType, value["lineupInfoType"])); + valueCopy.removeMember("lineupInfoType"); return ComplexArgumentParser::EnsureNoMembersRemaining(label, valueCopy); } -void ComplexArgumentParser::Finalize(chip::app::Clusters::AudioOutput::Structs::OutputInfoStruct::Type & request) +void ComplexArgumentParser::Finalize(chip::app::Clusters::Channel::Structs::LineupInfoStruct::Type & request) { - ComplexArgumentParser::Finalize(request.index); - ComplexArgumentParser::Finalize(request.outputType); - ComplexArgumentParser::Finalize(request.name); + ComplexArgumentParser::Finalize(request.operatorName); + ComplexArgumentParser::Finalize(request.lineupName); + ComplexArgumentParser::Finalize(request.postalCode); + ComplexArgumentParser::Finalize(request.lineupInfoType); } + CHIP_ERROR ComplexArgumentParser::Setup(const char * label, - chip::app::Clusters::ContentLauncher::Structs::ParameterStruct::Type & request, + chip::app::Clusters::TargetNavigator::Structs::TargetInfoStruct::Type & request, Json::Value & value) { VerifyOrReturnError(value.isObject(), CHIP_ERROR_INVALID_ARGUMENT); @@ -1810,34 +1878,28 @@ CHIP_ERROR ComplexArgumentParser::Setup(const char * label, // Copy to track which members we already processed. Json::Value valueCopy(value); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("ParameterStruct.type", "type", value.isMember("type"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("ParameterStruct.value", "value", value.isMember("value"))); + ReturnErrorOnFailure( + ComplexArgumentParser::EnsureMemberExist("TargetInfoStruct.identifier", "identifier", value.isMember("identifier"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("TargetInfoStruct.name", "name", value.isMember("name"))); char labelWithMember[kMaxLabelLength]; - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "type"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.type, value["type"])); - valueCopy.removeMember("type"); - - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "value"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.value, value["value"])); - valueCopy.removeMember("value"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "identifier"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.identifier, value["identifier"])); + valueCopy.removeMember("identifier"); - if (value.isMember("externalIDList")) - { - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "externalIDList"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.externalIDList, value["externalIDList"])); - } - valueCopy.removeMember("externalIDList"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "name"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.name, value["name"])); + valueCopy.removeMember("name"); return ComplexArgumentParser::EnsureNoMembersRemaining(label, valueCopy); } -void ComplexArgumentParser::Finalize(chip::app::Clusters::ContentLauncher::Structs::ParameterStruct::Type & request) +void ComplexArgumentParser::Finalize(chip::app::Clusters::TargetNavigator::Structs::TargetInfoStruct::Type & request) { - ComplexArgumentParser::Finalize(request.type); - ComplexArgumentParser::Finalize(request.value); - ComplexArgumentParser::Finalize(request.externalIDList); + ComplexArgumentParser::Finalize(request.identifier); + ComplexArgumentParser::Finalize(request.name); } + CHIP_ERROR ComplexArgumentParser::Setup(const char * label, chip::app::Clusters::MediaPlayback::Structs::PlaybackPositionStruct::Type & request, Json::Value & value) @@ -1869,8 +1931,9 @@ void ComplexArgumentParser::Finalize(chip::app::Clusters::MediaPlayback::Structs ComplexArgumentParser::Finalize(request.updatedAt); ComplexArgumentParser::Finalize(request.position); } + CHIP_ERROR ComplexArgumentParser::Setup(const char * label, - chip::app::Clusters::OtaSoftwareUpdateRequestor::Structs::ProviderLocation::Type & request, + chip::app::Clusters::MediaInput::Structs::InputInfoStruct::Type & request, Json::Value & value) { VerifyOrReturnError(value.isObject(), CHIP_ERROR_INVALID_ARGUMENT); @@ -1878,38 +1941,43 @@ CHIP_ERROR ComplexArgumentParser::Setup(const char * label, // Copy to track which members we already processed. Json::Value valueCopy(value); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("ProviderLocation.providerNodeID", "providerNodeID", - value.isMember("providerNodeID"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("InputInfoStruct.index", "index", value.isMember("index"))); ReturnErrorOnFailure( - ComplexArgumentParser::EnsureMemberExist("ProviderLocation.endpoint", "endpoint", value.isMember("endpoint"))); + ComplexArgumentParser::EnsureMemberExist("InputInfoStruct.inputType", "inputType", value.isMember("inputType"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("InputInfoStruct.name", "name", value.isMember("name"))); + ReturnErrorOnFailure( + ComplexArgumentParser::EnsureMemberExist("InputInfoStruct.description", "description", value.isMember("description"))); char labelWithMember[kMaxLabelLength]; - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "providerNodeID"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.providerNodeID, value["providerNodeID"])); - valueCopy.removeMember("providerNodeID"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "index"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.index, value["index"])); + valueCopy.removeMember("index"); - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "endpoint"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.endpoint, value["endpoint"])); - valueCopy.removeMember("endpoint"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "inputType"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.inputType, value["inputType"])); + valueCopy.removeMember("inputType"); - if (value.isMember("fabricIndex")) - { - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "fabricIndex"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.fabricIndex, value["fabricIndex"])); - } - valueCopy.removeMember("fabricIndex"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "name"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.name, value["name"])); + valueCopy.removeMember("name"); + + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "description"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.description, value["description"])); + valueCopy.removeMember("description"); return ComplexArgumentParser::EnsureNoMembersRemaining(label, valueCopy); } -void ComplexArgumentParser::Finalize(chip::app::Clusters::OtaSoftwareUpdateRequestor::Structs::ProviderLocation::Type & request) +void ComplexArgumentParser::Finalize(chip::app::Clusters::MediaInput::Structs::InputInfoStruct::Type & request) { - ComplexArgumentParser::Finalize(request.providerNodeID); - ComplexArgumentParser::Finalize(request.endpoint); - ComplexArgumentParser::Finalize(request.fabricIndex); + ComplexArgumentParser::Finalize(request.index); + ComplexArgumentParser::Finalize(request.inputType); + ComplexArgumentParser::Finalize(request.name); + ComplexArgumentParser::Finalize(request.description); } + CHIP_ERROR ComplexArgumentParser::Setup(const char * label, - chip::app::Clusters::ThreadNetworkDiagnostics::Structs::RouteTable::Type & request, + chip::app::Clusters::ContentLauncher::Structs::DimensionStruct::Type & request, Json::Value & value) { VerifyOrReturnError(value.isObject(), CHIP_ERROR_INVALID_ARGUMENT); @@ -1917,79 +1985,35 @@ CHIP_ERROR ComplexArgumentParser::Setup(const char * label, // Copy to track which members we already processed. Json::Value valueCopy(value); - ReturnErrorOnFailure( - ComplexArgumentParser::EnsureMemberExist("RouteTable.extAddress", "extAddress", value.isMember("extAddress"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("RouteTable.rloc16", "rloc16", value.isMember("rloc16"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("RouteTable.routerId", "routerId", value.isMember("routerId"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("RouteTable.nextHop", "nextHop", value.isMember("nextHop"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("RouteTable.pathCost", "pathCost", value.isMember("pathCost"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("RouteTable.LQIIn", "LQIIn", value.isMember("LQIIn"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("RouteTable.LQIOut", "LQIOut", value.isMember("LQIOut"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("RouteTable.age", "age", value.isMember("age"))); - ReturnErrorOnFailure( - ComplexArgumentParser::EnsureMemberExist("RouteTable.allocated", "allocated", value.isMember("allocated"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("RouteTable.linkEstablished", "linkEstablished", - value.isMember("linkEstablished"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("DimensionStruct.width", "width", value.isMember("width"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("DimensionStruct.height", "height", value.isMember("height"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("DimensionStruct.metric", "metric", value.isMember("metric"))); char labelWithMember[kMaxLabelLength]; - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "extAddress"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.extAddress, value["extAddress"])); - valueCopy.removeMember("extAddress"); - - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "rloc16"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.rloc16, value["rloc16"])); - valueCopy.removeMember("rloc16"); - - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "routerId"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.routerId, value["routerId"])); - valueCopy.removeMember("routerId"); - - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "nextHop"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.nextHop, value["nextHop"])); - valueCopy.removeMember("nextHop"); - - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "pathCost"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.pathCost, value["pathCost"])); - valueCopy.removeMember("pathCost"); - - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "LQIIn"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.LQIIn, value["LQIIn"])); - valueCopy.removeMember("LQIIn"); - - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "LQIOut"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.LQIOut, value["LQIOut"])); - valueCopy.removeMember("LQIOut"); - - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "age"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.age, value["age"])); - valueCopy.removeMember("age"); - - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "allocated"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.allocated, value["allocated"])); - valueCopy.removeMember("allocated"); - - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "linkEstablished"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.linkEstablished, value["linkEstablished"])); - valueCopy.removeMember("linkEstablished"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "width"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.width, value["width"])); + valueCopy.removeMember("width"); - return ComplexArgumentParser::EnsureNoMembersRemaining(label, valueCopy); -} + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "height"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.height, value["height"])); + valueCopy.removeMember("height"); -void ComplexArgumentParser::Finalize(chip::app::Clusters::ThreadNetworkDiagnostics::Structs::RouteTable::Type & request) -{ - ComplexArgumentParser::Finalize(request.extAddress); - ComplexArgumentParser::Finalize(request.rloc16); - ComplexArgumentParser::Finalize(request.routerId); - ComplexArgumentParser::Finalize(request.nextHop); - ComplexArgumentParser::Finalize(request.pathCost); - ComplexArgumentParser::Finalize(request.LQIIn); - ComplexArgumentParser::Finalize(request.LQIOut); - ComplexArgumentParser::Finalize(request.age); - ComplexArgumentParser::Finalize(request.allocated); - ComplexArgumentParser::Finalize(request.linkEstablished); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "metric"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.metric, value["metric"])); + valueCopy.removeMember("metric"); + + return ComplexArgumentParser::EnsureNoMembersRemaining(label, valueCopy); +} + +void ComplexArgumentParser::Finalize(chip::app::Clusters::ContentLauncher::Structs::DimensionStruct::Type & request) +{ + ComplexArgumentParser::Finalize(request.width); + ComplexArgumentParser::Finalize(request.height); + ComplexArgumentParser::Finalize(request.metric); } + CHIP_ERROR ComplexArgumentParser::Setup(const char * label, - chip::app::Clusters::ThreadNetworkDiagnostics::Structs::SecurityPolicy::Type & request, + chip::app::Clusters::ContentLauncher::Structs::AdditionalInfoStruct::Type & request, Json::Value & value) { VerifyOrReturnError(value.isObject(), CHIP_ERROR_INVALID_ARGUMENT); @@ -1997,29 +2021,29 @@ CHIP_ERROR ComplexArgumentParser::Setup(const char * label, // Copy to track which members we already processed. Json::Value valueCopy(value); - ReturnErrorOnFailure( - ComplexArgumentParser::EnsureMemberExist("SecurityPolicy.rotationTime", "rotationTime", value.isMember("rotationTime"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("SecurityPolicy.flags", "flags", value.isMember("flags"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("AdditionalInfoStruct.name", "name", value.isMember("name"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("AdditionalInfoStruct.value", "value", value.isMember("value"))); char labelWithMember[kMaxLabelLength]; - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "rotationTime"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.rotationTime, value["rotationTime"])); - valueCopy.removeMember("rotationTime"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "name"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.name, value["name"])); + valueCopy.removeMember("name"); - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "flags"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.flags, value["flags"])); - valueCopy.removeMember("flags"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "value"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.value, value["value"])); + valueCopy.removeMember("value"); return ComplexArgumentParser::EnsureNoMembersRemaining(label, valueCopy); } -void ComplexArgumentParser::Finalize(chip::app::Clusters::ThreadNetworkDiagnostics::Structs::SecurityPolicy::Type & request) +void ComplexArgumentParser::Finalize(chip::app::Clusters::ContentLauncher::Structs::AdditionalInfoStruct::Type & request) { - ComplexArgumentParser::Finalize(request.rotationTime); - ComplexArgumentParser::Finalize(request.flags); + ComplexArgumentParser::Finalize(request.name); + ComplexArgumentParser::Finalize(request.value); } + CHIP_ERROR ComplexArgumentParser::Setup(const char * label, - chip::app::Clusters::ModeSelect::Structs::SemanticTagStruct::Type & request, + chip::app::Clusters::ContentLauncher::Structs::ParameterStruct::Type & request, Json::Value & value) { VerifyOrReturnError(value.isObject(), CHIP_ERROR_INVALID_ARGUMENT); @@ -2027,28 +2051,37 @@ CHIP_ERROR ComplexArgumentParser::Setup(const char * label, // Copy to track which members we already processed. Json::Value valueCopy(value); - ReturnErrorOnFailure( - ComplexArgumentParser::EnsureMemberExist("SemanticTagStruct.mfgCode", "mfgCode", value.isMember("mfgCode"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("SemanticTagStruct.value", "value", value.isMember("value"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("ParameterStruct.type", "type", value.isMember("type"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("ParameterStruct.value", "value", value.isMember("value"))); char labelWithMember[kMaxLabelLength]; - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "mfgCode"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.mfgCode, value["mfgCode"])); - valueCopy.removeMember("mfgCode"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "type"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.type, value["type"])); + valueCopy.removeMember("type"); snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "value"); ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.value, value["value"])); valueCopy.removeMember("value"); + if (value.isMember("externalIDList")) + { + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "externalIDList"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.externalIDList, value["externalIDList"])); + } + valueCopy.removeMember("externalIDList"); + return ComplexArgumentParser::EnsureNoMembersRemaining(label, valueCopy); } -void ComplexArgumentParser::Finalize(chip::app::Clusters::ModeSelect::Structs::SemanticTagStruct::Type & request) +void ComplexArgumentParser::Finalize(chip::app::Clusters::ContentLauncher::Structs::ParameterStruct::Type & request) { - ComplexArgumentParser::Finalize(request.mfgCode); + ComplexArgumentParser::Finalize(request.type); ComplexArgumentParser::Finalize(request.value); + ComplexArgumentParser::Finalize(request.externalIDList); } -CHIP_ERROR ComplexArgumentParser::Setup(const char * label, chip::app::Clusters::UnitTesting::Structs::SimpleStruct::Type & request, + +CHIP_ERROR ComplexArgumentParser::Setup(const char * label, + chip::app::Clusters::ContentLauncher::Structs::ContentSearchStruct::Type & request, Json::Value & value) { VerifyOrReturnError(value.isObject(), CHIP_ERROR_INVALID_ARGUMENT); @@ -2056,62 +2089,22 @@ CHIP_ERROR ComplexArgumentParser::Setup(const char * label, chip::app::Clusters: // Copy to track which members we already processed. Json::Value valueCopy(value); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("SimpleStruct.a", "a", value.isMember("a"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("SimpleStruct.b", "b", value.isMember("b"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("SimpleStruct.c", "c", value.isMember("c"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("SimpleStruct.d", "d", value.isMember("d"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("SimpleStruct.e", "e", value.isMember("e"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("SimpleStruct.f", "f", value.isMember("f"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("SimpleStruct.g", "g", value.isMember("g"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("SimpleStruct.h", "h", value.isMember("h"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("ContentSearchStruct.parameterList", "parameterList", + value.isMember("parameterList"))); char labelWithMember[kMaxLabelLength]; - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "a"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.a, value["a"])); - valueCopy.removeMember("a"); - - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "b"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.b, value["b"])); - valueCopy.removeMember("b"); - - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "c"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.c, value["c"])); - valueCopy.removeMember("c"); - - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "d"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.d, value["d"])); - valueCopy.removeMember("d"); - - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "e"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.e, value["e"])); - valueCopy.removeMember("e"); - - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "f"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.f, value["f"])); - valueCopy.removeMember("f"); - - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "g"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.g, value["g"])); - valueCopy.removeMember("g"); - - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "h"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.h, value["h"])); - valueCopy.removeMember("h"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "parameterList"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.parameterList, value["parameterList"])); + valueCopy.removeMember("parameterList"); return ComplexArgumentParser::EnsureNoMembersRemaining(label, valueCopy); } -void ComplexArgumentParser::Finalize(chip::app::Clusters::UnitTesting::Structs::SimpleStruct::Type & request) +void ComplexArgumentParser::Finalize(chip::app::Clusters::ContentLauncher::Structs::ContentSearchStruct::Type & request) { - ComplexArgumentParser::Finalize(request.a); - ComplexArgumentParser::Finalize(request.b); - ComplexArgumentParser::Finalize(request.c); - ComplexArgumentParser::Finalize(request.d); - ComplexArgumentParser::Finalize(request.e); - ComplexArgumentParser::Finalize(request.f); - ComplexArgumentParser::Finalize(request.g); - ComplexArgumentParser::Finalize(request.h); + ComplexArgumentParser::Finalize(request.parameterList); } + CHIP_ERROR ComplexArgumentParser::Setup(const char * label, chip::app::Clusters::ContentLauncher::Structs::StyleInformationStruct::Type & request, Json::Value & value) @@ -2152,7 +2145,9 @@ void ComplexArgumentParser::Finalize(chip::app::Clusters::ContentLauncher::Struc ComplexArgumentParser::Finalize(request.color); ComplexArgumentParser::Finalize(request.size); } -CHIP_ERROR ComplexArgumentParser::Setup(const char * label, chip::app::Clusters::AccessControl::Structs::Target::Type & request, + +CHIP_ERROR ComplexArgumentParser::Setup(const char * label, + chip::app::Clusters::ContentLauncher::Structs::BrandingInformationStruct::Type & request, Json::Value & value) { VerifyOrReturnError(value.isObject(), CHIP_ERROR_INVALID_ARGUMENT); @@ -2160,34 +2155,134 @@ CHIP_ERROR ComplexArgumentParser::Setup(const char * label, chip::app::Clusters: // Copy to track which members we already processed. Json::Value valueCopy(value); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("Target.cluster", "cluster", value.isMember("cluster"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("Target.endpoint", "endpoint", value.isMember("endpoint"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("Target.deviceType", "deviceType", value.isMember("deviceType"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("BrandingInformationStruct.providerName", "providerName", + value.isMember("providerName"))); char labelWithMember[kMaxLabelLength]; - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "cluster"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.cluster, value["cluster"])); - valueCopy.removeMember("cluster"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "providerName"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.providerName, value["providerName"])); + valueCopy.removeMember("providerName"); - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "endpoint"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.endpoint, value["endpoint"])); - valueCopy.removeMember("endpoint"); + if (value.isMember("background")) + { + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "background"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.background, value["background"])); + } + valueCopy.removeMember("background"); - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "deviceType"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.deviceType, value["deviceType"])); - valueCopy.removeMember("deviceType"); + if (value.isMember("logo")) + { + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "logo"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.logo, value["logo"])); + } + valueCopy.removeMember("logo"); + + if (value.isMember("progressBar")) + { + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "progressBar"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.progressBar, value["progressBar"])); + } + valueCopy.removeMember("progressBar"); + + if (value.isMember("splash")) + { + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "splash"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.splash, value["splash"])); + } + valueCopy.removeMember("splash"); + + if (value.isMember("waterMark")) + { + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "waterMark"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.waterMark, value["waterMark"])); + } + valueCopy.removeMember("waterMark"); return ComplexArgumentParser::EnsureNoMembersRemaining(label, valueCopy); } -void ComplexArgumentParser::Finalize(chip::app::Clusters::AccessControl::Structs::Target::Type & request) +void ComplexArgumentParser::Finalize(chip::app::Clusters::ContentLauncher::Structs::BrandingInformationStruct::Type & request) { - ComplexArgumentParser::Finalize(request.cluster); + ComplexArgumentParser::Finalize(request.providerName); + ComplexArgumentParser::Finalize(request.background); + ComplexArgumentParser::Finalize(request.logo); + ComplexArgumentParser::Finalize(request.progressBar); + ComplexArgumentParser::Finalize(request.splash); + ComplexArgumentParser::Finalize(request.waterMark); +} + +CHIP_ERROR ComplexArgumentParser::Setup(const char * label, + chip::app::Clusters::AudioOutput::Structs::OutputInfoStruct::Type & request, + Json::Value & value) +{ + VerifyOrReturnError(value.isObject(), CHIP_ERROR_INVALID_ARGUMENT); + + // Copy to track which members we already processed. + Json::Value valueCopy(value); + + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("OutputInfoStruct.index", "index", value.isMember("index"))); + ReturnErrorOnFailure( + ComplexArgumentParser::EnsureMemberExist("OutputInfoStruct.outputType", "outputType", value.isMember("outputType"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("OutputInfoStruct.name", "name", value.isMember("name"))); + + char labelWithMember[kMaxLabelLength]; + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "index"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.index, value["index"])); + valueCopy.removeMember("index"); + + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "outputType"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.outputType, value["outputType"])); + valueCopy.removeMember("outputType"); + + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "name"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.name, value["name"])); + valueCopy.removeMember("name"); + + return ComplexArgumentParser::EnsureNoMembersRemaining(label, valueCopy); +} + +void ComplexArgumentParser::Finalize(chip::app::Clusters::AudioOutput::Structs::OutputInfoStruct::Type & request) +{ + ComplexArgumentParser::Finalize(request.index); + ComplexArgumentParser::Finalize(request.outputType); + ComplexArgumentParser::Finalize(request.name); +} + +CHIP_ERROR ComplexArgumentParser::Setup(const char * label, + chip::app::Clusters::ApplicationLauncher::Structs::ApplicationEPStruct::Type & request, + Json::Value & value) +{ + VerifyOrReturnError(value.isObject(), CHIP_ERROR_INVALID_ARGUMENT); + + // Copy to track which members we already processed. + Json::Value valueCopy(value); + + ReturnErrorOnFailure( + ComplexArgumentParser::EnsureMemberExist("ApplicationEPStruct.application", "application", value.isMember("application"))); + + char labelWithMember[kMaxLabelLength]; + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "application"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.application, value["application"])); + valueCopy.removeMember("application"); + + if (value.isMember("endpoint")) + { + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "endpoint"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.endpoint, value["endpoint"])); + } + valueCopy.removeMember("endpoint"); + + return ComplexArgumentParser::EnsureNoMembersRemaining(label, valueCopy); +} + +void ComplexArgumentParser::Finalize(chip::app::Clusters::ApplicationLauncher::Structs::ApplicationEPStruct::Type & request) +{ + ComplexArgumentParser::Finalize(request.application); ComplexArgumentParser::Finalize(request.endpoint); - ComplexArgumentParser::Finalize(request.deviceType); } + CHIP_ERROR ComplexArgumentParser::Setup(const char * label, - chip::app::Clusters::TargetNavigator::Structs::TargetInfoStruct::Type & request, + chip::app::Clusters::ClientMonitoring::Structs::MonitoringRegistration::Type & request, Json::Value & value) { VerifyOrReturnError(value.isObject(), CHIP_ERROR_INVALID_ARGUMENT); @@ -2195,28 +2290,37 @@ CHIP_ERROR ComplexArgumentParser::Setup(const char * label, // Copy to track which members we already processed. Json::Value valueCopy(value); - ReturnErrorOnFailure( - ComplexArgumentParser::EnsureMemberExist("TargetInfoStruct.identifier", "identifier", value.isMember("identifier"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("TargetInfoStruct.name", "name", value.isMember("name"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("MonitoringRegistration.clientNodeId", "clientNodeId", + value.isMember("clientNodeId"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("MonitoringRegistration.ICid", "ICid", value.isMember("ICid"))); char labelWithMember[kMaxLabelLength]; - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "identifier"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.identifier, value["identifier"])); - valueCopy.removeMember("identifier"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "clientNodeId"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.clientNodeId, value["clientNodeId"])); + valueCopy.removeMember("clientNodeId"); - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "name"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.name, value["name"])); - valueCopy.removeMember("name"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "ICid"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.ICid, value["ICid"])); + valueCopy.removeMember("ICid"); + + if (value.isMember("fabricIndex")) + { + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "fabricIndex"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.fabricIndex, value["fabricIndex"])); + } + valueCopy.removeMember("fabricIndex"); return ComplexArgumentParser::EnsureNoMembersRemaining(label, valueCopy); } -void ComplexArgumentParser::Finalize(chip::app::Clusters::TargetNavigator::Structs::TargetInfoStruct::Type & request) +void ComplexArgumentParser::Finalize(chip::app::Clusters::ClientMonitoring::Structs::MonitoringRegistration::Type & request) { - ComplexArgumentParser::Finalize(request.identifier); - ComplexArgumentParser::Finalize(request.name); + ComplexArgumentParser::Finalize(request.clientNodeId); + ComplexArgumentParser::Finalize(request.ICid); + ComplexArgumentParser::Finalize(request.fabricIndex); } -CHIP_ERROR ComplexArgumentParser::Setup(const char * label, chip::app::Clusters::Binding::Structs::TargetStruct::Type & request, + +CHIP_ERROR ComplexArgumentParser::Setup(const char * label, chip::app::Clusters::UnitTesting::Structs::SimpleStruct::Type & request, Json::Value & value) { VerifyOrReturnError(value.isObject(), CHIP_ERROR_INVALID_ARGUMENT); @@ -2224,53 +2328,63 @@ CHIP_ERROR ComplexArgumentParser::Setup(const char * label, chip::app::Clusters: // Copy to track which members we already processed. Json::Value valueCopy(value); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("SimpleStruct.a", "a", value.isMember("a"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("SimpleStruct.b", "b", value.isMember("b"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("SimpleStruct.c", "c", value.isMember("c"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("SimpleStruct.d", "d", value.isMember("d"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("SimpleStruct.e", "e", value.isMember("e"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("SimpleStruct.f", "f", value.isMember("f"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("SimpleStruct.g", "g", value.isMember("g"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("SimpleStruct.h", "h", value.isMember("h"))); + char labelWithMember[kMaxLabelLength]; - if (value.isMember("node")) - { - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "node"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.node, value["node"])); - } - valueCopy.removeMember("node"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "a"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.a, value["a"])); + valueCopy.removeMember("a"); - if (value.isMember("group")) - { - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "group"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.group, value["group"])); - } - valueCopy.removeMember("group"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "b"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.b, value["b"])); + valueCopy.removeMember("b"); - if (value.isMember("endpoint")) - { - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "endpoint"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.endpoint, value["endpoint"])); - } - valueCopy.removeMember("endpoint"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "c"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.c, value["c"])); + valueCopy.removeMember("c"); - if (value.isMember("cluster")) - { - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "cluster"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.cluster, value["cluster"])); - } - valueCopy.removeMember("cluster"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "d"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.d, value["d"])); + valueCopy.removeMember("d"); - if (value.isMember("fabricIndex")) - { - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "fabricIndex"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.fabricIndex, value["fabricIndex"])); - } - valueCopy.removeMember("fabricIndex"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "e"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.e, value["e"])); + valueCopy.removeMember("e"); + + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "f"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.f, value["f"])); + valueCopy.removeMember("f"); + + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "g"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.g, value["g"])); + valueCopy.removeMember("g"); + + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "h"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.h, value["h"])); + valueCopy.removeMember("h"); return ComplexArgumentParser::EnsureNoMembersRemaining(label, valueCopy); } -void ComplexArgumentParser::Finalize(chip::app::Clusters::Binding::Structs::TargetStruct::Type & request) +void ComplexArgumentParser::Finalize(chip::app::Clusters::UnitTesting::Structs::SimpleStruct::Type & request) { - ComplexArgumentParser::Finalize(request.node); - ComplexArgumentParser::Finalize(request.group); - ComplexArgumentParser::Finalize(request.endpoint); - ComplexArgumentParser::Finalize(request.cluster); - ComplexArgumentParser::Finalize(request.fabricIndex); + ComplexArgumentParser::Finalize(request.a); + ComplexArgumentParser::Finalize(request.b); + ComplexArgumentParser::Finalize(request.c); + ComplexArgumentParser::Finalize(request.d); + ComplexArgumentParser::Finalize(request.e); + ComplexArgumentParser::Finalize(request.f); + ComplexArgumentParser::Finalize(request.g); + ComplexArgumentParser::Finalize(request.h); } + CHIP_ERROR ComplexArgumentParser::Setup(const char * label, chip::app::Clusters::UnitTesting::Structs::TestFabricScoped::Type & request, Json::Value & value) @@ -2355,39 +2469,9 @@ void ComplexArgumentParser::Finalize(chip::app::Clusters::UnitTesting::Structs:: ComplexArgumentParser::Finalize(request.fabricSensitiveInt8uList); ComplexArgumentParser::Finalize(request.fabricIndex); } -CHIP_ERROR ComplexArgumentParser::Setup(const char * label, - chip::app::Clusters::UnitTesting::Structs::TestListStructOctet::Type & request, - Json::Value & value) -{ - VerifyOrReturnError(value.isObject(), CHIP_ERROR_INVALID_ARGUMENT); - - // Copy to track which members we already processed. - Json::Value valueCopy(value); - - ReturnErrorOnFailure( - ComplexArgumentParser::EnsureMemberExist("TestListStructOctet.member1", "member1", value.isMember("member1"))); - ReturnErrorOnFailure( - ComplexArgumentParser::EnsureMemberExist("TestListStructOctet.member2", "member2", value.isMember("member2"))); - - char labelWithMember[kMaxLabelLength]; - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "member1"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.member1, value["member1"])); - valueCopy.removeMember("member1"); - - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "member2"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.member2, value["member2"])); - valueCopy.removeMember("member2"); - - return ComplexArgumentParser::EnsureNoMembersRemaining(label, valueCopy); -} -void ComplexArgumentParser::Finalize(chip::app::Clusters::UnitTesting::Structs::TestListStructOctet::Type & request) -{ - ComplexArgumentParser::Finalize(request.member1); - ComplexArgumentParser::Finalize(request.member2); -} CHIP_ERROR ComplexArgumentParser::Setup(const char * label, - chip::app::Clusters::Thermostat::Structs::ThermostatScheduleTransition::Type & request, + chip::app::Clusters::UnitTesting::Structs::NullablesAndOptionalsStruct::Type & request, Json::Value & value) { VerifyOrReturnError(value.isObject(), CHIP_ERROR_INVALID_ARGUMENT); @@ -2395,110 +2479,112 @@ CHIP_ERROR ComplexArgumentParser::Setup(const char * label, // Copy to track which members we already processed. Json::Value valueCopy(value); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("ThermostatScheduleTransition.transitionTime", "transitionTime", - value.isMember("transitionTime"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("ThermostatScheduleTransition.heatSetpoint", "heatSetpoint", - value.isMember("heatSetpoint"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("ThermostatScheduleTransition.coolSetpoint", "coolSetpoint", - value.isMember("coolSetpoint"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("NullablesAndOptionalsStruct.nullableInt", "nullableInt", + value.isMember("nullableInt"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("NullablesAndOptionalsStruct.nullableString", "nullableString", + value.isMember("nullableString"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("NullablesAndOptionalsStruct.nullableStruct", "nullableStruct", + value.isMember("nullableStruct"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("NullablesAndOptionalsStruct.nullableList", "nullableList", + value.isMember("nullableList"))); char labelWithMember[kMaxLabelLength]; - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "transitionTime"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.transitionTime, value["transitionTime"])); - valueCopy.removeMember("transitionTime"); - - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "heatSetpoint"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.heatSetpoint, value["heatSetpoint"])); - valueCopy.removeMember("heatSetpoint"); - - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "coolSetpoint"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.coolSetpoint, value["coolSetpoint"])); - valueCopy.removeMember("coolSetpoint"); - - return ComplexArgumentParser::EnsureNoMembersRemaining(label, valueCopy); -} - -void ComplexArgumentParser::Finalize(chip::app::Clusters::Thermostat::Structs::ThermostatScheduleTransition::Type & request) -{ - ComplexArgumentParser::Finalize(request.transitionTime); - ComplexArgumentParser::Finalize(request.heatSetpoint); - ComplexArgumentParser::Finalize(request.coolSetpoint); -} -CHIP_ERROR -ComplexArgumentParser::Setup(const char * label, - chip::app::Clusters::NetworkCommissioning::Structs::ThreadInterfaceScanResult::Type & request, - Json::Value & value) -{ - VerifyOrReturnError(value.isObject(), CHIP_ERROR_INVALID_ARGUMENT); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "nullableInt"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.nullableInt, value["nullableInt"])); + valueCopy.removeMember("nullableInt"); - // Copy to track which members we already processed. - Json::Value valueCopy(value); + if (value.isMember("optionalInt")) + { + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "optionalInt"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.optionalInt, value["optionalInt"])); + } + valueCopy.removeMember("optionalInt"); - ReturnErrorOnFailure( - ComplexArgumentParser::EnsureMemberExist("ThreadInterfaceScanResult.panId", "panId", value.isMember("panId"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("ThreadInterfaceScanResult.extendedPanId", "extendedPanId", - value.isMember("extendedPanId"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("ThreadInterfaceScanResult.networkName", "networkName", - value.isMember("networkName"))); - ReturnErrorOnFailure( - ComplexArgumentParser::EnsureMemberExist("ThreadInterfaceScanResult.channel", "channel", value.isMember("channel"))); - ReturnErrorOnFailure( - ComplexArgumentParser::EnsureMemberExist("ThreadInterfaceScanResult.version", "version", value.isMember("version"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("ThreadInterfaceScanResult.extendedAddress", "extendedAddress", - value.isMember("extendedAddress"))); - ReturnErrorOnFailure( - ComplexArgumentParser::EnsureMemberExist("ThreadInterfaceScanResult.rssi", "rssi", value.isMember("rssi"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("ThreadInterfaceScanResult.lqi", "lqi", value.isMember("lqi"))); + if (value.isMember("nullableOptionalInt")) + { + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "nullableOptionalInt"); + ReturnErrorOnFailure( + ComplexArgumentParser::Setup(labelWithMember, request.nullableOptionalInt, value["nullableOptionalInt"])); + } + valueCopy.removeMember("nullableOptionalInt"); - char labelWithMember[kMaxLabelLength]; - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "panId"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.panId, value["panId"])); - valueCopy.removeMember("panId"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "nullableString"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.nullableString, value["nullableString"])); + valueCopy.removeMember("nullableString"); - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "extendedPanId"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.extendedPanId, value["extendedPanId"])); - valueCopy.removeMember("extendedPanId"); + if (value.isMember("optionalString")) + { + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "optionalString"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.optionalString, value["optionalString"])); + } + valueCopy.removeMember("optionalString"); - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "networkName"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.networkName, value["networkName"])); - valueCopy.removeMember("networkName"); + if (value.isMember("nullableOptionalString")) + { + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "nullableOptionalString"); + ReturnErrorOnFailure( + ComplexArgumentParser::Setup(labelWithMember, request.nullableOptionalString, value["nullableOptionalString"])); + } + valueCopy.removeMember("nullableOptionalString"); - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "channel"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.channel, value["channel"])); - valueCopy.removeMember("channel"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "nullableStruct"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.nullableStruct, value["nullableStruct"])); + valueCopy.removeMember("nullableStruct"); - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "version"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.version, value["version"])); - valueCopy.removeMember("version"); + if (value.isMember("optionalStruct")) + { + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "optionalStruct"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.optionalStruct, value["optionalStruct"])); + } + valueCopy.removeMember("optionalStruct"); - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "extendedAddress"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.extendedAddress, value["extendedAddress"])); - valueCopy.removeMember("extendedAddress"); + if (value.isMember("nullableOptionalStruct")) + { + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "nullableOptionalStruct"); + ReturnErrorOnFailure( + ComplexArgumentParser::Setup(labelWithMember, request.nullableOptionalStruct, value["nullableOptionalStruct"])); + } + valueCopy.removeMember("nullableOptionalStruct"); - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "rssi"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.rssi, value["rssi"])); - valueCopy.removeMember("rssi"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "nullableList"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.nullableList, value["nullableList"])); + valueCopy.removeMember("nullableList"); - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "lqi"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.lqi, value["lqi"])); - valueCopy.removeMember("lqi"); + if (value.isMember("optionalList")) + { + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "optionalList"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.optionalList, value["optionalList"])); + } + valueCopy.removeMember("optionalList"); + + if (value.isMember("nullableOptionalList")) + { + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "nullableOptionalList"); + ReturnErrorOnFailure( + ComplexArgumentParser::Setup(labelWithMember, request.nullableOptionalList, value["nullableOptionalList"])); + } + valueCopy.removeMember("nullableOptionalList"); return ComplexArgumentParser::EnsureNoMembersRemaining(label, valueCopy); } -void ComplexArgumentParser::Finalize(chip::app::Clusters::NetworkCommissioning::Structs::ThreadInterfaceScanResult::Type & request) +void ComplexArgumentParser::Finalize(chip::app::Clusters::UnitTesting::Structs::NullablesAndOptionalsStruct::Type & request) { - ComplexArgumentParser::Finalize(request.panId); - ComplexArgumentParser::Finalize(request.extendedPanId); - ComplexArgumentParser::Finalize(request.networkName); - ComplexArgumentParser::Finalize(request.channel); - ComplexArgumentParser::Finalize(request.version); - ComplexArgumentParser::Finalize(request.extendedAddress); - ComplexArgumentParser::Finalize(request.rssi); - ComplexArgumentParser::Finalize(request.lqi); + ComplexArgumentParser::Finalize(request.nullableInt); + ComplexArgumentParser::Finalize(request.optionalInt); + ComplexArgumentParser::Finalize(request.nullableOptionalInt); + ComplexArgumentParser::Finalize(request.nullableString); + ComplexArgumentParser::Finalize(request.optionalString); + ComplexArgumentParser::Finalize(request.nullableOptionalString); + ComplexArgumentParser::Finalize(request.nullableStruct); + ComplexArgumentParser::Finalize(request.optionalStruct); + ComplexArgumentParser::Finalize(request.nullableOptionalStruct); + ComplexArgumentParser::Finalize(request.nullableList); + ComplexArgumentParser::Finalize(request.optionalList); + ComplexArgumentParser::Finalize(request.nullableOptionalList); } -CHIP_ERROR ComplexArgumentParser::Setup(const char * label, - chip::app::Clusters::SoftwareDiagnostics::Structs::ThreadMetricsStruct::Type & request, + +CHIP_ERROR ComplexArgumentParser::Setup(const char * label, chip::app::Clusters::UnitTesting::Structs::NestedStruct::Type & request, Json::Value & value) { VerifyOrReturnError(value.isObject(), CHIP_ERROR_INVALID_ARGUMENT); @@ -2506,54 +2592,35 @@ CHIP_ERROR ComplexArgumentParser::Setup(const char * label, // Copy to track which members we already processed. Json::Value valueCopy(value); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("ThreadMetricsStruct.id", "id", value.isMember("id"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("NestedStruct.a", "a", value.isMember("a"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("NestedStruct.b", "b", value.isMember("b"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("NestedStruct.c", "c", value.isMember("c"))); char labelWithMember[kMaxLabelLength]; - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "id"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.id, value["id"])); - valueCopy.removeMember("id"); - - if (value.isMember("name")) - { - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "name"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.name, value["name"])); - } - valueCopy.removeMember("name"); - - if (value.isMember("stackFreeCurrent")) - { - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "stackFreeCurrent"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.stackFreeCurrent, value["stackFreeCurrent"])); - } - valueCopy.removeMember("stackFreeCurrent"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "a"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.a, value["a"])); + valueCopy.removeMember("a"); - if (value.isMember("stackFreeMinimum")) - { - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "stackFreeMinimum"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.stackFreeMinimum, value["stackFreeMinimum"])); - } - valueCopy.removeMember("stackFreeMinimum"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "b"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.b, value["b"])); + valueCopy.removeMember("b"); - if (value.isMember("stackSize")) - { - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "stackSize"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.stackSize, value["stackSize"])); - } - valueCopy.removeMember("stackSize"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "c"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.c, value["c"])); + valueCopy.removeMember("c"); return ComplexArgumentParser::EnsureNoMembersRemaining(label, valueCopy); } -void ComplexArgumentParser::Finalize(chip::app::Clusters::SoftwareDiagnostics::Structs::ThreadMetricsStruct::Type & request) +void ComplexArgumentParser::Finalize(chip::app::Clusters::UnitTesting::Structs::NestedStruct::Type & request) { - ComplexArgumentParser::Finalize(request.id); - ComplexArgumentParser::Finalize(request.name); - ComplexArgumentParser::Finalize(request.stackFreeCurrent); - ComplexArgumentParser::Finalize(request.stackFreeMinimum); - ComplexArgumentParser::Finalize(request.stackSize); + ComplexArgumentParser::Finalize(request.a); + ComplexArgumentParser::Finalize(request.b); + ComplexArgumentParser::Finalize(request.c); } + CHIP_ERROR ComplexArgumentParser::Setup(const char * label, - chip::app::Clusters::TimeSynchronization::Structs::TimeZoneStruct::Type & request, + chip::app::Clusters::UnitTesting::Structs::NestedStructList::Type & request, Json::Value & value) { VerifyOrReturnError(value.isObject(), CHIP_ERROR_INVALID_ARGUMENT); @@ -2561,36 +2628,59 @@ CHIP_ERROR ComplexArgumentParser::Setup(const char * label, // Copy to track which members we already processed. Json::Value valueCopy(value); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("TimeZoneStruct.offset", "offset", value.isMember("offset"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("TimeZoneStruct.validAt", "validAt", value.isMember("validAt"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("NestedStructList.a", "a", value.isMember("a"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("NestedStructList.b", "b", value.isMember("b"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("NestedStructList.c", "c", value.isMember("c"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("NestedStructList.d", "d", value.isMember("d"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("NestedStructList.e", "e", value.isMember("e"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("NestedStructList.f", "f", value.isMember("f"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("NestedStructList.g", "g", value.isMember("g"))); char labelWithMember[kMaxLabelLength]; - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "offset"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.offset, value["offset"])); - valueCopy.removeMember("offset"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "a"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.a, value["a"])); + valueCopy.removeMember("a"); - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "validAt"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.validAt, value["validAt"])); - valueCopy.removeMember("validAt"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "b"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.b, value["b"])); + valueCopy.removeMember("b"); - if (value.isMember("name")) - { - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "name"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.name, value["name"])); - } - valueCopy.removeMember("name"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "c"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.c, value["c"])); + valueCopy.removeMember("c"); + + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "d"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.d, value["d"])); + valueCopy.removeMember("d"); + + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "e"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.e, value["e"])); + valueCopy.removeMember("e"); + + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "f"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.f, value["f"])); + valueCopy.removeMember("f"); + + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "g"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.g, value["g"])); + valueCopy.removeMember("g"); return ComplexArgumentParser::EnsureNoMembersRemaining(label, valueCopy); } -void ComplexArgumentParser::Finalize(chip::app::Clusters::TimeSynchronization::Structs::TimeZoneStruct::Type & request) +void ComplexArgumentParser::Finalize(chip::app::Clusters::UnitTesting::Structs::NestedStructList::Type & request) { - ComplexArgumentParser::Finalize(request.offset); - ComplexArgumentParser::Finalize(request.validAt); - ComplexArgumentParser::Finalize(request.name); + ComplexArgumentParser::Finalize(request.a); + ComplexArgumentParser::Finalize(request.b); + ComplexArgumentParser::Finalize(request.c); + ComplexArgumentParser::Finalize(request.d); + ComplexArgumentParser::Finalize(request.e); + ComplexArgumentParser::Finalize(request.f); + ComplexArgumentParser::Finalize(request.g); } + CHIP_ERROR ComplexArgumentParser::Setup(const char * label, - chip::app::Clusters::NetworkCommissioning::Structs::WiFiInterfaceScanResult::Type & request, + chip::app::Clusters::UnitTesting::Structs::DoubleNestedStructList::Type & request, Json::Value & value) { VerifyOrReturnError(value.isObject(), CHIP_ERROR_INVALID_ARGUMENT); @@ -2598,56 +2688,23 @@ CHIP_ERROR ComplexArgumentParser::Setup(const char * label, // Copy to track which members we already processed. Json::Value valueCopy(value); - ReturnErrorOnFailure( - ComplexArgumentParser::EnsureMemberExist("WiFiInterfaceScanResult.security", "security", value.isMember("security"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("WiFiInterfaceScanResult.ssid", "ssid", value.isMember("ssid"))); - ReturnErrorOnFailure( - ComplexArgumentParser::EnsureMemberExist("WiFiInterfaceScanResult.bssid", "bssid", value.isMember("bssid"))); - ReturnErrorOnFailure( - ComplexArgumentParser::EnsureMemberExist("WiFiInterfaceScanResult.channel", "channel", value.isMember("channel"))); - ReturnErrorOnFailure( - ComplexArgumentParser::EnsureMemberExist("WiFiInterfaceScanResult.wiFiBand", "wiFiBand", value.isMember("wiFiBand"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("WiFiInterfaceScanResult.rssi", "rssi", value.isMember("rssi"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("DoubleNestedStructList.a", "a", value.isMember("a"))); char labelWithMember[kMaxLabelLength]; - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "security"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.security, value["security"])); - valueCopy.removeMember("security"); - - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "ssid"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.ssid, value["ssid"])); - valueCopy.removeMember("ssid"); - - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "bssid"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.bssid, value["bssid"])); - valueCopy.removeMember("bssid"); - - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "channel"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.channel, value["channel"])); - valueCopy.removeMember("channel"); - - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "wiFiBand"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.wiFiBand, value["wiFiBand"])); - valueCopy.removeMember("wiFiBand"); - - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "rssi"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.rssi, value["rssi"])); - valueCopy.removeMember("rssi"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "a"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.a, value["a"])); + valueCopy.removeMember("a"); return ComplexArgumentParser::EnsureNoMembersRemaining(label, valueCopy); } -void ComplexArgumentParser::Finalize(chip::app::Clusters::NetworkCommissioning::Structs::WiFiInterfaceScanResult::Type & request) +void ComplexArgumentParser::Finalize(chip::app::Clusters::UnitTesting::Structs::DoubleNestedStructList::Type & request) { - ComplexArgumentParser::Finalize(request.security); - ComplexArgumentParser::Finalize(request.ssid); - ComplexArgumentParser::Finalize(request.bssid); - ComplexArgumentParser::Finalize(request.channel); - ComplexArgumentParser::Finalize(request.wiFiBand); - ComplexArgumentParser::Finalize(request.rssi); + ComplexArgumentParser::Finalize(request.a); } + CHIP_ERROR ComplexArgumentParser::Setup(const char * label, - chip::app::Clusters::PowerSource::Structs::WiredFaultChangeType::Type & request, + chip::app::Clusters::UnitTesting::Structs::TestListStructOctet::Type & request, Json::Value & value) { VerifyOrReturnError(value.isObject(), CHIP_ERROR_INVALID_ARGUMENT); @@ -2656,24 +2713,24 @@ CHIP_ERROR ComplexArgumentParser::Setup(const char * label, Json::Value valueCopy(value); ReturnErrorOnFailure( - ComplexArgumentParser::EnsureMemberExist("WiredFaultChangeType.current", "current", value.isMember("current"))); + ComplexArgumentParser::EnsureMemberExist("TestListStructOctet.member1", "member1", value.isMember("member1"))); ReturnErrorOnFailure( - ComplexArgumentParser::EnsureMemberExist("WiredFaultChangeType.previous", "previous", value.isMember("previous"))); + ComplexArgumentParser::EnsureMemberExist("TestListStructOctet.member2", "member2", value.isMember("member2"))); char labelWithMember[kMaxLabelLength]; - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "current"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.current, value["current"])); - valueCopy.removeMember("current"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "member1"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.member1, value["member1"])); + valueCopy.removeMember("member1"); - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "previous"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.previous, value["previous"])); - valueCopy.removeMember("previous"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "member2"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.member2, value["member2"])); + valueCopy.removeMember("member2"); return ComplexArgumentParser::EnsureNoMembersRemaining(label, valueCopy); } -void ComplexArgumentParser::Finalize(chip::app::Clusters::PowerSource::Structs::WiredFaultChangeType::Type & request) +void ComplexArgumentParser::Finalize(chip::app::Clusters::UnitTesting::Structs::TestListStructOctet::Type & request) { - ComplexArgumentParser::Finalize(request.current); - ComplexArgumentParser::Finalize(request.previous); + ComplexArgumentParser::Finalize(request.member1); + ComplexArgumentParser::Finalize(request.member2); } diff --git a/zzz_generated/chip-tool/zap-generated/cluster/ComplexArgumentParser.h b/zzz_generated/chip-tool/zap-generated/cluster/ComplexArgumentParser.h index 8c0036f996e70c..990126cbc87187 100644 --- a/zzz_generated/chip-tool/zap-generated/cluster/ComplexArgumentParser.h +++ b/zzz_generated/chip-tool/zap-generated/cluster/ComplexArgumentParser.h @@ -22,242 +22,299 @@ #include #include +static CHIP_ERROR Setup(const char * label, chip::app::Clusters::detail::Structs::ApplicationStruct::Type & request, + Json::Value & value); + +static void Finalize(chip::app::Clusters::detail::Structs::ApplicationStruct::Type & request); + +static CHIP_ERROR Setup(const char * label, chip::app::Clusters::detail::Structs::LabelStruct::Type & request, Json::Value & value); + +static void Finalize(chip::app::Clusters::detail::Structs::LabelStruct::Type & request); + +static CHIP_ERROR Setup(const char * label, chip::app::Clusters::Scenes::Structs::AttributeValuePair::Type & request, + Json::Value & value); + +static void Finalize(chip::app::Clusters::Scenes::Structs::AttributeValuePair::Type & request); + +static CHIP_ERROR Setup(const char * label, chip::app::Clusters::Scenes::Structs::ExtensionFieldSet::Type & request, + Json::Value & value); + +static void Finalize(chip::app::Clusters::Scenes::Structs::ExtensionFieldSet::Type & request); + +static CHIP_ERROR Setup(const char * label, chip::app::Clusters::Descriptor::Structs::DeviceTypeStruct::Type & request, + Json::Value & value); + +static void Finalize(chip::app::Clusters::Descriptor::Structs::DeviceTypeStruct::Type & request); + +static CHIP_ERROR Setup(const char * label, chip::app::Clusters::Binding::Structs::TargetStruct::Type & request, + Json::Value & value); + +static void Finalize(chip::app::Clusters::Binding::Structs::TargetStruct::Type & request); + +static CHIP_ERROR Setup(const char * label, chip::app::Clusters::AccessControl::Structs::Target::Type & request, + Json::Value & value); + +static void Finalize(chip::app::Clusters::AccessControl::Structs::Target::Type & request); + static CHIP_ERROR Setup(const char * label, chip::app::Clusters::AccessControl::Structs::AccessControlEntryStruct::Type & request, Json::Value & value); static void Finalize(chip::app::Clusters::AccessControl::Structs::AccessControlEntryStruct::Type & request); + static CHIP_ERROR Setup(const char * label, chip::app::Clusters::AccessControl::Structs::AccessControlExtensionStruct::Type & request, Json::Value & value); static void Finalize(chip::app::Clusters::AccessControl::Structs::AccessControlExtensionStruct::Type & request); + static CHIP_ERROR Setup(const char * label, chip::app::Clusters::Actions::Structs::ActionStruct::Type & request, Json::Value & value); static void Finalize(chip::app::Clusters::Actions::Structs::ActionStruct::Type & request); -static CHIP_ERROR Setup(const char * label, chip::app::Clusters::ContentLauncher::Structs::AdditionalInfoStruct::Type & request, - Json::Value & value); -static void Finalize(chip::app::Clusters::ContentLauncher::Structs::AdditionalInfoStruct::Type & request); -static CHIP_ERROR Setup(const char * label, chip::app::Clusters::ApplicationLauncher::Structs::ApplicationEPStruct::Type & request, +static CHIP_ERROR Setup(const char * label, chip::app::Clusters::Actions::Structs::EndpointListStruct::Type & request, Json::Value & value); -static void Finalize(chip::app::Clusters::ApplicationLauncher::Structs::ApplicationEPStruct::Type & request); -static CHIP_ERROR Setup(const char * label, chip::app::Clusters::detail::Structs::ApplicationStruct::Type & request, - Json::Value & value); +static void Finalize(chip::app::Clusters::Actions::Structs::EndpointListStruct::Type & request); -static void Finalize(chip::app::Clusters::detail::Structs::ApplicationStruct::Type & request); -static CHIP_ERROR Setup(const char * label, chip::app::Clusters::Scenes::Structs::AttributeValuePair::Type & request, +static CHIP_ERROR Setup(const char * label, chip::app::Clusters::BasicInformation::Structs::CapabilityMinimaStruct::Type & request, Json::Value & value); -static void Finalize(chip::app::Clusters::Scenes::Structs::AttributeValuePair::Type & request); +static void Finalize(chip::app::Clusters::BasicInformation::Structs::CapabilityMinimaStruct::Type & request); + static CHIP_ERROR Setup(const char * label, - chip::app::Clusters::GeneralCommissioning::Structs::BasicCommissioningInfo::Type & request, + chip::app::Clusters::OtaSoftwareUpdateRequestor::Structs::ProviderLocation::Type & request, Json::Value & value); -static void Finalize(chip::app::Clusters::GeneralCommissioning::Structs::BasicCommissioningInfo::Type & request); +static void Finalize(chip::app::Clusters::OtaSoftwareUpdateRequestor::Structs::ProviderLocation::Type & request); + static CHIP_ERROR Setup(const char * label, chip::app::Clusters::PowerSource::Structs::BatChargeFaultChangeType::Type & request, Json::Value & value); static void Finalize(chip::app::Clusters::PowerSource::Structs::BatChargeFaultChangeType::Type & request); + static CHIP_ERROR Setup(const char * label, chip::app::Clusters::PowerSource::Structs::BatFaultChangeType::Type & request, Json::Value & value); static void Finalize(chip::app::Clusters::PowerSource::Structs::BatFaultChangeType::Type & request); + +static CHIP_ERROR Setup(const char * label, chip::app::Clusters::PowerSource::Structs::WiredFaultChangeType::Type & request, + Json::Value & value); + +static void Finalize(chip::app::Clusters::PowerSource::Structs::WiredFaultChangeType::Type & request); + static CHIP_ERROR Setup(const char * label, - chip::app::Clusters::ContentLauncher::Structs::BrandingInformationStruct::Type & request, + chip::app::Clusters::GeneralCommissioning::Structs::BasicCommissioningInfo::Type & request, Json::Value & value); -static void Finalize(chip::app::Clusters::ContentLauncher::Structs::BrandingInformationStruct::Type & request); -static CHIP_ERROR Setup(const char * label, chip::app::Clusters::BasicInformation::Structs::CapabilityMinimaStruct::Type & request, +static void Finalize(chip::app::Clusters::GeneralCommissioning::Structs::BasicCommissioningInfo::Type & request); + +static CHIP_ERROR Setup(const char * label, chip::app::Clusters::NetworkCommissioning::Structs::NetworkInfo::Type & request, Json::Value & value); -static void Finalize(chip::app::Clusters::BasicInformation::Structs::CapabilityMinimaStruct::Type & request); -static CHIP_ERROR Setup(const char * label, chip::app::Clusters::Channel::Structs::ChannelInfoStruct::Type & request, +static void Finalize(chip::app::Clusters::NetworkCommissioning::Structs::NetworkInfo::Type & request); + +static CHIP_ERROR Setup(const char * label, + chip::app::Clusters::NetworkCommissioning::Structs::ThreadInterfaceScanResult::Type & request, Json::Value & value); -static void Finalize(chip::app::Clusters::Channel::Structs::ChannelInfoStruct::Type & request); -static CHIP_ERROR Setup(const char * label, chip::app::Clusters::ContentLauncher::Structs::ContentSearchStruct::Type & request, +static void Finalize(chip::app::Clusters::NetworkCommissioning::Structs::ThreadInterfaceScanResult::Type & request); + +static CHIP_ERROR Setup(const char * label, + chip::app::Clusters::NetworkCommissioning::Structs::WiFiInterfaceScanResult::Type & request, Json::Value & value); -static void Finalize(chip::app::Clusters::ContentLauncher::Structs::ContentSearchStruct::Type & request); -static CHIP_ERROR Setup(const char * label, chip::app::Clusters::DoorLock::Structs::CredentialStruct::Type & request, +static void Finalize(chip::app::Clusters::NetworkCommissioning::Structs::WiFiInterfaceScanResult::Type & request); + +static CHIP_ERROR Setup(const char * label, chip::app::Clusters::GeneralDiagnostics::Structs::NetworkInterface::Type & request, Json::Value & value); -static void Finalize(chip::app::Clusters::DoorLock::Structs::CredentialStruct::Type & request); -static CHIP_ERROR Setup(const char * label, chip::app::Clusters::TimeSynchronization::Structs::DSTOffsetStruct::Type & request, +static void Finalize(chip::app::Clusters::GeneralDiagnostics::Structs::NetworkInterface::Type & request); + +static CHIP_ERROR Setup(const char * label, chip::app::Clusters::SoftwareDiagnostics::Structs::ThreadMetricsStruct::Type & request, Json::Value & value); -static void Finalize(chip::app::Clusters::TimeSynchronization::Structs::DSTOffsetStruct::Type & request); -static CHIP_ERROR Setup(const char * label, chip::app::Clusters::Descriptor::Structs::DeviceTypeStruct::Type & request, +static void Finalize(chip::app::Clusters::SoftwareDiagnostics::Structs::ThreadMetricsStruct::Type & request); + +static CHIP_ERROR Setup(const char * label, chip::app::Clusters::ThreadNetworkDiagnostics::Structs::NeighborTable::Type & request, Json::Value & value); -static void Finalize(chip::app::Clusters::Descriptor::Structs::DeviceTypeStruct::Type & request); -static CHIP_ERROR Setup(const char * label, chip::app::Clusters::ContentLauncher::Structs::DimensionStruct::Type & request, +static void Finalize(chip::app::Clusters::ThreadNetworkDiagnostics::Structs::NeighborTable::Type & request); + +static CHIP_ERROR Setup(const char * label, + chip::app::Clusters::ThreadNetworkDiagnostics::Structs::OperationalDatasetComponents::Type & request, Json::Value & value); -static void Finalize(chip::app::Clusters::ContentLauncher::Structs::DimensionStruct::Type & request); -static CHIP_ERROR Setup(const char * label, chip::app::Clusters::UnitTesting::Structs::DoubleNestedStructList::Type & request, +static void Finalize(chip::app::Clusters::ThreadNetworkDiagnostics::Structs::OperationalDatasetComponents::Type & request); + +static CHIP_ERROR Setup(const char * label, chip::app::Clusters::ThreadNetworkDiagnostics::Structs::RouteTable::Type & request, Json::Value & value); -static void Finalize(chip::app::Clusters::UnitTesting::Structs::DoubleNestedStructList::Type & request); -static CHIP_ERROR Setup(const char * label, chip::app::Clusters::Actions::Structs::EndpointListStruct::Type & request, +static void Finalize(chip::app::Clusters::ThreadNetworkDiagnostics::Structs::RouteTable::Type & request); + +static CHIP_ERROR Setup(const char * label, chip::app::Clusters::ThreadNetworkDiagnostics::Structs::SecurityPolicy::Type & request, Json::Value & value); -static void Finalize(chip::app::Clusters::Actions::Structs::EndpointListStruct::Type & request); -static CHIP_ERROR Setup(const char * label, chip::app::Clusters::Scenes::Structs::ExtensionFieldSet::Type & request, +static void Finalize(chip::app::Clusters::ThreadNetworkDiagnostics::Structs::SecurityPolicy::Type & request); + +static CHIP_ERROR Setup(const char * label, chip::app::Clusters::TimeSynchronization::Structs::DSTOffsetStruct::Type & request, Json::Value & value); -static void Finalize(chip::app::Clusters::Scenes::Structs::ExtensionFieldSet::Type & request); +static void Finalize(chip::app::Clusters::TimeSynchronization::Structs::DSTOffsetStruct::Type & request); + +static CHIP_ERROR Setup(const char * label, chip::app::Clusters::TimeSynchronization::Structs::TimeZoneStruct::Type & request, + Json::Value & value); + +static void Finalize(chip::app::Clusters::TimeSynchronization::Structs::TimeZoneStruct::Type & request); + static CHIP_ERROR Setup(const char * label, chip::app::Clusters::OperationalCredentials::Structs::FabricDescriptorStruct::Type & request, Json::Value & value); static void Finalize(chip::app::Clusters::OperationalCredentials::Structs::FabricDescriptorStruct::Type & request); + +static CHIP_ERROR Setup(const char * label, chip::app::Clusters::OperationalCredentials::Structs::NOCStruct::Type & request, + Json::Value & value); + +static void Finalize(chip::app::Clusters::OperationalCredentials::Structs::NOCStruct::Type & request); + static CHIP_ERROR Setup(const char * label, chip::app::Clusters::GroupKeyManagement::Structs::GroupInfoMapStruct::Type & request, Json::Value & value); static void Finalize(chip::app::Clusters::GroupKeyManagement::Structs::GroupInfoMapStruct::Type & request); + static CHIP_ERROR Setup(const char * label, chip::app::Clusters::GroupKeyManagement::Structs::GroupKeyMapStruct::Type & request, Json::Value & value); static void Finalize(chip::app::Clusters::GroupKeyManagement::Structs::GroupKeyMapStruct::Type & request); + static CHIP_ERROR Setup(const char * label, chip::app::Clusters::GroupKeyManagement::Structs::GroupKeySetStruct::Type & request, Json::Value & value); static void Finalize(chip::app::Clusters::GroupKeyManagement::Structs::GroupKeySetStruct::Type & request); -static CHIP_ERROR Setup(const char * label, chip::app::Clusters::MediaInput::Structs::InputInfoStruct::Type & request, - Json::Value & value); -static void Finalize(chip::app::Clusters::MediaInput::Structs::InputInfoStruct::Type & request); -static CHIP_ERROR Setup(const char * label, chip::app::Clusters::detail::Structs::LabelStruct::Type & request, Json::Value & value); - -static void Finalize(chip::app::Clusters::detail::Structs::LabelStruct::Type & request); -static CHIP_ERROR Setup(const char * label, chip::app::Clusters::Channel::Structs::LineupInfoStruct::Type & request, +static CHIP_ERROR Setup(const char * label, chip::app::Clusters::ModeSelect::Structs::SemanticTagStruct::Type & request, Json::Value & value); -static void Finalize(chip::app::Clusters::Channel::Structs::LineupInfoStruct::Type & request); +static void Finalize(chip::app::Clusters::ModeSelect::Structs::SemanticTagStruct::Type & request); + static CHIP_ERROR Setup(const char * label, chip::app::Clusters::ModeSelect::Structs::ModeOptionStruct::Type & request, Json::Value & value); static void Finalize(chip::app::Clusters::ModeSelect::Structs::ModeOptionStruct::Type & request); -static CHIP_ERROR Setup(const char * label, chip::app::Clusters::ClientMonitoring::Structs::MonitoringRegistration::Type & request, - Json::Value & value); -static void Finalize(chip::app::Clusters::ClientMonitoring::Structs::MonitoringRegistration::Type & request); -static CHIP_ERROR Setup(const char * label, chip::app::Clusters::OperationalCredentials::Structs::NOCStruct::Type & request, +static CHIP_ERROR Setup(const char * label, chip::app::Clusters::DoorLock::Structs::CredentialStruct::Type & request, Json::Value & value); -static void Finalize(chip::app::Clusters::OperationalCredentials::Structs::NOCStruct::Type & request); -static CHIP_ERROR Setup(const char * label, chip::app::Clusters::ThreadNetworkDiagnostics::Structs::NeighborTable::Type & request, - Json::Value & value); +static void Finalize(chip::app::Clusters::DoorLock::Structs::CredentialStruct::Type & request); -static void Finalize(chip::app::Clusters::ThreadNetworkDiagnostics::Structs::NeighborTable::Type & request); -static CHIP_ERROR Setup(const char * label, chip::app::Clusters::UnitTesting::Structs::NestedStruct::Type & request, +static CHIP_ERROR Setup(const char * label, chip::app::Clusters::Thermostat::Structs::ThermostatScheduleTransition::Type & request, Json::Value & value); -static void Finalize(chip::app::Clusters::UnitTesting::Structs::NestedStruct::Type & request); -static CHIP_ERROR Setup(const char * label, chip::app::Clusters::UnitTesting::Structs::NestedStructList::Type & request, - Json::Value & value); +static void Finalize(chip::app::Clusters::Thermostat::Structs::ThermostatScheduleTransition::Type & request); -static void Finalize(chip::app::Clusters::UnitTesting::Structs::NestedStructList::Type & request); -static CHIP_ERROR Setup(const char * label, chip::app::Clusters::NetworkCommissioning::Structs::NetworkInfo::Type & request, +static CHIP_ERROR Setup(const char * label, chip::app::Clusters::Channel::Structs::ChannelInfoStruct::Type & request, Json::Value & value); -static void Finalize(chip::app::Clusters::NetworkCommissioning::Structs::NetworkInfo::Type & request); -static CHIP_ERROR Setup(const char * label, chip::app::Clusters::GeneralDiagnostics::Structs::NetworkInterface::Type & request, - Json::Value & value); +static void Finalize(chip::app::Clusters::Channel::Structs::ChannelInfoStruct::Type & request); -static void Finalize(chip::app::Clusters::GeneralDiagnostics::Structs::NetworkInterface::Type & request); -static CHIP_ERROR Setup(const char * label, chip::app::Clusters::UnitTesting::Structs::NullablesAndOptionalsStruct::Type & request, +static CHIP_ERROR Setup(const char * label, chip::app::Clusters::Channel::Structs::LineupInfoStruct::Type & request, Json::Value & value); -static void Finalize(chip::app::Clusters::UnitTesting::Structs::NullablesAndOptionalsStruct::Type & request); -static CHIP_ERROR Setup(const char * label, - chip::app::Clusters::ThreadNetworkDiagnostics::Structs::OperationalDatasetComponents::Type & request, - Json::Value & value); +static void Finalize(chip::app::Clusters::Channel::Structs::LineupInfoStruct::Type & request); -static void Finalize(chip::app::Clusters::ThreadNetworkDiagnostics::Structs::OperationalDatasetComponents::Type & request); -static CHIP_ERROR Setup(const char * label, chip::app::Clusters::AudioOutput::Structs::OutputInfoStruct::Type & request, +static CHIP_ERROR Setup(const char * label, chip::app::Clusters::TargetNavigator::Structs::TargetInfoStruct::Type & request, Json::Value & value); -static void Finalize(chip::app::Clusters::AudioOutput::Structs::OutputInfoStruct::Type & request); -static CHIP_ERROR Setup(const char * label, chip::app::Clusters::ContentLauncher::Structs::ParameterStruct::Type & request, - Json::Value & value); +static void Finalize(chip::app::Clusters::TargetNavigator::Structs::TargetInfoStruct::Type & request); -static void Finalize(chip::app::Clusters::ContentLauncher::Structs::ParameterStruct::Type & request); static CHIP_ERROR Setup(const char * label, chip::app::Clusters::MediaPlayback::Structs::PlaybackPositionStruct::Type & request, Json::Value & value); static void Finalize(chip::app::Clusters::MediaPlayback::Structs::PlaybackPositionStruct::Type & request); -static CHIP_ERROR Setup(const char * label, - chip::app::Clusters::OtaSoftwareUpdateRequestor::Structs::ProviderLocation::Type & request, + +static CHIP_ERROR Setup(const char * label, chip::app::Clusters::MediaInput::Structs::InputInfoStruct::Type & request, Json::Value & value); -static void Finalize(chip::app::Clusters::OtaSoftwareUpdateRequestor::Structs::ProviderLocation::Type & request); -static CHIP_ERROR Setup(const char * label, chip::app::Clusters::ThreadNetworkDiagnostics::Structs::RouteTable::Type & request, +static void Finalize(chip::app::Clusters::MediaInput::Structs::InputInfoStruct::Type & request); + +static CHIP_ERROR Setup(const char * label, chip::app::Clusters::ContentLauncher::Structs::DimensionStruct::Type & request, Json::Value & value); -static void Finalize(chip::app::Clusters::ThreadNetworkDiagnostics::Structs::RouteTable::Type & request); -static CHIP_ERROR Setup(const char * label, chip::app::Clusters::ThreadNetworkDiagnostics::Structs::SecurityPolicy::Type & request, +static void Finalize(chip::app::Clusters::ContentLauncher::Structs::DimensionStruct::Type & request); + +static CHIP_ERROR Setup(const char * label, chip::app::Clusters::ContentLauncher::Structs::AdditionalInfoStruct::Type & request, Json::Value & value); -static void Finalize(chip::app::Clusters::ThreadNetworkDiagnostics::Structs::SecurityPolicy::Type & request); -static CHIP_ERROR Setup(const char * label, chip::app::Clusters::ModeSelect::Structs::SemanticTagStruct::Type & request, +static void Finalize(chip::app::Clusters::ContentLauncher::Structs::AdditionalInfoStruct::Type & request); + +static CHIP_ERROR Setup(const char * label, chip::app::Clusters::ContentLauncher::Structs::ParameterStruct::Type & request, Json::Value & value); -static void Finalize(chip::app::Clusters::ModeSelect::Structs::SemanticTagStruct::Type & request); -static CHIP_ERROR Setup(const char * label, chip::app::Clusters::UnitTesting::Structs::SimpleStruct::Type & request, +static void Finalize(chip::app::Clusters::ContentLauncher::Structs::ParameterStruct::Type & request); + +static CHIP_ERROR Setup(const char * label, chip::app::Clusters::ContentLauncher::Structs::ContentSearchStruct::Type & request, Json::Value & value); -static void Finalize(chip::app::Clusters::UnitTesting::Structs::SimpleStruct::Type & request); +static void Finalize(chip::app::Clusters::ContentLauncher::Structs::ContentSearchStruct::Type & request); + static CHIP_ERROR Setup(const char * label, chip::app::Clusters::ContentLauncher::Structs::StyleInformationStruct::Type & request, Json::Value & value); static void Finalize(chip::app::Clusters::ContentLauncher::Structs::StyleInformationStruct::Type & request); -static CHIP_ERROR Setup(const char * label, chip::app::Clusters::AccessControl::Structs::Target::Type & request, + +static CHIP_ERROR Setup(const char * label, + chip::app::Clusters::ContentLauncher::Structs::BrandingInformationStruct::Type & request, Json::Value & value); -static void Finalize(chip::app::Clusters::AccessControl::Structs::Target::Type & request); -static CHIP_ERROR Setup(const char * label, chip::app::Clusters::TargetNavigator::Structs::TargetInfoStruct::Type & request, +static void Finalize(chip::app::Clusters::ContentLauncher::Structs::BrandingInformationStruct::Type & request); + +static CHIP_ERROR Setup(const char * label, chip::app::Clusters::AudioOutput::Structs::OutputInfoStruct::Type & request, Json::Value & value); -static void Finalize(chip::app::Clusters::TargetNavigator::Structs::TargetInfoStruct::Type & request); -static CHIP_ERROR Setup(const char * label, chip::app::Clusters::Binding::Structs::TargetStruct::Type & request, +static void Finalize(chip::app::Clusters::AudioOutput::Structs::OutputInfoStruct::Type & request); + +static CHIP_ERROR Setup(const char * label, chip::app::Clusters::ApplicationLauncher::Structs::ApplicationEPStruct::Type & request, Json::Value & value); -static void Finalize(chip::app::Clusters::Binding::Structs::TargetStruct::Type & request); -static CHIP_ERROR Setup(const char * label, chip::app::Clusters::UnitTesting::Structs::TestFabricScoped::Type & request, +static void Finalize(chip::app::Clusters::ApplicationLauncher::Structs::ApplicationEPStruct::Type & request); + +static CHIP_ERROR Setup(const char * label, chip::app::Clusters::ClientMonitoring::Structs::MonitoringRegistration::Type & request, Json::Value & value); -static void Finalize(chip::app::Clusters::UnitTesting::Structs::TestFabricScoped::Type & request); -static CHIP_ERROR Setup(const char * label, chip::app::Clusters::UnitTesting::Structs::TestListStructOctet::Type & request, +static void Finalize(chip::app::Clusters::ClientMonitoring::Structs::MonitoringRegistration::Type & request); + +static CHIP_ERROR Setup(const char * label, chip::app::Clusters::UnitTesting::Structs::SimpleStruct::Type & request, Json::Value & value); -static void Finalize(chip::app::Clusters::UnitTesting::Structs::TestListStructOctet::Type & request); -static CHIP_ERROR Setup(const char * label, chip::app::Clusters::Thermostat::Structs::ThermostatScheduleTransition::Type & request, +static void Finalize(chip::app::Clusters::UnitTesting::Structs::SimpleStruct::Type & request); + +static CHIP_ERROR Setup(const char * label, chip::app::Clusters::UnitTesting::Structs::TestFabricScoped::Type & request, Json::Value & value); -static void Finalize(chip::app::Clusters::Thermostat::Structs::ThermostatScheduleTransition::Type & request); -static CHIP_ERROR Setup(const char * label, - chip::app::Clusters::NetworkCommissioning::Structs::ThreadInterfaceScanResult::Type & request, +static void Finalize(chip::app::Clusters::UnitTesting::Structs::TestFabricScoped::Type & request); + +static CHIP_ERROR Setup(const char * label, chip::app::Clusters::UnitTesting::Structs::NullablesAndOptionalsStruct::Type & request, Json::Value & value); -static void Finalize(chip::app::Clusters::NetworkCommissioning::Structs::ThreadInterfaceScanResult::Type & request); -static CHIP_ERROR Setup(const char * label, chip::app::Clusters::SoftwareDiagnostics::Structs::ThreadMetricsStruct::Type & request, +static void Finalize(chip::app::Clusters::UnitTesting::Structs::NullablesAndOptionalsStruct::Type & request); + +static CHIP_ERROR Setup(const char * label, chip::app::Clusters::UnitTesting::Structs::NestedStruct::Type & request, Json::Value & value); -static void Finalize(chip::app::Clusters::SoftwareDiagnostics::Structs::ThreadMetricsStruct::Type & request); -static CHIP_ERROR Setup(const char * label, chip::app::Clusters::TimeSynchronization::Structs::TimeZoneStruct::Type & request, +static void Finalize(chip::app::Clusters::UnitTesting::Structs::NestedStruct::Type & request); + +static CHIP_ERROR Setup(const char * label, chip::app::Clusters::UnitTesting::Structs::NestedStructList::Type & request, Json::Value & value); -static void Finalize(chip::app::Clusters::TimeSynchronization::Structs::TimeZoneStruct::Type & request); -static CHIP_ERROR Setup(const char * label, - chip::app::Clusters::NetworkCommissioning::Structs::WiFiInterfaceScanResult::Type & request, +static void Finalize(chip::app::Clusters::UnitTesting::Structs::NestedStructList::Type & request); + +static CHIP_ERROR Setup(const char * label, chip::app::Clusters::UnitTesting::Structs::DoubleNestedStructList::Type & request, Json::Value & value); -static void Finalize(chip::app::Clusters::NetworkCommissioning::Structs::WiFiInterfaceScanResult::Type & request); -static CHIP_ERROR Setup(const char * label, chip::app::Clusters::PowerSource::Structs::WiredFaultChangeType::Type & request, +static void Finalize(chip::app::Clusters::UnitTesting::Structs::DoubleNestedStructList::Type & request); + +static CHIP_ERROR Setup(const char * label, chip::app::Clusters::UnitTesting::Structs::TestListStructOctet::Type & request, Json::Value & value); -static void Finalize(chip::app::Clusters::PowerSource::Structs::WiredFaultChangeType::Type & request); +static void Finalize(chip::app::Clusters::UnitTesting::Structs::TestListStructOctet::Type & request); diff --git a/zzz_generated/chip-tool/zap-generated/cluster/logging/DataModelLogger.cpp b/zzz_generated/chip-tool/zap-generated/cluster/logging/DataModelLogger.cpp index 578944136f8fdd..e85d4920b846c2 100644 --- a/zzz_generated/chip-tool/zap-generated/cluster/logging/DataModelLogger.cpp +++ b/zzz_generated/chip-tool/zap-generated/cluster/logging/DataModelLogger.cpp @@ -21,48 +21,73 @@ using namespace chip::app::Clusters; -CHIP_ERROR -DataModelLogger::LogValue(const char * label, size_t indent, - const chip::app::Clusters::AccessControl::Structs::AccessControlEntryStruct::DecodableType & value) +CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, + const chip::app::Clusters::detail::Structs::ApplicationStruct::DecodableType & value) { DataModelLogger::LogString(label, indent, "{"); { - CHIP_ERROR err = LogValue("Privilege", indent + 1, value.privilege); + CHIP_ERROR err = LogValue("CatalogVendorID", indent + 1, value.catalogVendorID); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Privilege'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'CatalogVendorID'"); return err; } } { - CHIP_ERROR err = LogValue("AuthMode", indent + 1, value.authMode); + CHIP_ERROR err = LogValue("ApplicationID", indent + 1, value.applicationID); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'AuthMode'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'ApplicationID'"); return err; } } + DataModelLogger::LogString(indent, "}"); + + return CHIP_NO_ERROR; +} + +CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, + const chip::app::Clusters::detail::Structs::LabelStruct::DecodableType & value) +{ + DataModelLogger::LogString(label, indent, "{"); { - CHIP_ERROR err = LogValue("Subjects", indent + 1, value.subjects); + CHIP_ERROR err = LogValue("Label", indent + 1, value.label); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Subjects'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Label'"); return err; } } { - CHIP_ERROR err = LogValue("Targets", indent + 1, value.targets); + CHIP_ERROR err = LogValue("Value", indent + 1, value.value); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Targets'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Value'"); + return err; + } + } + DataModelLogger::LogString(indent, "}"); + + return CHIP_NO_ERROR; +} + +CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, + const chip::app::Clusters::Scenes::Structs::AttributeValuePair::DecodableType & value) +{ + DataModelLogger::LogString(label, indent, "{"); + { + CHIP_ERROR err = LogValue("AttributeID", indent + 1, value.attributeID); + if (err != CHIP_NO_ERROR) + { + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'AttributeID'"); return err; } } { - CHIP_ERROR err = LogValue("FabricIndex", indent + 1, value.fabricIndex); + CHIP_ERROR err = LogValue("AttributeValue", indent + 1, value.attributeValue); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'FabricIndex'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'AttributeValue'"); return err; } } @@ -70,24 +95,24 @@ DataModelLogger::LogValue(const char * label, size_t indent, return CHIP_NO_ERROR; } -CHIP_ERROR -DataModelLogger::LogValue(const char * label, size_t indent, - const chip::app::Clusters::AccessControl::Structs::AccessControlExtensionStruct::DecodableType & value) + +CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, + const chip::app::Clusters::Scenes::Structs::ExtensionFieldSet::DecodableType & value) { DataModelLogger::LogString(label, indent, "{"); { - CHIP_ERROR err = LogValue("Data", indent + 1, value.data); + CHIP_ERROR err = LogValue("ClusterID", indent + 1, value.clusterID); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Data'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'ClusterID'"); return err; } } { - CHIP_ERROR err = LogValue("FabricIndex", indent + 1, value.fabricIndex); + CHIP_ERROR err = LogValue("AttributeValueList", indent + 1, value.attributeValueList); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'FabricIndex'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'AttributeValueList'"); return err; } } @@ -95,55 +120,73 @@ DataModelLogger::LogValue(const char * label, size_t indent, return CHIP_NO_ERROR; } + CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, - const chip::app::Clusters::Actions::Structs::ActionStruct::DecodableType & value) + const chip::app::Clusters::Descriptor::Structs::DeviceTypeStruct::DecodableType & value) { DataModelLogger::LogString(label, indent, "{"); { - CHIP_ERROR err = LogValue("ActionID", indent + 1, value.actionID); + CHIP_ERROR err = LogValue("DeviceType", indent + 1, value.deviceType); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'ActionID'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'DeviceType'"); return err; } } { - CHIP_ERROR err = LogValue("Name", indent + 1, value.name); + CHIP_ERROR err = LogValue("Revision", indent + 1, value.revision); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Name'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Revision'"); + return err; + } + } + DataModelLogger::LogString(indent, "}"); + + return CHIP_NO_ERROR; +} + +CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, + const chip::app::Clusters::Binding::Structs::TargetStruct::DecodableType & value) +{ + DataModelLogger::LogString(label, indent, "{"); + { + CHIP_ERROR err = LogValue("Node", indent + 1, value.node); + if (err != CHIP_NO_ERROR) + { + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Node'"); return err; } } { - CHIP_ERROR err = LogValue("Type", indent + 1, value.type); + CHIP_ERROR err = LogValue("Group", indent + 1, value.group); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Type'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Group'"); return err; } } { - CHIP_ERROR err = LogValue("EndpointListID", indent + 1, value.endpointListID); + CHIP_ERROR err = LogValue("Endpoint", indent + 1, value.endpoint); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'EndpointListID'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Endpoint'"); return err; } } { - CHIP_ERROR err = LogValue("SupportedCommands", indent + 1, value.supportedCommands); + CHIP_ERROR err = LogValue("Cluster", indent + 1, value.cluster); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'SupportedCommands'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Cluster'"); return err; } } { - CHIP_ERROR err = LogValue("State", indent + 1, value.state); + CHIP_ERROR err = LogValue("FabricIndex", indent + 1, value.fabricIndex); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'State'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'FabricIndex'"); return err; } } @@ -151,24 +194,32 @@ CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, return CHIP_NO_ERROR; } -CHIP_ERROR -DataModelLogger::LogValue(const char * label, size_t indent, - const chip::app::Clusters::ContentLauncher::Structs::AdditionalInfoStruct::DecodableType & value) + +CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, + const chip::app::Clusters::AccessControl::Structs::Target::DecodableType & value) { DataModelLogger::LogString(label, indent, "{"); { - CHIP_ERROR err = LogValue("Name", indent + 1, value.name); + CHIP_ERROR err = LogValue("Cluster", indent + 1, value.cluster); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Name'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Cluster'"); return err; } } { - CHIP_ERROR err = LogValue("Value", indent + 1, value.value); + CHIP_ERROR err = LogValue("Endpoint", indent + 1, value.endpoint); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Value'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Endpoint'"); + return err; + } + } + { + CHIP_ERROR err = LogValue("DeviceType", indent + 1, value.deviceType); + if (err != CHIP_NO_ERROR) + { + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'DeviceType'"); return err; } } @@ -176,48 +227,49 @@ DataModelLogger::LogValue(const char * label, size_t indent, return CHIP_NO_ERROR; } + CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, - const chip::app::Clusters::ApplicationLauncher::Structs::ApplicationEPStruct::DecodableType & value) + const chip::app::Clusters::AccessControl::Structs::AccessControlEntryStruct::DecodableType & value) { DataModelLogger::LogString(label, indent, "{"); { - CHIP_ERROR err = LogValue("Application", indent + 1, value.application); + CHIP_ERROR err = LogValue("Privilege", indent + 1, value.privilege); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Application'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Privilege'"); return err; } } { - CHIP_ERROR err = LogValue("Endpoint", indent + 1, value.endpoint); + CHIP_ERROR err = LogValue("AuthMode", indent + 1, value.authMode); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Endpoint'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'AuthMode'"); return err; } } - DataModelLogger::LogString(indent, "}"); - - return CHIP_NO_ERROR; -} -CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, - const chip::app::Clusters::detail::Structs::ApplicationStruct::DecodableType & value) -{ - DataModelLogger::LogString(label, indent, "{"); { - CHIP_ERROR err = LogValue("CatalogVendorID", indent + 1, value.catalogVendorID); + CHIP_ERROR err = LogValue("Subjects", indent + 1, value.subjects); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'CatalogVendorID'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Subjects'"); return err; } } { - CHIP_ERROR err = LogValue("ApplicationID", indent + 1, value.applicationID); + CHIP_ERROR err = LogValue("Targets", indent + 1, value.targets); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'ApplicationID'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Targets'"); + return err; + } + } + { + CHIP_ERROR err = LogValue("FabricIndex", indent + 1, value.fabricIndex); + if (err != CHIP_NO_ERROR) + { + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'FabricIndex'"); return err; } } @@ -225,23 +277,25 @@ CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, return CHIP_NO_ERROR; } -CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, - const chip::app::Clusters::Scenes::Structs::AttributeValuePair::DecodableType & value) + +CHIP_ERROR +DataModelLogger::LogValue(const char * label, size_t indent, + const chip::app::Clusters::AccessControl::Structs::AccessControlExtensionStruct::DecodableType & value) { DataModelLogger::LogString(label, indent, "{"); { - CHIP_ERROR err = LogValue("AttributeID", indent + 1, value.attributeID); + CHIP_ERROR err = LogValue("Data", indent + 1, value.data); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'AttributeID'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Data'"); return err; } } { - CHIP_ERROR err = LogValue("AttributeValue", indent + 1, value.attributeValue); + CHIP_ERROR err = LogValue("FabricIndex", indent + 1, value.fabricIndex); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'AttributeValue'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'FabricIndex'"); return err; } } @@ -249,73 +303,56 @@ CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, return CHIP_NO_ERROR; } -CHIP_ERROR -DataModelLogger::LogValue(const char * label, size_t indent, - const chip::app::Clusters::GeneralCommissioning::Structs::BasicCommissioningInfo::DecodableType & value) + +CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, + const chip::app::Clusters::Actions::Structs::ActionStruct::DecodableType & value) { DataModelLogger::LogString(label, indent, "{"); { - CHIP_ERROR err = LogValue("FailSafeExpiryLengthSeconds", indent + 1, value.failSafeExpiryLengthSeconds); + CHIP_ERROR err = LogValue("ActionID", indent + 1, value.actionID); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'FailSafeExpiryLengthSeconds'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'ActionID'"); return err; } } { - CHIP_ERROR err = LogValue("MaxCumulativeFailsafeSeconds", indent + 1, value.maxCumulativeFailsafeSeconds); + CHIP_ERROR err = LogValue("Name", indent + 1, value.name); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'MaxCumulativeFailsafeSeconds'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Name'"); return err; } } - DataModelLogger::LogString(indent, "}"); - - return CHIP_NO_ERROR; -} -CHIP_ERROR -DataModelLogger::LogValue(const char * label, size_t indent, - const chip::app::Clusters::PowerSource::Structs::BatChargeFaultChangeType::DecodableType & value) -{ - DataModelLogger::LogString(label, indent, "{"); { - CHIP_ERROR err = LogValue("Current", indent + 1, value.current); + CHIP_ERROR err = LogValue("Type", indent + 1, value.type); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Current'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Type'"); return err; } } { - CHIP_ERROR err = LogValue("Previous", indent + 1, value.previous); + CHIP_ERROR err = LogValue("EndpointListID", indent + 1, value.endpointListID); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Previous'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'EndpointListID'"); return err; } } - DataModelLogger::LogString(indent, "}"); - - return CHIP_NO_ERROR; -} -CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, - const chip::app::Clusters::PowerSource::Structs::BatFaultChangeType::DecodableType & value) -{ - DataModelLogger::LogString(label, indent, "{"); { - CHIP_ERROR err = LogValue("Current", indent + 1, value.current); + CHIP_ERROR err = LogValue("SupportedCommands", indent + 1, value.supportedCommands); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Current'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'SupportedCommands'"); return err; } } { - CHIP_ERROR err = LogValue("Previous", indent + 1, value.previous); + CHIP_ERROR err = LogValue("State", indent + 1, value.state); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Previous'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'State'"); return err; } } @@ -323,56 +360,66 @@ CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, return CHIP_NO_ERROR; } -CHIP_ERROR -DataModelLogger::LogValue(const char * label, size_t indent, - const chip::app::Clusters::ContentLauncher::Structs::BrandingInformationStruct::DecodableType & value) + +CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, + const chip::app::Clusters::Actions::Structs::EndpointListStruct::DecodableType & value) { DataModelLogger::LogString(label, indent, "{"); { - CHIP_ERROR err = LogValue("ProviderName", indent + 1, value.providerName); + CHIP_ERROR err = LogValue("EndpointListID", indent + 1, value.endpointListID); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'ProviderName'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'EndpointListID'"); return err; } } { - CHIP_ERROR err = LogValue("Background", indent + 1, value.background); + CHIP_ERROR err = LogValue("Name", indent + 1, value.name); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Background'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Name'"); return err; } } { - CHIP_ERROR err = LogValue("Logo", indent + 1, value.logo); + CHIP_ERROR err = LogValue("Type", indent + 1, value.type); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Logo'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Type'"); return err; } } { - CHIP_ERROR err = LogValue("ProgressBar", indent + 1, value.progressBar); + CHIP_ERROR err = LogValue("Endpoints", indent + 1, value.endpoints); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'ProgressBar'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Endpoints'"); return err; } } + DataModelLogger::LogString(indent, "}"); + + return CHIP_NO_ERROR; +} + +CHIP_ERROR +DataModelLogger::LogValue(const char * label, size_t indent, + const chip::app::Clusters::BasicInformation::Structs::CapabilityMinimaStruct::DecodableType & value) +{ + DataModelLogger::LogString(label, indent, "{"); { - CHIP_ERROR err = LogValue("Splash", indent + 1, value.splash); + CHIP_ERROR err = LogValue("CaseSessionsPerFabric", indent + 1, value.caseSessionsPerFabric); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Splash'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'CaseSessionsPerFabric'"); return err; } } { - CHIP_ERROR err = LogValue("WaterMark", indent + 1, value.waterMark); + CHIP_ERROR err = LogValue("SubscriptionsPerFabric", indent + 1, value.subscriptionsPerFabric); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'WaterMark'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'SubscriptionsPerFabric'"); return err; } } @@ -380,24 +427,33 @@ DataModelLogger::LogValue(const char * label, size_t indent, return CHIP_NO_ERROR; } + CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, - const chip::app::Clusters::BasicInformation::Structs::CapabilityMinimaStruct::DecodableType & value) + const chip::app::Clusters::OtaSoftwareUpdateRequestor::Structs::ProviderLocation::DecodableType & value) { DataModelLogger::LogString(label, indent, "{"); { - CHIP_ERROR err = LogValue("CaseSessionsPerFabric", indent + 1, value.caseSessionsPerFabric); + CHIP_ERROR err = LogValue("ProviderNodeID", indent + 1, value.providerNodeID); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'CaseSessionsPerFabric'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'ProviderNodeID'"); return err; } } { - CHIP_ERROR err = LogValue("SubscriptionsPerFabric", indent + 1, value.subscriptionsPerFabric); + CHIP_ERROR err = LogValue("Endpoint", indent + 1, value.endpoint); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'SubscriptionsPerFabric'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Endpoint'"); + return err; + } + } + { + CHIP_ERROR err = LogValue("FabricIndex", indent + 1, value.fabricIndex); + if (err != CHIP_NO_ERROR) + { + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'FabricIndex'"); return err; } } @@ -405,47 +461,75 @@ DataModelLogger::LogValue(const char * label, size_t indent, return CHIP_NO_ERROR; } -CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, - const chip::app::Clusters::Channel::Structs::ChannelInfoStruct::DecodableType & value) + +CHIP_ERROR +DataModelLogger::LogValue(const char * label, size_t indent, + const chip::app::Clusters::PowerSource::Structs::BatChargeFaultChangeType::DecodableType & value) { DataModelLogger::LogString(label, indent, "{"); { - CHIP_ERROR err = LogValue("MajorNumber", indent + 1, value.majorNumber); + CHIP_ERROR err = LogValue("Current", indent + 1, value.current); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'MajorNumber'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Current'"); return err; } } { - CHIP_ERROR err = LogValue("MinorNumber", indent + 1, value.minorNumber); + CHIP_ERROR err = LogValue("Previous", indent + 1, value.previous); + if (err != CHIP_NO_ERROR) + { + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Previous'"); + return err; + } + } + DataModelLogger::LogString(indent, "}"); + + return CHIP_NO_ERROR; +} + +CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, + const chip::app::Clusters::PowerSource::Structs::BatFaultChangeType::DecodableType & value) +{ + DataModelLogger::LogString(label, indent, "{"); + { + CHIP_ERROR err = LogValue("Current", indent + 1, value.current); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'MinorNumber'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Current'"); return err; } } { - CHIP_ERROR err = LogValue("Name", indent + 1, value.name); + CHIP_ERROR err = LogValue("Previous", indent + 1, value.previous); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Name'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Previous'"); return err; } } + DataModelLogger::LogString(indent, "}"); + + return CHIP_NO_ERROR; +} + +CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, + const chip::app::Clusters::PowerSource::Structs::WiredFaultChangeType::DecodableType & value) +{ + DataModelLogger::LogString(label, indent, "{"); { - CHIP_ERROR err = LogValue("CallSign", indent + 1, value.callSign); + CHIP_ERROR err = LogValue("Current", indent + 1, value.current); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'CallSign'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Current'"); return err; } } { - CHIP_ERROR err = LogValue("AffiliateCallSign", indent + 1, value.affiliateCallSign); + CHIP_ERROR err = LogValue("Previous", indent + 1, value.previous); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'AffiliateCallSign'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Previous'"); return err; } } @@ -453,16 +537,25 @@ CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, return CHIP_NO_ERROR; } + CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, - const chip::app::Clusters::ContentLauncher::Structs::ContentSearchStruct::DecodableType & value) + const chip::app::Clusters::GeneralCommissioning::Structs::BasicCommissioningInfo::DecodableType & value) { DataModelLogger::LogString(label, indent, "{"); { - CHIP_ERROR err = LogValue("ParameterList", indent + 1, value.parameterList); + CHIP_ERROR err = LogValue("FailSafeExpiryLengthSeconds", indent + 1, value.failSafeExpiryLengthSeconds); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'ParameterList'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'FailSafeExpiryLengthSeconds'"); + return err; + } + } + { + CHIP_ERROR err = LogValue("MaxCumulativeFailsafeSeconds", indent + 1, value.maxCumulativeFailsafeSeconds); + if (err != CHIP_NO_ERROR) + { + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'MaxCumulativeFailsafeSeconds'"); return err; } } @@ -470,23 +563,24 @@ DataModelLogger::LogValue(const char * label, size_t indent, return CHIP_NO_ERROR; } + CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, - const chip::app::Clusters::DoorLock::Structs::CredentialStruct::DecodableType & value) + const chip::app::Clusters::NetworkCommissioning::Structs::NetworkInfo::DecodableType & value) { DataModelLogger::LogString(label, indent, "{"); { - CHIP_ERROR err = LogValue("CredentialType", indent + 1, value.credentialType); + CHIP_ERROR err = LogValue("NetworkID", indent + 1, value.networkID); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'CredentialType'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'NetworkID'"); return err; } } { - CHIP_ERROR err = LogValue("CredentialIndex", indent + 1, value.credentialIndex); + CHIP_ERROR err = LogValue("Connected", indent + 1, value.connected); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'CredentialIndex'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Connected'"); return err; } } @@ -494,88 +588,73 @@ CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, return CHIP_NO_ERROR; } -CHIP_ERROR -DataModelLogger::LogValue(const char * label, size_t indent, - const chip::app::Clusters::TimeSynchronization::Structs::DSTOffsetStruct::DecodableType & value) + +CHIP_ERROR DataModelLogger::LogValue( + const char * label, size_t indent, + const chip::app::Clusters::NetworkCommissioning::Structs::ThreadInterfaceScanResult::DecodableType & value) { DataModelLogger::LogString(label, indent, "{"); { - CHIP_ERROR err = LogValue("Offset", indent + 1, value.offset); + CHIP_ERROR err = LogValue("PanId", indent + 1, value.panId); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Offset'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'PanId'"); return err; } } { - CHIP_ERROR err = LogValue("ValidStarting", indent + 1, value.validStarting); + CHIP_ERROR err = LogValue("ExtendedPanId", indent + 1, value.extendedPanId); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'ValidStarting'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'ExtendedPanId'"); return err; } } { - CHIP_ERROR err = LogValue("ValidUntil", indent + 1, value.validUntil); + CHIP_ERROR err = LogValue("NetworkName", indent + 1, value.networkName); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'ValidUntil'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'NetworkName'"); return err; } } - DataModelLogger::LogString(indent, "}"); - - return CHIP_NO_ERROR; -} -CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, - const chip::app::Clusters::Descriptor::Structs::DeviceTypeStruct::DecodableType & value) -{ - DataModelLogger::LogString(label, indent, "{"); { - CHIP_ERROR err = LogValue("DeviceType", indent + 1, value.deviceType); + CHIP_ERROR err = LogValue("Channel", indent + 1, value.channel); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'DeviceType'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Channel'"); return err; } } { - CHIP_ERROR err = LogValue("Revision", indent + 1, value.revision); + CHIP_ERROR err = LogValue("Version", indent + 1, value.version); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Revision'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Version'"); return err; } } - DataModelLogger::LogString(indent, "}"); - - return CHIP_NO_ERROR; -} -CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, - const chip::app::Clusters::ContentLauncher::Structs::DimensionStruct::DecodableType & value) -{ - DataModelLogger::LogString(label, indent, "{"); { - CHIP_ERROR err = LogValue("Width", indent + 1, value.width); + CHIP_ERROR err = LogValue("ExtendedAddress", indent + 1, value.extendedAddress); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Width'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'ExtendedAddress'"); return err; } } { - CHIP_ERROR err = LogValue("Height", indent + 1, value.height); + CHIP_ERROR err = LogValue("Rssi", indent + 1, value.rssi); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Height'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Rssi'"); return err; } } { - CHIP_ERROR err = LogValue("Metric", indent + 1, value.metric); + CHIP_ERROR err = LogValue("Lqi", indent + 1, value.lqi); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Metric'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Lqi'"); return err; } } @@ -583,79 +662,57 @@ CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, return CHIP_NO_ERROR; } -CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, - const chip::app::Clusters::UnitTesting::Structs::DoubleNestedStructList::DecodableType & value) -{ - DataModelLogger::LogString(label, indent, "{"); - { - CHIP_ERROR err = LogValue("A", indent + 1, value.a); - if (err != CHIP_NO_ERROR) - { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'A'"); - return err; - } - } - DataModelLogger::LogString(indent, "}"); - return CHIP_NO_ERROR; -} -CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, - const chip::app::Clusters::Actions::Structs::EndpointListStruct::DecodableType & value) +CHIP_ERROR +DataModelLogger::LogValue(const char * label, size_t indent, + const chip::app::Clusters::NetworkCommissioning::Structs::WiFiInterfaceScanResult::DecodableType & value) { DataModelLogger::LogString(label, indent, "{"); { - CHIP_ERROR err = LogValue("EndpointListID", indent + 1, value.endpointListID); + CHIP_ERROR err = LogValue("Security", indent + 1, value.security); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'EndpointListID'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Security'"); return err; } } { - CHIP_ERROR err = LogValue("Name", indent + 1, value.name); + CHIP_ERROR err = LogValue("Ssid", indent + 1, value.ssid); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Name'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Ssid'"); return err; } } { - CHIP_ERROR err = LogValue("Type", indent + 1, value.type); + CHIP_ERROR err = LogValue("Bssid", indent + 1, value.bssid); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Type'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Bssid'"); return err; } } { - CHIP_ERROR err = LogValue("Endpoints", indent + 1, value.endpoints); + CHIP_ERROR err = LogValue("Channel", indent + 1, value.channel); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Endpoints'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Channel'"); return err; } } - DataModelLogger::LogString(indent, "}"); - - return CHIP_NO_ERROR; -} -CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, - const chip::app::Clusters::Scenes::Structs::ExtensionFieldSet::DecodableType & value) -{ - DataModelLogger::LogString(label, indent, "{"); { - CHIP_ERROR err = LogValue("ClusterID", indent + 1, value.clusterID); + CHIP_ERROR err = LogValue("WiFiBand", indent + 1, value.wiFiBand); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'ClusterID'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'WiFiBand'"); return err; } } { - CHIP_ERROR err = LogValue("AttributeValueList", indent + 1, value.attributeValueList); + CHIP_ERROR err = LogValue("Rssi", indent + 1, value.rssi); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'AttributeValueList'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Rssi'"); return err; } } @@ -663,130 +720,123 @@ CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, return CHIP_NO_ERROR; } + CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, - const chip::app::Clusters::OperationalCredentials::Structs::FabricDescriptorStruct::DecodableType & value) + const chip::app::Clusters::GeneralDiagnostics::Structs::NetworkInterface::DecodableType & value) { DataModelLogger::LogString(label, indent, "{"); { - CHIP_ERROR err = LogValue("RootPublicKey", indent + 1, value.rootPublicKey); + CHIP_ERROR err = LogValue("Name", indent + 1, value.name); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'RootPublicKey'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Name'"); return err; } } { - CHIP_ERROR err = LogValue("VendorID", indent + 1, value.vendorID); + CHIP_ERROR err = LogValue("IsOperational", indent + 1, value.isOperational); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'VendorID'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'IsOperational'"); return err; } } { - CHIP_ERROR err = LogValue("FabricID", indent + 1, value.fabricID); + CHIP_ERROR err = LogValue("OffPremiseServicesReachableIPv4", indent + 1, value.offPremiseServicesReachableIPv4); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'FabricID'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'OffPremiseServicesReachableIPv4'"); return err; } } { - CHIP_ERROR err = LogValue("NodeID", indent + 1, value.nodeID); + CHIP_ERROR err = LogValue("OffPremiseServicesReachableIPv6", indent + 1, value.offPremiseServicesReachableIPv6); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'NodeID'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'OffPremiseServicesReachableIPv6'"); return err; } } { - CHIP_ERROR err = LogValue("Label", indent + 1, value.label); + CHIP_ERROR err = LogValue("HardwareAddress", indent + 1, value.hardwareAddress); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Label'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'HardwareAddress'"); return err; } } { - CHIP_ERROR err = LogValue("FabricIndex", indent + 1, value.fabricIndex); + CHIP_ERROR err = LogValue("IPv4Addresses", indent + 1, value.IPv4Addresses); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'FabricIndex'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'IPv4Addresses'"); return err; } } - DataModelLogger::LogString(indent, "}"); - - return CHIP_NO_ERROR; -} -CHIP_ERROR -DataModelLogger::LogValue(const char * label, size_t indent, - const chip::app::Clusters::GroupKeyManagement::Structs::GroupInfoMapStruct::DecodableType & value) -{ - DataModelLogger::LogString(label, indent, "{"); { - CHIP_ERROR err = LogValue("GroupId", indent + 1, value.groupId); + CHIP_ERROR err = LogValue("IPv6Addresses", indent + 1, value.IPv6Addresses); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'GroupId'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'IPv6Addresses'"); return err; } } { - CHIP_ERROR err = LogValue("Endpoints", indent + 1, value.endpoints); + CHIP_ERROR err = LogValue("Type", indent + 1, value.type); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Endpoints'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Type'"); return err; } } + DataModelLogger::LogString(indent, "}"); + + return CHIP_NO_ERROR; +} + +CHIP_ERROR +DataModelLogger::LogValue(const char * label, size_t indent, + const chip::app::Clusters::SoftwareDiagnostics::Structs::ThreadMetricsStruct::DecodableType & value) +{ + DataModelLogger::LogString(label, indent, "{"); { - CHIP_ERROR err = LogValue("GroupName", indent + 1, value.groupName); + CHIP_ERROR err = LogValue("Id", indent + 1, value.id); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'GroupName'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Id'"); return err; } } { - CHIP_ERROR err = LogValue("FabricIndex", indent + 1, value.fabricIndex); + CHIP_ERROR err = LogValue("Name", indent + 1, value.name); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'FabricIndex'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Name'"); return err; } } - DataModelLogger::LogString(indent, "}"); - - return CHIP_NO_ERROR; -} -CHIP_ERROR -DataModelLogger::LogValue(const char * label, size_t indent, - const chip::app::Clusters::GroupKeyManagement::Structs::GroupKeyMapStruct::DecodableType & value) -{ - DataModelLogger::LogString(label, indent, "{"); { - CHIP_ERROR err = LogValue("GroupId", indent + 1, value.groupId); + CHIP_ERROR err = LogValue("StackFreeCurrent", indent + 1, value.stackFreeCurrent); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'GroupId'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'StackFreeCurrent'"); return err; } } { - CHIP_ERROR err = LogValue("GroupKeySetID", indent + 1, value.groupKeySetID); + CHIP_ERROR err = LogValue("StackFreeMinimum", indent + 1, value.stackFreeMinimum); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'GroupKeySetID'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'StackFreeMinimum'"); return err; } } { - CHIP_ERROR err = LogValue("FabricIndex", indent + 1, value.fabricIndex); + CHIP_ERROR err = LogValue("StackSize", indent + 1, value.stackSize); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'FabricIndex'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'StackSize'"); return err; } } @@ -794,136 +844,121 @@ DataModelLogger::LogValue(const char * label, size_t indent, return CHIP_NO_ERROR; } + CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, - const chip::app::Clusters::GroupKeyManagement::Structs::GroupKeySetStruct::DecodableType & value) + const chip::app::Clusters::ThreadNetworkDiagnostics::Structs::NeighborTable::DecodableType & value) { DataModelLogger::LogString(label, indent, "{"); { - CHIP_ERROR err = LogValue("GroupKeySetID", indent + 1, value.groupKeySetID); + CHIP_ERROR err = LogValue("ExtAddress", indent + 1, value.extAddress); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'GroupKeySetID'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'ExtAddress'"); return err; } } { - CHIP_ERROR err = LogValue("GroupKeySecurityPolicy", indent + 1, value.groupKeySecurityPolicy); + CHIP_ERROR err = LogValue("Age", indent + 1, value.age); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'GroupKeySecurityPolicy'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Age'"); return err; } } { - CHIP_ERROR err = LogValue("EpochKey0", indent + 1, value.epochKey0); + CHIP_ERROR err = LogValue("Rloc16", indent + 1, value.rloc16); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'EpochKey0'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Rloc16'"); return err; } } { - CHIP_ERROR err = LogValue("EpochStartTime0", indent + 1, value.epochStartTime0); + CHIP_ERROR err = LogValue("LinkFrameCounter", indent + 1, value.linkFrameCounter); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'EpochStartTime0'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'LinkFrameCounter'"); return err; } } { - CHIP_ERROR err = LogValue("EpochKey1", indent + 1, value.epochKey1); + CHIP_ERROR err = LogValue("MleFrameCounter", indent + 1, value.mleFrameCounter); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'EpochKey1'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'MleFrameCounter'"); return err; } } { - CHIP_ERROR err = LogValue("EpochStartTime1", indent + 1, value.epochStartTime1); + CHIP_ERROR err = LogValue("Lqi", indent + 1, value.lqi); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'EpochStartTime1'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Lqi'"); return err; } } { - CHIP_ERROR err = LogValue("EpochKey2", indent + 1, value.epochKey2); + CHIP_ERROR err = LogValue("AverageRssi", indent + 1, value.averageRssi); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'EpochKey2'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'AverageRssi'"); return err; } } { - CHIP_ERROR err = LogValue("EpochStartTime2", indent + 1, value.epochStartTime2); + CHIP_ERROR err = LogValue("LastRssi", indent + 1, value.lastRssi); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'EpochStartTime2'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'LastRssi'"); return err; } } - DataModelLogger::LogString(indent, "}"); - - return CHIP_NO_ERROR; -} -CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, - const chip::app::Clusters::MediaInput::Structs::InputInfoStruct::DecodableType & value) -{ - DataModelLogger::LogString(label, indent, "{"); { - CHIP_ERROR err = LogValue("Index", indent + 1, value.index); + CHIP_ERROR err = LogValue("FrameErrorRate", indent + 1, value.frameErrorRate); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Index'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'FrameErrorRate'"); return err; } } { - CHIP_ERROR err = LogValue("InputType", indent + 1, value.inputType); + CHIP_ERROR err = LogValue("MessageErrorRate", indent + 1, value.messageErrorRate); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'InputType'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'MessageErrorRate'"); return err; } } { - CHIP_ERROR err = LogValue("Name", indent + 1, value.name); + CHIP_ERROR err = LogValue("RxOnWhenIdle", indent + 1, value.rxOnWhenIdle); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Name'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'RxOnWhenIdle'"); return err; } } { - CHIP_ERROR err = LogValue("Description", indent + 1, value.description); + CHIP_ERROR err = LogValue("FullThreadDevice", indent + 1, value.fullThreadDevice); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Description'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'FullThreadDevice'"); return err; } } - DataModelLogger::LogString(indent, "}"); - - return CHIP_NO_ERROR; -} -CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, - const chip::app::Clusters::detail::Structs::LabelStruct::DecodableType & value) -{ - DataModelLogger::LogString(label, indent, "{"); { - CHIP_ERROR err = LogValue("Label", indent + 1, value.label); + CHIP_ERROR err = LogValue("FullNetworkData", indent + 1, value.fullNetworkData); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Label'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'FullNetworkData'"); return err; } } { - CHIP_ERROR err = LogValue("Value", indent + 1, value.value); + CHIP_ERROR err = LogValue("IsChild", indent + 1, value.isChild); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Value'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'IsChild'"); return err; } } @@ -931,136 +966,105 @@ CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, return CHIP_NO_ERROR; } -CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, - const chip::app::Clusters::Channel::Structs::LineupInfoStruct::DecodableType & value) + +CHIP_ERROR DataModelLogger::LogValue( + const char * label, size_t indent, + const chip::app::Clusters::ThreadNetworkDiagnostics::Structs::OperationalDatasetComponents::DecodableType & value) { DataModelLogger::LogString(label, indent, "{"); { - CHIP_ERROR err = LogValue("OperatorName", indent + 1, value.operatorName); - if (err != CHIP_NO_ERROR) - { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'OperatorName'"); - return err; - } - } - { - CHIP_ERROR err = LogValue("LineupName", indent + 1, value.lineupName); + CHIP_ERROR err = LogValue("ActiveTimestampPresent", indent + 1, value.activeTimestampPresent); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'LineupName'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'ActiveTimestampPresent'"); return err; } } { - CHIP_ERROR err = LogValue("PostalCode", indent + 1, value.postalCode); + CHIP_ERROR err = LogValue("PendingTimestampPresent", indent + 1, value.pendingTimestampPresent); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'PostalCode'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'PendingTimestampPresent'"); return err; } } { - CHIP_ERROR err = LogValue("LineupInfoType", indent + 1, value.lineupInfoType); + CHIP_ERROR err = LogValue("MasterKeyPresent", indent + 1, value.masterKeyPresent); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'LineupInfoType'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'MasterKeyPresent'"); return err; } } - DataModelLogger::LogString(indent, "}"); - - return CHIP_NO_ERROR; -} -CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, - const chip::app::Clusters::ModeSelect::Structs::ModeOptionStruct::DecodableType & value) -{ - DataModelLogger::LogString(label, indent, "{"); { - CHIP_ERROR err = LogValue("Label", indent + 1, value.label); + CHIP_ERROR err = LogValue("NetworkNamePresent", indent + 1, value.networkNamePresent); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Label'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'NetworkNamePresent'"); return err; } } { - CHIP_ERROR err = LogValue("Mode", indent + 1, value.mode); + CHIP_ERROR err = LogValue("ExtendedPanIdPresent", indent + 1, value.extendedPanIdPresent); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Mode'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'ExtendedPanIdPresent'"); return err; } } { - CHIP_ERROR err = LogValue("SemanticTags", indent + 1, value.semanticTags); + CHIP_ERROR err = LogValue("MeshLocalPrefixPresent", indent + 1, value.meshLocalPrefixPresent); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'SemanticTags'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'MeshLocalPrefixPresent'"); return err; } } - DataModelLogger::LogString(indent, "}"); - - return CHIP_NO_ERROR; -} -CHIP_ERROR -DataModelLogger::LogValue(const char * label, size_t indent, - const chip::app::Clusters::ClientMonitoring::Structs::MonitoringRegistration::DecodableType & value) -{ - DataModelLogger::LogString(label, indent, "{"); { - CHIP_ERROR err = LogValue("ClientNodeId", indent + 1, value.clientNodeId); + CHIP_ERROR err = LogValue("DelayPresent", indent + 1, value.delayPresent); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'ClientNodeId'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'DelayPresent'"); return err; } } { - CHIP_ERROR err = LogValue("ICid", indent + 1, value.ICid); + CHIP_ERROR err = LogValue("PanIdPresent", indent + 1, value.panIdPresent); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'ICid'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'PanIdPresent'"); return err; } } { - CHIP_ERROR err = LogValue("FabricIndex", indent + 1, value.fabricIndex); + CHIP_ERROR err = LogValue("ChannelPresent", indent + 1, value.channelPresent); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'FabricIndex'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'ChannelPresent'"); return err; } } - DataModelLogger::LogString(indent, "}"); - - return CHIP_NO_ERROR; -} -CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, - const chip::app::Clusters::OperationalCredentials::Structs::NOCStruct::DecodableType & value) -{ - DataModelLogger::LogString(label, indent, "{"); { - CHIP_ERROR err = LogValue("Noc", indent + 1, value.noc); + CHIP_ERROR err = LogValue("PskcPresent", indent + 1, value.pskcPresent); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Noc'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'PskcPresent'"); return err; } } { - CHIP_ERROR err = LogValue("Icac", indent + 1, value.icac); + CHIP_ERROR err = LogValue("SecurityPolicyPresent", indent + 1, value.securityPolicyPresent); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Icac'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'SecurityPolicyPresent'"); return err; } } { - CHIP_ERROR err = LogValue("FabricIndex", indent + 1, value.fabricIndex); + CHIP_ERROR err = LogValue("ChannelMaskPresent", indent + 1, value.channelMaskPresent); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'FabricIndex'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'ChannelMaskPresent'"); return err; } } @@ -1068,9 +1072,10 @@ CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, return CHIP_NO_ERROR; } + CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, - const chip::app::Clusters::ThreadNetworkDiagnostics::Structs::NeighborTable::DecodableType & value) + const chip::app::Clusters::ThreadNetworkDiagnostics::Structs::RouteTable::DecodableType & value) { DataModelLogger::LogString(label, indent, "{"); { @@ -1081,14 +1086,6 @@ DataModelLogger::LogValue(const char * label, size_t indent, return err; } } - { - CHIP_ERROR err = LogValue("Age", indent + 1, value.age); - if (err != CHIP_NO_ERROR) - { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Age'"); - return err; - } - } { CHIP_ERROR err = LogValue("Rloc16", indent + 1, value.rloc16); if (err != CHIP_NO_ERROR) @@ -1098,90 +1095,92 @@ DataModelLogger::LogValue(const char * label, size_t indent, } } { - CHIP_ERROR err = LogValue("LinkFrameCounter", indent + 1, value.linkFrameCounter); - if (err != CHIP_NO_ERROR) - { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'LinkFrameCounter'"); - return err; - } - } - { - CHIP_ERROR err = LogValue("MleFrameCounter", indent + 1, value.mleFrameCounter); + CHIP_ERROR err = LogValue("RouterId", indent + 1, value.routerId); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'MleFrameCounter'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'RouterId'"); return err; } } { - CHIP_ERROR err = LogValue("Lqi", indent + 1, value.lqi); + CHIP_ERROR err = LogValue("NextHop", indent + 1, value.nextHop); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Lqi'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'NextHop'"); return err; } } { - CHIP_ERROR err = LogValue("AverageRssi", indent + 1, value.averageRssi); + CHIP_ERROR err = LogValue("PathCost", indent + 1, value.pathCost); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'AverageRssi'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'PathCost'"); return err; } } { - CHIP_ERROR err = LogValue("LastRssi", indent + 1, value.lastRssi); + CHIP_ERROR err = LogValue("LQIIn", indent + 1, value.LQIIn); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'LastRssi'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'LQIIn'"); return err; } } { - CHIP_ERROR err = LogValue("FrameErrorRate", indent + 1, value.frameErrorRate); + CHIP_ERROR err = LogValue("LQIOut", indent + 1, value.LQIOut); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'FrameErrorRate'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'LQIOut'"); return err; } } { - CHIP_ERROR err = LogValue("MessageErrorRate", indent + 1, value.messageErrorRate); + CHIP_ERROR err = LogValue("Age", indent + 1, value.age); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'MessageErrorRate'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Age'"); return err; } } { - CHIP_ERROR err = LogValue("RxOnWhenIdle", indent + 1, value.rxOnWhenIdle); + CHIP_ERROR err = LogValue("Allocated", indent + 1, value.allocated); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'RxOnWhenIdle'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Allocated'"); return err; } } { - CHIP_ERROR err = LogValue("FullThreadDevice", indent + 1, value.fullThreadDevice); + CHIP_ERROR err = LogValue("LinkEstablished", indent + 1, value.linkEstablished); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'FullThreadDevice'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'LinkEstablished'"); return err; } } + DataModelLogger::LogString(indent, "}"); + + return CHIP_NO_ERROR; +} + +CHIP_ERROR +DataModelLogger::LogValue(const char * label, size_t indent, + const chip::app::Clusters::ThreadNetworkDiagnostics::Structs::SecurityPolicy::DecodableType & value) +{ + DataModelLogger::LogString(label, indent, "{"); { - CHIP_ERROR err = LogValue("FullNetworkData", indent + 1, value.fullNetworkData); + CHIP_ERROR err = LogValue("RotationTime", indent + 1, value.rotationTime); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'FullNetworkData'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'RotationTime'"); return err; } } { - CHIP_ERROR err = LogValue("IsChild", indent + 1, value.isChild); + CHIP_ERROR err = LogValue("Flags", indent + 1, value.flags); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'IsChild'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Flags'"); return err; } } @@ -1189,31 +1188,33 @@ DataModelLogger::LogValue(const char * label, size_t indent, return CHIP_NO_ERROR; } -CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, - const chip::app::Clusters::UnitTesting::Structs::NestedStruct::DecodableType & value) + +CHIP_ERROR +DataModelLogger::LogValue(const char * label, size_t indent, + const chip::app::Clusters::TimeSynchronization::Structs::DSTOffsetStruct::DecodableType & value) { DataModelLogger::LogString(label, indent, "{"); { - CHIP_ERROR err = LogValue("A", indent + 1, value.a); + CHIP_ERROR err = LogValue("Offset", indent + 1, value.offset); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'A'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Offset'"); return err; } } { - CHIP_ERROR err = LogValue("B", indent + 1, value.b); + CHIP_ERROR err = LogValue("ValidStarting", indent + 1, value.validStarting); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'B'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'ValidStarting'"); return err; } } { - CHIP_ERROR err = LogValue("C", indent + 1, value.c); + CHIP_ERROR err = LogValue("ValidUntil", indent + 1, value.validUntil); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'C'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'ValidUntil'"); return err; } } @@ -1221,63 +1222,90 @@ CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, return CHIP_NO_ERROR; } + CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, - const chip::app::Clusters::UnitTesting::Structs::NestedStructList::DecodableType & value) + const chip::app::Clusters::TimeSynchronization::Structs::TimeZoneStruct::DecodableType & value) { DataModelLogger::LogString(label, indent, "{"); { - CHIP_ERROR err = LogValue("A", indent + 1, value.a); + CHIP_ERROR err = LogValue("Offset", indent + 1, value.offset); + if (err != CHIP_NO_ERROR) + { + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Offset'"); + return err; + } + } + { + CHIP_ERROR err = LogValue("ValidAt", indent + 1, value.validAt); + if (err != CHIP_NO_ERROR) + { + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'ValidAt'"); + return err; + } + } + { + CHIP_ERROR err = LogValue("Name", indent + 1, value.name); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'A'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Name'"); return err; } } + DataModelLogger::LogString(indent, "}"); + + return CHIP_NO_ERROR; +} + +CHIP_ERROR +DataModelLogger::LogValue(const char * label, size_t indent, + const chip::app::Clusters::OperationalCredentials::Structs::FabricDescriptorStruct::DecodableType & value) +{ + DataModelLogger::LogString(label, indent, "{"); { - CHIP_ERROR err = LogValue("B", indent + 1, value.b); + CHIP_ERROR err = LogValue("RootPublicKey", indent + 1, value.rootPublicKey); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'B'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'RootPublicKey'"); return err; } } { - CHIP_ERROR err = LogValue("C", indent + 1, value.c); + CHIP_ERROR err = LogValue("VendorID", indent + 1, value.vendorID); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'C'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'VendorID'"); return err; } } { - CHIP_ERROR err = LogValue("D", indent + 1, value.d); + CHIP_ERROR err = LogValue("FabricID", indent + 1, value.fabricID); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'D'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'FabricID'"); return err; } } { - CHIP_ERROR err = LogValue("E", indent + 1, value.e); + CHIP_ERROR err = LogValue("NodeID", indent + 1, value.nodeID); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'E'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'NodeID'"); return err; } } { - CHIP_ERROR err = LogValue("F", indent + 1, value.f); + CHIP_ERROR err = LogValue("Label", indent + 1, value.label); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'F'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Label'"); return err; } } { - CHIP_ERROR err = LogValue("G", indent + 1, value.g); + CHIP_ERROR err = LogValue("FabricIndex", indent + 1, value.fabricIndex); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'G'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'FabricIndex'"); return err; } } @@ -1285,23 +1313,32 @@ CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, return CHIP_NO_ERROR; } + CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, - const chip::app::Clusters::NetworkCommissioning::Structs::NetworkInfo::DecodableType & value) + const chip::app::Clusters::OperationalCredentials::Structs::NOCStruct::DecodableType & value) { DataModelLogger::LogString(label, indent, "{"); { - CHIP_ERROR err = LogValue("NetworkID", indent + 1, value.networkID); + CHIP_ERROR err = LogValue("Noc", indent + 1, value.noc); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'NetworkID'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Noc'"); return err; } } { - CHIP_ERROR err = LogValue("Connected", indent + 1, value.connected); + CHIP_ERROR err = LogValue("Icac", indent + 1, value.icac); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Connected'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Icac'"); + return err; + } + } + { + CHIP_ERROR err = LogValue("FabricIndex", indent + 1, value.fabricIndex); + if (err != CHIP_NO_ERROR) + { + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'FabricIndex'"); return err; } } @@ -1309,72 +1346,75 @@ CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, return CHIP_NO_ERROR; } + CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, - const chip::app::Clusters::GeneralDiagnostics::Structs::NetworkInterface::DecodableType & value) + const chip::app::Clusters::GroupKeyManagement::Structs::GroupInfoMapStruct::DecodableType & value) { DataModelLogger::LogString(label, indent, "{"); { - CHIP_ERROR err = LogValue("Name", indent + 1, value.name); - if (err != CHIP_NO_ERROR) - { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Name'"); - return err; - } - } - { - CHIP_ERROR err = LogValue("IsOperational", indent + 1, value.isOperational); + CHIP_ERROR err = LogValue("GroupId", indent + 1, value.groupId); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'IsOperational'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'GroupId'"); return err; } } { - CHIP_ERROR err = LogValue("OffPremiseServicesReachableIPv4", indent + 1, value.offPremiseServicesReachableIPv4); + CHIP_ERROR err = LogValue("Endpoints", indent + 1, value.endpoints); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'OffPremiseServicesReachableIPv4'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Endpoints'"); return err; } } { - CHIP_ERROR err = LogValue("OffPremiseServicesReachableIPv6", indent + 1, value.offPremiseServicesReachableIPv6); + CHIP_ERROR err = LogValue("GroupName", indent + 1, value.groupName); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'OffPremiseServicesReachableIPv6'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'GroupName'"); return err; } } { - CHIP_ERROR err = LogValue("HardwareAddress", indent + 1, value.hardwareAddress); + CHIP_ERROR err = LogValue("FabricIndex", indent + 1, value.fabricIndex); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'HardwareAddress'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'FabricIndex'"); return err; } } + DataModelLogger::LogString(indent, "}"); + + return CHIP_NO_ERROR; +} + +CHIP_ERROR +DataModelLogger::LogValue(const char * label, size_t indent, + const chip::app::Clusters::GroupKeyManagement::Structs::GroupKeyMapStruct::DecodableType & value) +{ + DataModelLogger::LogString(label, indent, "{"); { - CHIP_ERROR err = LogValue("IPv4Addresses", indent + 1, value.IPv4Addresses); + CHIP_ERROR err = LogValue("GroupId", indent + 1, value.groupId); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'IPv4Addresses'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'GroupId'"); return err; } } { - CHIP_ERROR err = LogValue("IPv6Addresses", indent + 1, value.IPv6Addresses); + CHIP_ERROR err = LogValue("GroupKeySetID", indent + 1, value.groupKeySetID); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'IPv6Addresses'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'GroupKeySetID'"); return err; } } { - CHIP_ERROR err = LogValue("Type", indent + 1, value.type); + CHIP_ERROR err = LogValue("FabricIndex", indent + 1, value.fabricIndex); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Type'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'FabricIndex'"); return err; } } @@ -1382,104 +1422,98 @@ DataModelLogger::LogValue(const char * label, size_t indent, return CHIP_NO_ERROR; } + CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, - const chip::app::Clusters::UnitTesting::Structs::NullablesAndOptionalsStruct::DecodableType & value) + const chip::app::Clusters::GroupKeyManagement::Structs::GroupKeySetStruct::DecodableType & value) { DataModelLogger::LogString(label, indent, "{"); { - CHIP_ERROR err = LogValue("NullableInt", indent + 1, value.nullableInt); - if (err != CHIP_NO_ERROR) - { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'NullableInt'"); - return err; - } - } - { - CHIP_ERROR err = LogValue("OptionalInt", indent + 1, value.optionalInt); - if (err != CHIP_NO_ERROR) - { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'OptionalInt'"); - return err; - } - } - { - CHIP_ERROR err = LogValue("NullableOptionalInt", indent + 1, value.nullableOptionalInt); + CHIP_ERROR err = LogValue("GroupKeySetID", indent + 1, value.groupKeySetID); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'NullableOptionalInt'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'GroupKeySetID'"); return err; } } { - CHIP_ERROR err = LogValue("NullableString", indent + 1, value.nullableString); + CHIP_ERROR err = LogValue("GroupKeySecurityPolicy", indent + 1, value.groupKeySecurityPolicy); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'NullableString'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'GroupKeySecurityPolicy'"); return err; } } { - CHIP_ERROR err = LogValue("OptionalString", indent + 1, value.optionalString); + CHIP_ERROR err = LogValue("EpochKey0", indent + 1, value.epochKey0); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'OptionalString'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'EpochKey0'"); return err; } } { - CHIP_ERROR err = LogValue("NullableOptionalString", indent + 1, value.nullableOptionalString); + CHIP_ERROR err = LogValue("EpochStartTime0", indent + 1, value.epochStartTime0); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'NullableOptionalString'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'EpochStartTime0'"); return err; } } { - CHIP_ERROR err = LogValue("NullableStruct", indent + 1, value.nullableStruct); + CHIP_ERROR err = LogValue("EpochKey1", indent + 1, value.epochKey1); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'NullableStruct'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'EpochKey1'"); return err; } } { - CHIP_ERROR err = LogValue("OptionalStruct", indent + 1, value.optionalStruct); + CHIP_ERROR err = LogValue("EpochStartTime1", indent + 1, value.epochStartTime1); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'OptionalStruct'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'EpochStartTime1'"); return err; } } { - CHIP_ERROR err = LogValue("NullableOptionalStruct", indent + 1, value.nullableOptionalStruct); + CHIP_ERROR err = LogValue("EpochKey2", indent + 1, value.epochKey2); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'NullableOptionalStruct'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'EpochKey2'"); return err; } } { - CHIP_ERROR err = LogValue("NullableList", indent + 1, value.nullableList); + CHIP_ERROR err = LogValue("EpochStartTime2", indent + 1, value.epochStartTime2); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'NullableList'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'EpochStartTime2'"); return err; } } + DataModelLogger::LogString(indent, "}"); + + return CHIP_NO_ERROR; +} + +CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, + const chip::app::Clusters::ModeSelect::Structs::SemanticTagStruct::DecodableType & value) +{ + DataModelLogger::LogString(label, indent, "{"); { - CHIP_ERROR err = LogValue("OptionalList", indent + 1, value.optionalList); + CHIP_ERROR err = LogValue("MfgCode", indent + 1, value.mfgCode); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'OptionalList'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'MfgCode'"); return err; } } { - CHIP_ERROR err = LogValue("NullableOptionalList", indent + 1, value.nullableOptionalList); + CHIP_ERROR err = LogValue("Value", indent + 1, value.value); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'NullableOptionalList'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Value'"); return err; } } @@ -1487,104 +1521,140 @@ DataModelLogger::LogValue(const char * label, size_t indent, return CHIP_NO_ERROR; } -CHIP_ERROR DataModelLogger::LogValue( - const char * label, size_t indent, - const chip::app::Clusters::ThreadNetworkDiagnostics::Structs::OperationalDatasetComponents::DecodableType & value) + +CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, + const chip::app::Clusters::ModeSelect::Structs::ModeOptionStruct::DecodableType & value) { DataModelLogger::LogString(label, indent, "{"); { - CHIP_ERROR err = LogValue("ActiveTimestampPresent", indent + 1, value.activeTimestampPresent); + CHIP_ERROR err = LogValue("Label", indent + 1, value.label); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'ActiveTimestampPresent'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Label'"); return err; } } { - CHIP_ERROR err = LogValue("PendingTimestampPresent", indent + 1, value.pendingTimestampPresent); + CHIP_ERROR err = LogValue("Mode", indent + 1, value.mode); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'PendingTimestampPresent'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Mode'"); return err; } } { - CHIP_ERROR err = LogValue("MasterKeyPresent", indent + 1, value.masterKeyPresent); + CHIP_ERROR err = LogValue("SemanticTags", indent + 1, value.semanticTags); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'MasterKeyPresent'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'SemanticTags'"); + return err; + } + } + DataModelLogger::LogString(indent, "}"); + + return CHIP_NO_ERROR; +} + +CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, + const chip::app::Clusters::DoorLock::Structs::CredentialStruct::DecodableType & value) +{ + DataModelLogger::LogString(label, indent, "{"); + { + CHIP_ERROR err = LogValue("CredentialType", indent + 1, value.credentialType); + if (err != CHIP_NO_ERROR) + { + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'CredentialType'"); return err; } } { - CHIP_ERROR err = LogValue("NetworkNamePresent", indent + 1, value.networkNamePresent); + CHIP_ERROR err = LogValue("CredentialIndex", indent + 1, value.credentialIndex); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'NetworkNamePresent'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'CredentialIndex'"); return err; } } + DataModelLogger::LogString(indent, "}"); + + return CHIP_NO_ERROR; +} + +CHIP_ERROR +DataModelLogger::LogValue(const char * label, size_t indent, + const chip::app::Clusters::Thermostat::Structs::ThermostatScheduleTransition::DecodableType & value) +{ + DataModelLogger::LogString(label, indent, "{"); { - CHIP_ERROR err = LogValue("ExtendedPanIdPresent", indent + 1, value.extendedPanIdPresent); + CHIP_ERROR err = LogValue("TransitionTime", indent + 1, value.transitionTime); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'ExtendedPanIdPresent'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'TransitionTime'"); return err; } } { - CHIP_ERROR err = LogValue("MeshLocalPrefixPresent", indent + 1, value.meshLocalPrefixPresent); + CHIP_ERROR err = LogValue("HeatSetpoint", indent + 1, value.heatSetpoint); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'MeshLocalPrefixPresent'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'HeatSetpoint'"); return err; } } { - CHIP_ERROR err = LogValue("DelayPresent", indent + 1, value.delayPresent); + CHIP_ERROR err = LogValue("CoolSetpoint", indent + 1, value.coolSetpoint); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'DelayPresent'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'CoolSetpoint'"); return err; } } + DataModelLogger::LogString(indent, "}"); + + return CHIP_NO_ERROR; +} + +CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, + const chip::app::Clusters::Channel::Structs::ChannelInfoStruct::DecodableType & value) +{ + DataModelLogger::LogString(label, indent, "{"); { - CHIP_ERROR err = LogValue("PanIdPresent", indent + 1, value.panIdPresent); + CHIP_ERROR err = LogValue("MajorNumber", indent + 1, value.majorNumber); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'PanIdPresent'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'MajorNumber'"); return err; } } { - CHIP_ERROR err = LogValue("ChannelPresent", indent + 1, value.channelPresent); + CHIP_ERROR err = LogValue("MinorNumber", indent + 1, value.minorNumber); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'ChannelPresent'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'MinorNumber'"); return err; } } { - CHIP_ERROR err = LogValue("PskcPresent", indent + 1, value.pskcPresent); + CHIP_ERROR err = LogValue("Name", indent + 1, value.name); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'PskcPresent'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Name'"); return err; } } { - CHIP_ERROR err = LogValue("SecurityPolicyPresent", indent + 1, value.securityPolicyPresent); + CHIP_ERROR err = LogValue("CallSign", indent + 1, value.callSign); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'SecurityPolicyPresent'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'CallSign'"); return err; } } { - CHIP_ERROR err = LogValue("ChannelMaskPresent", indent + 1, value.channelMaskPresent); + CHIP_ERROR err = LogValue("AffiliateCallSign", indent + 1, value.affiliateCallSign); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'ChannelMaskPresent'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'AffiliateCallSign'"); return err; } } @@ -1592,31 +1662,40 @@ CHIP_ERROR DataModelLogger::LogValue( return CHIP_NO_ERROR; } + CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, - const chip::app::Clusters::AudioOutput::Structs::OutputInfoStruct::DecodableType & value) + const chip::app::Clusters::Channel::Structs::LineupInfoStruct::DecodableType & value) { DataModelLogger::LogString(label, indent, "{"); { - CHIP_ERROR err = LogValue("Index", indent + 1, value.index); + CHIP_ERROR err = LogValue("OperatorName", indent + 1, value.operatorName); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Index'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'OperatorName'"); return err; } } { - CHIP_ERROR err = LogValue("OutputType", indent + 1, value.outputType); + CHIP_ERROR err = LogValue("LineupName", indent + 1, value.lineupName); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'OutputType'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'LineupName'"); return err; } } { - CHIP_ERROR err = LogValue("Name", indent + 1, value.name); + CHIP_ERROR err = LogValue("PostalCode", indent + 1, value.postalCode); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Name'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'PostalCode'"); + return err; + } + } + { + CHIP_ERROR err = LogValue("LineupInfoType", indent + 1, value.lineupInfoType); + if (err != CHIP_NO_ERROR) + { + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'LineupInfoType'"); return err; } } @@ -1624,31 +1703,24 @@ CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, return CHIP_NO_ERROR; } + CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, - const chip::app::Clusters::ContentLauncher::Structs::ParameterStruct::DecodableType & value) + const chip::app::Clusters::TargetNavigator::Structs::TargetInfoStruct::DecodableType & value) { DataModelLogger::LogString(label, indent, "{"); { - CHIP_ERROR err = LogValue("Type", indent + 1, value.type); - if (err != CHIP_NO_ERROR) - { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Type'"); - return err; - } - } - { - CHIP_ERROR err = LogValue("Value", indent + 1, value.value); + CHIP_ERROR err = LogValue("Identifier", indent + 1, value.identifier); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Value'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Identifier'"); return err; } } { - CHIP_ERROR err = LogValue("ExternalIDList", indent + 1, value.externalIDList); + CHIP_ERROR err = LogValue("Name", indent + 1, value.name); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'ExternalIDList'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Name'"); return err; } } @@ -1656,6 +1728,7 @@ CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, return CHIP_NO_ERROR; } + CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, const chip::app::Clusters::MediaPlayback::Structs::PlaybackPositionStruct::DecodableType & value) @@ -1681,121 +1754,132 @@ DataModelLogger::LogValue(const char * label, size_t indent, return CHIP_NO_ERROR; } -CHIP_ERROR -DataModelLogger::LogValue(const char * label, size_t indent, - const chip::app::Clusters::OtaSoftwareUpdateRequestor::Structs::ProviderLocation::DecodableType & value) + +CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, + const chip::app::Clusters::MediaInput::Structs::InputInfoStruct::DecodableType & value) { DataModelLogger::LogString(label, indent, "{"); { - CHIP_ERROR err = LogValue("ProviderNodeID", indent + 1, value.providerNodeID); - if (err != CHIP_NO_ERROR) - { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'ProviderNodeID'"); - return err; - } - } - { - CHIP_ERROR err = LogValue("Endpoint", indent + 1, value.endpoint); + CHIP_ERROR err = LogValue("Index", indent + 1, value.index); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Endpoint'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Index'"); return err; } } { - CHIP_ERROR err = LogValue("FabricIndex", indent + 1, value.fabricIndex); + CHIP_ERROR err = LogValue("InputType", indent + 1, value.inputType); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'FabricIndex'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'InputType'"); return err; } } - DataModelLogger::LogString(indent, "}"); - - return CHIP_NO_ERROR; -} -CHIP_ERROR -DataModelLogger::LogValue(const char * label, size_t indent, - const chip::app::Clusters::ThreadNetworkDiagnostics::Structs::RouteTable::DecodableType & value) -{ - DataModelLogger::LogString(label, indent, "{"); { - CHIP_ERROR err = LogValue("ExtAddress", indent + 1, value.extAddress); + CHIP_ERROR err = LogValue("Name", indent + 1, value.name); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'ExtAddress'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Name'"); return err; } } { - CHIP_ERROR err = LogValue("Rloc16", indent + 1, value.rloc16); + CHIP_ERROR err = LogValue("Description", indent + 1, value.description); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Rloc16'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Description'"); return err; } } + DataModelLogger::LogString(indent, "}"); + + return CHIP_NO_ERROR; +} + +CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, + const chip::app::Clusters::ContentLauncher::Structs::DimensionStruct::DecodableType & value) +{ + DataModelLogger::LogString(label, indent, "{"); { - CHIP_ERROR err = LogValue("RouterId", indent + 1, value.routerId); + CHIP_ERROR err = LogValue("Width", indent + 1, value.width); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'RouterId'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Width'"); return err; } } { - CHIP_ERROR err = LogValue("NextHop", indent + 1, value.nextHop); + CHIP_ERROR err = LogValue("Height", indent + 1, value.height); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'NextHop'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Height'"); return err; } } { - CHIP_ERROR err = LogValue("PathCost", indent + 1, value.pathCost); + CHIP_ERROR err = LogValue("Metric", indent + 1, value.metric); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'PathCost'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Metric'"); return err; } } + DataModelLogger::LogString(indent, "}"); + + return CHIP_NO_ERROR; +} + +CHIP_ERROR +DataModelLogger::LogValue(const char * label, size_t indent, + const chip::app::Clusters::ContentLauncher::Structs::AdditionalInfoStruct::DecodableType & value) +{ + DataModelLogger::LogString(label, indent, "{"); { - CHIP_ERROR err = LogValue("LQIIn", indent + 1, value.LQIIn); + CHIP_ERROR err = LogValue("Name", indent + 1, value.name); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'LQIIn'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Name'"); return err; } } { - CHIP_ERROR err = LogValue("LQIOut", indent + 1, value.LQIOut); + CHIP_ERROR err = LogValue("Value", indent + 1, value.value); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'LQIOut'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Value'"); return err; } } + DataModelLogger::LogString(indent, "}"); + + return CHIP_NO_ERROR; +} + +CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, + const chip::app::Clusters::ContentLauncher::Structs::ParameterStruct::DecodableType & value) +{ + DataModelLogger::LogString(label, indent, "{"); { - CHIP_ERROR err = LogValue("Age", indent + 1, value.age); + CHIP_ERROR err = LogValue("Type", indent + 1, value.type); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Age'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Type'"); return err; } } { - CHIP_ERROR err = LogValue("Allocated", indent + 1, value.allocated); + CHIP_ERROR err = LogValue("Value", indent + 1, value.value); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Allocated'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Value'"); return err; } } { - CHIP_ERROR err = LogValue("LinkEstablished", indent + 1, value.linkEstablished); + CHIP_ERROR err = LogValue("ExternalIDList", indent + 1, value.externalIDList); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'LinkEstablished'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'ExternalIDList'"); return err; } } @@ -1803,24 +1887,17 @@ DataModelLogger::LogValue(const char * label, size_t indent, return CHIP_NO_ERROR; } + CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, - const chip::app::Clusters::ThreadNetworkDiagnostics::Structs::SecurityPolicy::DecodableType & value) + const chip::app::Clusters::ContentLauncher::Structs::ContentSearchStruct::DecodableType & value) { DataModelLogger::LogString(label, indent, "{"); { - CHIP_ERROR err = LogValue("RotationTime", indent + 1, value.rotationTime); - if (err != CHIP_NO_ERROR) - { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'RotationTime'"); - return err; - } - } - { - CHIP_ERROR err = LogValue("Flags", indent + 1, value.flags); + CHIP_ERROR err = LogValue("ParameterList", indent + 1, value.parameterList); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Flags'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'ParameterList'"); return err; } } @@ -1828,23 +1905,33 @@ DataModelLogger::LogValue(const char * label, size_t indent, return CHIP_NO_ERROR; } -CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, - const chip::app::Clusters::ModeSelect::Structs::SemanticTagStruct::DecodableType & value) + +CHIP_ERROR +DataModelLogger::LogValue(const char * label, size_t indent, + const chip::app::Clusters::ContentLauncher::Structs::StyleInformationStruct::DecodableType & value) { DataModelLogger::LogString(label, indent, "{"); { - CHIP_ERROR err = LogValue("MfgCode", indent + 1, value.mfgCode); + CHIP_ERROR err = LogValue("ImageURL", indent + 1, value.imageURL); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'MfgCode'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'ImageURL'"); return err; } } { - CHIP_ERROR err = LogValue("Value", indent + 1, value.value); + CHIP_ERROR err = LogValue("Color", indent + 1, value.color); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Value'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Color'"); + return err; + } + } + { + CHIP_ERROR err = LogValue("Size", indent + 1, value.size); + if (err != CHIP_NO_ERROR) + { + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Size'"); return err; } } @@ -1852,71 +1939,90 @@ CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, return CHIP_NO_ERROR; } -CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, - const chip::app::Clusters::UnitTesting::Structs::SimpleStruct::DecodableType & value) + +CHIP_ERROR +DataModelLogger::LogValue(const char * label, size_t indent, + const chip::app::Clusters::ContentLauncher::Structs::BrandingInformationStruct::DecodableType & value) { DataModelLogger::LogString(label, indent, "{"); { - CHIP_ERROR err = LogValue("A", indent + 1, value.a); + CHIP_ERROR err = LogValue("ProviderName", indent + 1, value.providerName); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'A'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'ProviderName'"); return err; } } { - CHIP_ERROR err = LogValue("B", indent + 1, value.b); + CHIP_ERROR err = LogValue("Background", indent + 1, value.background); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'B'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Background'"); return err; } } { - CHIP_ERROR err = LogValue("C", indent + 1, value.c); + CHIP_ERROR err = LogValue("Logo", indent + 1, value.logo); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'C'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Logo'"); return err; } } { - CHIP_ERROR err = LogValue("D", indent + 1, value.d); + CHIP_ERROR err = LogValue("ProgressBar", indent + 1, value.progressBar); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'D'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'ProgressBar'"); return err; } } { - CHIP_ERROR err = LogValue("E", indent + 1, value.e); + CHIP_ERROR err = LogValue("Splash", indent + 1, value.splash); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'E'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Splash'"); return err; } } { - CHIP_ERROR err = LogValue("F", indent + 1, value.f); + CHIP_ERROR err = LogValue("WaterMark", indent + 1, value.waterMark); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'F'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'WaterMark'"); + return err; + } + } + DataModelLogger::LogString(indent, "}"); + + return CHIP_NO_ERROR; +} + +CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, + const chip::app::Clusters::AudioOutput::Structs::OutputInfoStruct::DecodableType & value) +{ + DataModelLogger::LogString(label, indent, "{"); + { + CHIP_ERROR err = LogValue("Index", indent + 1, value.index); + if (err != CHIP_NO_ERROR) + { + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Index'"); return err; } } { - CHIP_ERROR err = LogValue("G", indent + 1, value.g); + CHIP_ERROR err = LogValue("OutputType", indent + 1, value.outputType); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'G'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'OutputType'"); return err; } } { - CHIP_ERROR err = LogValue("H", indent + 1, value.h); + CHIP_ERROR err = LogValue("Name", indent + 1, value.name); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'H'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Name'"); return err; } } @@ -1924,32 +2030,25 @@ CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, return CHIP_NO_ERROR; } + CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, - const chip::app::Clusters::ContentLauncher::Structs::StyleInformationStruct::DecodableType & value) + const chip::app::Clusters::ApplicationLauncher::Structs::ApplicationEPStruct::DecodableType & value) { DataModelLogger::LogString(label, indent, "{"); { - CHIP_ERROR err = LogValue("ImageURL", indent + 1, value.imageURL); - if (err != CHIP_NO_ERROR) - { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'ImageURL'"); - return err; - } - } - { - CHIP_ERROR err = LogValue("Color", indent + 1, value.color); + CHIP_ERROR err = LogValue("Application", indent + 1, value.application); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Color'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Application'"); return err; } } { - CHIP_ERROR err = LogValue("Size", indent + 1, value.size); + CHIP_ERROR err = LogValue("Endpoint", indent + 1, value.endpoint); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Size'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Endpoint'"); return err; } } @@ -1957,31 +2056,33 @@ DataModelLogger::LogValue(const char * label, size_t indent, return CHIP_NO_ERROR; } -CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, - const chip::app::Clusters::AccessControl::Structs::Target::DecodableType & value) + +CHIP_ERROR +DataModelLogger::LogValue(const char * label, size_t indent, + const chip::app::Clusters::ClientMonitoring::Structs::MonitoringRegistration::DecodableType & value) { DataModelLogger::LogString(label, indent, "{"); { - CHIP_ERROR err = LogValue("Cluster", indent + 1, value.cluster); + CHIP_ERROR err = LogValue("ClientNodeId", indent + 1, value.clientNodeId); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Cluster'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'ClientNodeId'"); return err; } } { - CHIP_ERROR err = LogValue("Endpoint", indent + 1, value.endpoint); + CHIP_ERROR err = LogValue("ICid", indent + 1, value.ICid); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Endpoint'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'ICid'"); return err; } } { - CHIP_ERROR err = LogValue("DeviceType", indent + 1, value.deviceType); + CHIP_ERROR err = LogValue("FabricIndex", indent + 1, value.fabricIndex); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'DeviceType'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'FabricIndex'"); return err; } } @@ -1989,71 +2090,72 @@ CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, return CHIP_NO_ERROR; } + CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, - const chip::app::Clusters::TargetNavigator::Structs::TargetInfoStruct::DecodableType & value) + const chip::app::Clusters::UnitTesting::Structs::SimpleStruct::DecodableType & value) { DataModelLogger::LogString(label, indent, "{"); { - CHIP_ERROR err = LogValue("Identifier", indent + 1, value.identifier); + CHIP_ERROR err = LogValue("A", indent + 1, value.a); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Identifier'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'A'"); return err; } } { - CHIP_ERROR err = LogValue("Name", indent + 1, value.name); + CHIP_ERROR err = LogValue("B", indent + 1, value.b); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Name'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'B'"); return err; } } - DataModelLogger::LogString(indent, "}"); - - return CHIP_NO_ERROR; -} -CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, - const chip::app::Clusters::Binding::Structs::TargetStruct::DecodableType & value) -{ - DataModelLogger::LogString(label, indent, "{"); { - CHIP_ERROR err = LogValue("Node", indent + 1, value.node); + CHIP_ERROR err = LogValue("C", indent + 1, value.c); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Node'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'C'"); return err; } } { - CHIP_ERROR err = LogValue("Group", indent + 1, value.group); + CHIP_ERROR err = LogValue("D", indent + 1, value.d); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Group'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'D'"); return err; } } { - CHIP_ERROR err = LogValue("Endpoint", indent + 1, value.endpoint); + CHIP_ERROR err = LogValue("E", indent + 1, value.e); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Endpoint'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'E'"); return err; } } { - CHIP_ERROR err = LogValue("Cluster", indent + 1, value.cluster); + CHIP_ERROR err = LogValue("F", indent + 1, value.f); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Cluster'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'F'"); return err; } } { - CHIP_ERROR err = LogValue("FabricIndex", indent + 1, value.fabricIndex); + CHIP_ERROR err = LogValue("G", indent + 1, value.g); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'FabricIndex'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'G'"); + return err; + } + } + { + CHIP_ERROR err = LogValue("H", indent + 1, value.h); + if (err != CHIP_NO_ERROR) + { + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'H'"); return err; } } @@ -2061,6 +2163,7 @@ CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, return CHIP_NO_ERROR; } + CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, const chip::app::Clusters::UnitTesting::Structs::TestFabricScoped::DecodableType & value) { @@ -2134,129 +2237,105 @@ CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, return CHIP_NO_ERROR; } -CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, - const chip::app::Clusters::UnitTesting::Structs::TestListStructOctet::DecodableType & value) + +CHIP_ERROR +DataModelLogger::LogValue(const char * label, size_t indent, + const chip::app::Clusters::UnitTesting::Structs::NullablesAndOptionalsStruct::DecodableType & value) { DataModelLogger::LogString(label, indent, "{"); { - CHIP_ERROR err = LogValue("Member1", indent + 1, value.member1); - if (err != CHIP_NO_ERROR) - { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Member1'"); - return err; - } - } - { - CHIP_ERROR err = LogValue("Member2", indent + 1, value.member2); + CHIP_ERROR err = LogValue("NullableInt", indent + 1, value.nullableInt); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Member2'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'NullableInt'"); return err; } } - DataModelLogger::LogString(indent, "}"); - - return CHIP_NO_ERROR; -} -CHIP_ERROR -DataModelLogger::LogValue(const char * label, size_t indent, - const chip::app::Clusters::Thermostat::Structs::ThermostatScheduleTransition::DecodableType & value) -{ - DataModelLogger::LogString(label, indent, "{"); { - CHIP_ERROR err = LogValue("TransitionTime", indent + 1, value.transitionTime); + CHIP_ERROR err = LogValue("OptionalInt", indent + 1, value.optionalInt); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'TransitionTime'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'OptionalInt'"); return err; } } { - CHIP_ERROR err = LogValue("HeatSetpoint", indent + 1, value.heatSetpoint); + CHIP_ERROR err = LogValue("NullableOptionalInt", indent + 1, value.nullableOptionalInt); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'HeatSetpoint'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'NullableOptionalInt'"); return err; } } { - CHIP_ERROR err = LogValue("CoolSetpoint", indent + 1, value.coolSetpoint); + CHIP_ERROR err = LogValue("NullableString", indent + 1, value.nullableString); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'CoolSetpoint'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'NullableString'"); return err; } } - DataModelLogger::LogString(indent, "}"); - - return CHIP_NO_ERROR; -} -CHIP_ERROR DataModelLogger::LogValue( - const char * label, size_t indent, - const chip::app::Clusters::NetworkCommissioning::Structs::ThreadInterfaceScanResult::DecodableType & value) -{ - DataModelLogger::LogString(label, indent, "{"); { - CHIP_ERROR err = LogValue("PanId", indent + 1, value.panId); + CHIP_ERROR err = LogValue("OptionalString", indent + 1, value.optionalString); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'PanId'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'OptionalString'"); return err; } } { - CHIP_ERROR err = LogValue("ExtendedPanId", indent + 1, value.extendedPanId); + CHIP_ERROR err = LogValue("NullableOptionalString", indent + 1, value.nullableOptionalString); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'ExtendedPanId'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'NullableOptionalString'"); return err; } } { - CHIP_ERROR err = LogValue("NetworkName", indent + 1, value.networkName); + CHIP_ERROR err = LogValue("NullableStruct", indent + 1, value.nullableStruct); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'NetworkName'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'NullableStruct'"); return err; } } { - CHIP_ERROR err = LogValue("Channel", indent + 1, value.channel); + CHIP_ERROR err = LogValue("OptionalStruct", indent + 1, value.optionalStruct); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Channel'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'OptionalStruct'"); return err; } } { - CHIP_ERROR err = LogValue("Version", indent + 1, value.version); + CHIP_ERROR err = LogValue("NullableOptionalStruct", indent + 1, value.nullableOptionalStruct); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Version'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'NullableOptionalStruct'"); return err; } } { - CHIP_ERROR err = LogValue("ExtendedAddress", indent + 1, value.extendedAddress); + CHIP_ERROR err = LogValue("NullableList", indent + 1, value.nullableList); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'ExtendedAddress'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'NullableList'"); return err; } } { - CHIP_ERROR err = LogValue("Rssi", indent + 1, value.rssi); + CHIP_ERROR err = LogValue("OptionalList", indent + 1, value.optionalList); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Rssi'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'OptionalList'"); return err; } } { - CHIP_ERROR err = LogValue("Lqi", indent + 1, value.lqi); + CHIP_ERROR err = LogValue("NullableOptionalList", indent + 1, value.nullableOptionalList); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Lqi'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'NullableOptionalList'"); return err; } } @@ -2264,48 +2343,32 @@ CHIP_ERROR DataModelLogger::LogValue( return CHIP_NO_ERROR; } -CHIP_ERROR -DataModelLogger::LogValue(const char * label, size_t indent, - const chip::app::Clusters::SoftwareDiagnostics::Structs::ThreadMetricsStruct::DecodableType & value) + +CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, + const chip::app::Clusters::UnitTesting::Structs::NestedStruct::DecodableType & value) { DataModelLogger::LogString(label, indent, "{"); { - CHIP_ERROR err = LogValue("Id", indent + 1, value.id); - if (err != CHIP_NO_ERROR) - { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Id'"); - return err; - } - } - { - CHIP_ERROR err = LogValue("Name", indent + 1, value.name); - if (err != CHIP_NO_ERROR) - { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Name'"); - return err; - } - } - { - CHIP_ERROR err = LogValue("StackFreeCurrent", indent + 1, value.stackFreeCurrent); + CHIP_ERROR err = LogValue("A", indent + 1, value.a); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'StackFreeCurrent'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'A'"); return err; } } { - CHIP_ERROR err = LogValue("StackFreeMinimum", indent + 1, value.stackFreeMinimum); + CHIP_ERROR err = LogValue("B", indent + 1, value.b); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'StackFreeMinimum'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'B'"); return err; } } { - CHIP_ERROR err = LogValue("StackSize", indent + 1, value.stackSize); + CHIP_ERROR err = LogValue("C", indent + 1, value.c); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'StackSize'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'C'"); return err; } } @@ -2313,88 +2376,81 @@ DataModelLogger::LogValue(const char * label, size_t indent, return CHIP_NO_ERROR; } + CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, - const chip::app::Clusters::TimeSynchronization::Structs::TimeZoneStruct::DecodableType & value) + const chip::app::Clusters::UnitTesting::Structs::NestedStructList::DecodableType & value) { DataModelLogger::LogString(label, indent, "{"); { - CHIP_ERROR err = LogValue("Offset", indent + 1, value.offset); - if (err != CHIP_NO_ERROR) - { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Offset'"); - return err; - } - } - { - CHIP_ERROR err = LogValue("ValidAt", indent + 1, value.validAt); + CHIP_ERROR err = LogValue("A", indent + 1, value.a); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'ValidAt'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'A'"); return err; } } { - CHIP_ERROR err = LogValue("Name", indent + 1, value.name); + CHIP_ERROR err = LogValue("B", indent + 1, value.b); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Name'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'B'"); return err; } } - DataModelLogger::LogString(indent, "}"); - - return CHIP_NO_ERROR; -} -CHIP_ERROR -DataModelLogger::LogValue(const char * label, size_t indent, - const chip::app::Clusters::NetworkCommissioning::Structs::WiFiInterfaceScanResult::DecodableType & value) -{ - DataModelLogger::LogString(label, indent, "{"); { - CHIP_ERROR err = LogValue("Security", indent + 1, value.security); + CHIP_ERROR err = LogValue("C", indent + 1, value.c); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Security'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'C'"); return err; } } { - CHIP_ERROR err = LogValue("Ssid", indent + 1, value.ssid); + CHIP_ERROR err = LogValue("D", indent + 1, value.d); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Ssid'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'D'"); return err; } } { - CHIP_ERROR err = LogValue("Bssid", indent + 1, value.bssid); + CHIP_ERROR err = LogValue("E", indent + 1, value.e); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Bssid'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'E'"); return err; } } { - CHIP_ERROR err = LogValue("Channel", indent + 1, value.channel); + CHIP_ERROR err = LogValue("F", indent + 1, value.f); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Channel'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'F'"); return err; } } { - CHIP_ERROR err = LogValue("WiFiBand", indent + 1, value.wiFiBand); + CHIP_ERROR err = LogValue("G", indent + 1, value.g); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'WiFiBand'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'G'"); return err; } } + DataModelLogger::LogString(indent, "}"); + + return CHIP_NO_ERROR; +} + +CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, + const chip::app::Clusters::UnitTesting::Structs::DoubleNestedStructList::DecodableType & value) +{ + DataModelLogger::LogString(label, indent, "{"); { - CHIP_ERROR err = LogValue("Rssi", indent + 1, value.rssi); + CHIP_ERROR err = LogValue("A", indent + 1, value.a); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Rssi'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'A'"); return err; } } @@ -2402,23 +2458,24 @@ DataModelLogger::LogValue(const char * label, size_t indent, return CHIP_NO_ERROR; } + CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, - const chip::app::Clusters::PowerSource::Structs::WiredFaultChangeType::DecodableType & value) + const chip::app::Clusters::UnitTesting::Structs::TestListStructOctet::DecodableType & value) { DataModelLogger::LogString(label, indent, "{"); { - CHIP_ERROR err = LogValue("Current", indent + 1, value.current); + CHIP_ERROR err = LogValue("Member1", indent + 1, value.member1); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Current'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Member1'"); return err; } } { - CHIP_ERROR err = LogValue("Previous", indent + 1, value.previous); + CHIP_ERROR err = LogValue("Member2", indent + 1, value.member2); if (err != CHIP_NO_ERROR) { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Previous'"); + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Member2'"); return err; } } diff --git a/zzz_generated/chip-tool/zap-generated/cluster/logging/DataModelLogger.h b/zzz_generated/chip-tool/zap-generated/cluster/logging/DataModelLogger.h index cb1d136ebc92b7..368f75af3cfc10 100644 --- a/zzz_generated/chip-tool/zap-generated/cluster/logging/DataModelLogger.h +++ b/zzz_generated/chip-tool/zap-generated/cluster/logging/DataModelLogger.h @@ -20,126 +20,183 @@ #include #include +static CHIP_ERROR LogValue(const char * label, size_t indent, + const chip::app::Clusters::detail::Structs::ApplicationStruct::DecodableType & value); + +static CHIP_ERROR LogValue(const char * label, size_t indent, + const chip::app::Clusters::detail::Structs::LabelStruct::DecodableType & value); + +static CHIP_ERROR LogValue(const char * label, size_t indent, + const chip::app::Clusters::Scenes::Structs::AttributeValuePair::DecodableType & value); + +static CHIP_ERROR LogValue(const char * label, size_t indent, + const chip::app::Clusters::Scenes::Structs::ExtensionFieldSet::DecodableType & value); + +static CHIP_ERROR LogValue(const char * label, size_t indent, + const chip::app::Clusters::Descriptor::Structs::DeviceTypeStruct::DecodableType & value); + +static CHIP_ERROR LogValue(const char * label, size_t indent, + const chip::app::Clusters::Binding::Structs::TargetStruct::DecodableType & value); + +static CHIP_ERROR LogValue(const char * label, size_t indent, + const chip::app::Clusters::AccessControl::Structs::Target::DecodableType & value); + static CHIP_ERROR LogValue(const char * label, size_t indent, const chip::app::Clusters::AccessControl::Structs::AccessControlEntryStruct::DecodableType & value); + static CHIP_ERROR LogValue(const char * label, size_t indent, const chip::app::Clusters::AccessControl::Structs::AccessControlExtensionStruct::DecodableType & value); + static CHIP_ERROR LogValue(const char * label, size_t indent, const chip::app::Clusters::Actions::Structs::ActionStruct::DecodableType & value); + static CHIP_ERROR LogValue(const char * label, size_t indent, - const chip::app::Clusters::ContentLauncher::Structs::AdditionalInfoStruct::DecodableType & value); -static CHIP_ERROR LogValue(const char * label, size_t indent, - const chip::app::Clusters::ApplicationLauncher::Structs::ApplicationEPStruct::DecodableType & value); -static CHIP_ERROR LogValue(const char * label, size_t indent, - const chip::app::Clusters::detail::Structs::ApplicationStruct::DecodableType & value); + const chip::app::Clusters::Actions::Structs::EndpointListStruct::DecodableType & value); + static CHIP_ERROR LogValue(const char * label, size_t indent, - const chip::app::Clusters::Scenes::Structs::AttributeValuePair::DecodableType & value); + const chip::app::Clusters::BasicInformation::Structs::CapabilityMinimaStruct::DecodableType & value); + static CHIP_ERROR LogValue(const char * label, size_t indent, - const chip::app::Clusters::GeneralCommissioning::Structs::BasicCommissioningInfo::DecodableType & value); + const chip::app::Clusters::OtaSoftwareUpdateRequestor::Structs::ProviderLocation::DecodableType & value); + static CHIP_ERROR LogValue(const char * label, size_t indent, const chip::app::Clusters::PowerSource::Structs::BatChargeFaultChangeType::DecodableType & value); + static CHIP_ERROR LogValue(const char * label, size_t indent, const chip::app::Clusters::PowerSource::Structs::BatFaultChangeType::DecodableType & value); + static CHIP_ERROR LogValue(const char * label, size_t indent, - const chip::app::Clusters::ContentLauncher::Structs::BrandingInformationStruct::DecodableType & value); -static CHIP_ERROR LogValue(const char * label, size_t indent, - const chip::app::Clusters::BasicInformation::Structs::CapabilityMinimaStruct::DecodableType & value); + const chip::app::Clusters::PowerSource::Structs::WiredFaultChangeType::DecodableType & value); + static CHIP_ERROR LogValue(const char * label, size_t indent, - const chip::app::Clusters::Channel::Structs::ChannelInfoStruct::DecodableType & value); + const chip::app::Clusters::GeneralCommissioning::Structs::BasicCommissioningInfo::DecodableType & value); + static CHIP_ERROR LogValue(const char * label, size_t indent, - const chip::app::Clusters::ContentLauncher::Structs::ContentSearchStruct::DecodableType & value); + const chip::app::Clusters::NetworkCommissioning::Structs::NetworkInfo::DecodableType & value); + +static CHIP_ERROR +LogValue(const char * label, size_t indent, + const chip::app::Clusters::NetworkCommissioning::Structs::ThreadInterfaceScanResult::DecodableType & value); + +static CHIP_ERROR +LogValue(const char * label, size_t indent, + const chip::app::Clusters::NetworkCommissioning::Structs::WiFiInterfaceScanResult::DecodableType & value); + static CHIP_ERROR LogValue(const char * label, size_t indent, - const chip::app::Clusters::DoorLock::Structs::CredentialStruct::DecodableType & value); + const chip::app::Clusters::GeneralDiagnostics::Structs::NetworkInterface::DecodableType & value); + static CHIP_ERROR LogValue(const char * label, size_t indent, - const chip::app::Clusters::TimeSynchronization::Structs::DSTOffsetStruct::DecodableType & value); + const chip::app::Clusters::SoftwareDiagnostics::Structs::ThreadMetricsStruct::DecodableType & value); + static CHIP_ERROR LogValue(const char * label, size_t indent, - const chip::app::Clusters::Descriptor::Structs::DeviceTypeStruct::DecodableType & value); + const chip::app::Clusters::ThreadNetworkDiagnostics::Structs::NeighborTable::DecodableType & value); + +static CHIP_ERROR +LogValue(const char * label, size_t indent, + const chip::app::Clusters::ThreadNetworkDiagnostics::Structs::OperationalDatasetComponents::DecodableType & value); + static CHIP_ERROR LogValue(const char * label, size_t indent, - const chip::app::Clusters::ContentLauncher::Structs::DimensionStruct::DecodableType & value); + const chip::app::Clusters::ThreadNetworkDiagnostics::Structs::RouteTable::DecodableType & value); + static CHIP_ERROR LogValue(const char * label, size_t indent, - const chip::app::Clusters::UnitTesting::Structs::DoubleNestedStructList::DecodableType & value); + const chip::app::Clusters::ThreadNetworkDiagnostics::Structs::SecurityPolicy::DecodableType & value); + static CHIP_ERROR LogValue(const char * label, size_t indent, - const chip::app::Clusters::Actions::Structs::EndpointListStruct::DecodableType & value); + const chip::app::Clusters::TimeSynchronization::Structs::DSTOffsetStruct::DecodableType & value); + static CHIP_ERROR LogValue(const char * label, size_t indent, - const chip::app::Clusters::Scenes::Structs::ExtensionFieldSet::DecodableType & value); + const chip::app::Clusters::TimeSynchronization::Structs::TimeZoneStruct::DecodableType & value); + static CHIP_ERROR LogValue(const char * label, size_t indent, const chip::app::Clusters::OperationalCredentials::Structs::FabricDescriptorStruct::DecodableType & value); + +static CHIP_ERROR LogValue(const char * label, size_t indent, + const chip::app::Clusters::OperationalCredentials::Structs::NOCStruct::DecodableType & value); + static CHIP_ERROR LogValue(const char * label, size_t indent, const chip::app::Clusters::GroupKeyManagement::Structs::GroupInfoMapStruct::DecodableType & value); + static CHIP_ERROR LogValue(const char * label, size_t indent, const chip::app::Clusters::GroupKeyManagement::Structs::GroupKeyMapStruct::DecodableType & value); + static CHIP_ERROR LogValue(const char * label, size_t indent, const chip::app::Clusters::GroupKeyManagement::Structs::GroupKeySetStruct::DecodableType & value); + static CHIP_ERROR LogValue(const char * label, size_t indent, - const chip::app::Clusters::MediaInput::Structs::InputInfoStruct::DecodableType & value); -static CHIP_ERROR LogValue(const char * label, size_t indent, - const chip::app::Clusters::detail::Structs::LabelStruct::DecodableType & value); -static CHIP_ERROR LogValue(const char * label, size_t indent, - const chip::app::Clusters::Channel::Structs::LineupInfoStruct::DecodableType & value); + const chip::app::Clusters::ModeSelect::Structs::SemanticTagStruct::DecodableType & value); + static CHIP_ERROR LogValue(const char * label, size_t indent, const chip::app::Clusters::ModeSelect::Structs::ModeOptionStruct::DecodableType & value); + static CHIP_ERROR LogValue(const char * label, size_t indent, - const chip::app::Clusters::ClientMonitoring::Structs::MonitoringRegistration::DecodableType & value); + const chip::app::Clusters::DoorLock::Structs::CredentialStruct::DecodableType & value); + static CHIP_ERROR LogValue(const char * label, size_t indent, - const chip::app::Clusters::OperationalCredentials::Structs::NOCStruct::DecodableType & value); + const chip::app::Clusters::Thermostat::Structs::ThermostatScheduleTransition::DecodableType & value); + static CHIP_ERROR LogValue(const char * label, size_t indent, - const chip::app::Clusters::ThreadNetworkDiagnostics::Structs::NeighborTable::DecodableType & value); + const chip::app::Clusters::Channel::Structs::ChannelInfoStruct::DecodableType & value); + static CHIP_ERROR LogValue(const char * label, size_t indent, - const chip::app::Clusters::UnitTesting::Structs::NestedStruct::DecodableType & value); + const chip::app::Clusters::Channel::Structs::LineupInfoStruct::DecodableType & value); + static CHIP_ERROR LogValue(const char * label, size_t indent, - const chip::app::Clusters::UnitTesting::Structs::NestedStructList::DecodableType & value); + const chip::app::Clusters::TargetNavigator::Structs::TargetInfoStruct::DecodableType & value); + static CHIP_ERROR LogValue(const char * label, size_t indent, - const chip::app::Clusters::NetworkCommissioning::Structs::NetworkInfo::DecodableType & value); + const chip::app::Clusters::MediaPlayback::Structs::PlaybackPositionStruct::DecodableType & value); + static CHIP_ERROR LogValue(const char * label, size_t indent, - const chip::app::Clusters::GeneralDiagnostics::Structs::NetworkInterface::DecodableType & value); + const chip::app::Clusters::MediaInput::Structs::InputInfoStruct::DecodableType & value); + static CHIP_ERROR LogValue(const char * label, size_t indent, - const chip::app::Clusters::UnitTesting::Structs::NullablesAndOptionalsStruct::DecodableType & value); -static CHIP_ERROR -LogValue(const char * label, size_t indent, - const chip::app::Clusters::ThreadNetworkDiagnostics::Structs::OperationalDatasetComponents::DecodableType & value); + const chip::app::Clusters::ContentLauncher::Structs::DimensionStruct::DecodableType & value); + static CHIP_ERROR LogValue(const char * label, size_t indent, - const chip::app::Clusters::AudioOutput::Structs::OutputInfoStruct::DecodableType & value); + const chip::app::Clusters::ContentLauncher::Structs::AdditionalInfoStruct::DecodableType & value); + static CHIP_ERROR LogValue(const char * label, size_t indent, const chip::app::Clusters::ContentLauncher::Structs::ParameterStruct::DecodableType & value); + static CHIP_ERROR LogValue(const char * label, size_t indent, - const chip::app::Clusters::MediaPlayback::Structs::PlaybackPositionStruct::DecodableType & value); -static CHIP_ERROR LogValue(const char * label, size_t indent, - const chip::app::Clusters::OtaSoftwareUpdateRequestor::Structs::ProviderLocation::DecodableType & value); -static CHIP_ERROR LogValue(const char * label, size_t indent, - const chip::app::Clusters::ThreadNetworkDiagnostics::Structs::RouteTable::DecodableType & value); -static CHIP_ERROR LogValue(const char * label, size_t indent, - const chip::app::Clusters::ThreadNetworkDiagnostics::Structs::SecurityPolicy::DecodableType & value); + const chip::app::Clusters::ContentLauncher::Structs::ContentSearchStruct::DecodableType & value); + static CHIP_ERROR LogValue(const char * label, size_t indent, - const chip::app::Clusters::ModeSelect::Structs::SemanticTagStruct::DecodableType & value); + const chip::app::Clusters::ContentLauncher::Structs::StyleInformationStruct::DecodableType & value); + static CHIP_ERROR LogValue(const char * label, size_t indent, - const chip::app::Clusters::UnitTesting::Structs::SimpleStruct::DecodableType & value); + const chip::app::Clusters::ContentLauncher::Structs::BrandingInformationStruct::DecodableType & value); + static CHIP_ERROR LogValue(const char * label, size_t indent, - const chip::app::Clusters::ContentLauncher::Structs::StyleInformationStruct::DecodableType & value); + const chip::app::Clusters::AudioOutput::Structs::OutputInfoStruct::DecodableType & value); + static CHIP_ERROR LogValue(const char * label, size_t indent, - const chip::app::Clusters::AccessControl::Structs::Target::DecodableType & value); + const chip::app::Clusters::ApplicationLauncher::Structs::ApplicationEPStruct::DecodableType & value); + static CHIP_ERROR LogValue(const char * label, size_t indent, - const chip::app::Clusters::TargetNavigator::Structs::TargetInfoStruct::DecodableType & value); + const chip::app::Clusters::ClientMonitoring::Structs::MonitoringRegistration::DecodableType & value); + static CHIP_ERROR LogValue(const char * label, size_t indent, - const chip::app::Clusters::Binding::Structs::TargetStruct::DecodableType & value); + const chip::app::Clusters::UnitTesting::Structs::SimpleStruct::DecodableType & value); + static CHIP_ERROR LogValue(const char * label, size_t indent, const chip::app::Clusters::UnitTesting::Structs::TestFabricScoped::DecodableType & value); + static CHIP_ERROR LogValue(const char * label, size_t indent, - const chip::app::Clusters::UnitTesting::Structs::TestListStructOctet::DecodableType & value); + const chip::app::Clusters::UnitTesting::Structs::NullablesAndOptionalsStruct::DecodableType & value); + static CHIP_ERROR LogValue(const char * label, size_t indent, - const chip::app::Clusters::Thermostat::Structs::ThermostatScheduleTransition::DecodableType & value); -static CHIP_ERROR -LogValue(const char * label, size_t indent, - const chip::app::Clusters::NetworkCommissioning::Structs::ThreadInterfaceScanResult::DecodableType & value); + const chip::app::Clusters::UnitTesting::Structs::NestedStruct::DecodableType & value); + static CHIP_ERROR LogValue(const char * label, size_t indent, - const chip::app::Clusters::SoftwareDiagnostics::Structs::ThreadMetricsStruct::DecodableType & value); + const chip::app::Clusters::UnitTesting::Structs::NestedStructList::DecodableType & value); + static CHIP_ERROR LogValue(const char * label, size_t indent, - const chip::app::Clusters::TimeSynchronization::Structs::TimeZoneStruct::DecodableType & value); -static CHIP_ERROR -LogValue(const char * label, size_t indent, - const chip::app::Clusters::NetworkCommissioning::Structs::WiFiInterfaceScanResult::DecodableType & value); + const chip::app::Clusters::UnitTesting::Structs::DoubleNestedStructList::DecodableType & value); + static CHIP_ERROR LogValue(const char * label, size_t indent, - const chip::app::Clusters::PowerSource::Structs::WiredFaultChangeType::DecodableType & value); + const chip::app::Clusters::UnitTesting::Structs::TestListStructOctet::DecodableType & value); static CHIP_ERROR LogValue(const char * label, size_t indent, const chip::app::Clusters::AccessControl::Events::AccessControlEntryChanged::DecodableType & value);