private void validateConflictingProperties(
            List<ValidationEvent> events,
            Shape shape,
            Map<String, Set<MemberShape>> propertyToMemberMappings
    ) {
        for (Map.Entry<String, Set<MemberShape>> entry : propertyToMemberMappings.entrySet()) {
            if (entry.getValue().size() > 1) {
                events.add(error(shape,
                        String.format(
                                "This shape contains members with conflicting resource property names that resolve to '%s': %s",
                                entry.getKey(),
                                entry.getValue()
                                        .stream()
                                        .map(MemberShape::getMemberName)
                                        .collect(Collectors.joining(", ")))));
            }
        }
    }
Validates that resource properties are correctly used in resource-bound operations.
smithy-model/src/main/java/software/amazon/smithy/model/validation/validators/ResourceOperationInputOutputValidator.java