package after_resolution import rego.v1 # checks that complex attributes are not used in any groups except events deny contains group_stability_violation(description, group.id, attr.name) if { group := input.groups[_] group.type != "event" group.type != "span" group.type != "attribute_group" attr := group.attributes[_] attr.type in ["any", "template[any]"] description := sprintf("Attribute '%s' has type '%s' and is referenced on group '%s' of type '%s'. Complex attributes are only allowed on events and spans.", [attr.name, attr.type, group.id, group.type]) } attribute_type_violation(description, group, attr) = violation if { violation := { "id": description, "type": "semconv_attribute", "category": "attribute_type_violation", "attr": attr, "group": group, } }