private List<ValidationEvent> validateResponseChecksumConfiguration(
            Model model,
            HttpChecksumTrait trait,
            OperationShape operation,
            StructureShape input
    ) {
        List<ValidationEvent> events = new ArrayList<>();

        // Validate requestValidationModeMember is set properly for response behavior.
        if (!trait.getRequestValidationModeMember().isPresent()) {
            events.add(error(operation,
                    trait,
                    "The `httpChecksum` trait must model the"
                            + " `requestValidationModeMember` property to support response checksum behavior."));
        } else {
            validateValidationModeMember(model, trait, operation, input).map(events::add);
        }

        // Validate responseAlgorithms is not empty.
        if (trait.getResponseAlgorithms().isEmpty()) {
            events.add(error(operation,
                    trait,
                    "The `httpChecksum` trait must model the"
                            + " `responseAlgorithms` property to support response checksum behavior."));
        }

        // Check for header binding conflicts with the output shape.
        model.getShape(operation.getOutputShape()).flatMap(Shape::asStructureShape).ifPresent(outputShape -> {
            events.addAll(validateHeaderConflicts(operation, outputShape));
        });

        // Check for header binding conflicts with each error shape.
        if (!operation.getErrors().isEmpty()) {
            for (ShapeId id : operation.getErrors()) {
                StructureShape shape = model.expectShape(id, StructureShape.class);
                events.addAll(validateHeaderConflicts(operation, shape));
            }
        }

        return events;
    }
Validates the HttpChecksum trait.

<ul>
    <li>Validates that at least one of the request or response checksum
    behavior is configured.</li>
    <li>Validates that the {@code requestAlgorithmMember} and
    {@code requestChecksumModeMember} properties point to valid input members.</li>
    <li>Validates that the {@code requestAlgorithmMember} targeted member contains
    only supported algorithms.</li>
    <li>Validates that the {@code requestChecksumModeMember} targeted member contains
    only supported modes.</li>
    <li>Checks for conflicts with {@code @httpHeader} and {@code @httpPrefixHeaders}.</li>
</ul>
smithy-aws-traits/src/main/java/software/amazon/smithy/aws/traits/HttpChecksumTraitValidator.java