@Override
    public List<ValidationEvent> validate(Model model) {
        List<ValidationEvent> events = new ArrayList<>();
        ServiceIndex index = ServiceIndex.of(model);

        List<ServiceShape> services = model.getServiceShapes()
                .stream()
                .filter(serviceShape -> !serviceShape.hasTrait(AuthTrait.ID))
                .filter(serviceShape -> index.getAuthSchemes(serviceShape).size() > 1)
                .collect(Collectors.toList());

        for (ServiceShape service : services) {
            events.add(warning(service,
                    "This service uses multiple authentication schemes but does not have "
                            + "the `@auth` trait applied. The `@auth` trait defines a priority ordering "
                            + "of auth schemes for a client to use. Without it, the ordering of auth "
                            + "schemes is alphabetical based on the absolute shape ID of the auth "
                            + "schemes."));

        }
        return events;
    }
Validates the @authDefinition traits applied to service shapes.
smithy-model/src/main/java/software/amazon/smithy/model/validation/validators/ServiceAuthDefinitionsValidator.java