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

        // Validate all operation shapes with the `http` trait.
        for (OperationShape operation : model.getOperationShapesWithTrait(HttpTrait.class)) {
            events.addAll(validateStructure(model, operation, operation.expectTrait(HttpTrait.class)));
        }

        return events;
    }
Validates that httpLabel traits are applied correctly for operation inputs.

<ul>
    <li>Validates that if an operation has labels then it must have
    input.</li>
    <li>Validates that a corresponding input member can be found for each
    label in each operation.</li>
    <li>Validates that the correct target type is used for greedy and
    non-greedy labels.</li>
    <li>Validates that all labels in the URI of each operation that
    references the structure, have a corresponding member with the
    httpLabel trait.</li>
</ul>
smithy-model/src/main/java/software/amazon/smithy/model/validation/validators/HttpLabelTraitValidator.java