private List<ValidationEvent> validateService(TopDownIndex topDownIndex, Model model, ServiceShape service) {
        Set<OperationShape> operations = topDownIndex.getContainedOperations(service);

        ShapeId protocolTraitId = protocolWithBindings(service, model);
        if (protocolTraitId != null) {
            // Emit ERROR events if any of the protocols for the service support HTTP traits.
            String reason = "The `" + protocolTraitId + "` protocol requires all";
            return validateOperations(service, operations, Severity.ERROR, reason);
        }

        // Stop early if there are no bindings at all in the model for any operation.
        if (operations.stream().noneMatch(this::hasBindings)) {
            return ListUtils.of();
        }

        return validateOperations(service, operations, Severity.WARNING, "One or more");
    }
Validates that if any operation in a service uses the http trait,
then all operations use them.
smithy-model/src/main/java/software/amazon/smithy/model/validation/validators/HttpBindingsMissingValidator.java