@Override
    public List<ValidationEvent> validate(Model model) {
        List<ValidationEvent> events = new ArrayList<>();
        Set<String> defaultedMembers = new TreeSet<>();

        for (OperationShape operation : identifyOperations(model)) {
            StructureShape input = model.expectShape(operation.getInputShape(), StructureShape.class);

            for (MemberShape member : input.getAllMembers().values()) {
                if (member.hasTrait(DefaultTrait.ID)) {
                    defaultedMembers.add(member.getMemberName());
                }
            }

            if (!defaultedMembers.isEmpty()) {
                events.add(warning(operation,
                        "This update style operation has top-level input members marked with "
                                + "the @default trait. It will be impossible to tell if the member was "
                                + "omitted or explicitly provided. Affected members: "
                                + defaultedMembers));
                defaultedMembers.clear();
            }
        }

        return events;
    }
Finds operations that are meant to partially update a resource, but that use
members with default values in their input shapes, making it impossible
to know if the member was provided explicitly or defaulted.
smithy-model/src/main/java/software/amazon/smithy/model/validation/validators/DefaultValueInUpdateValidator.java