private HttpTrait getHttpTrait(ToShapeId operation) {
        ShapeId id = operation.toShapeId();
        return getModel().getShape(id)
                .orElseThrow(() -> new IllegalArgumentException(id + " is not a valid shape"))
                .asOperationShape()
                .orElseThrow(() -> new IllegalArgumentException(id + " is not an operation shape"))
                .getTrait(HttpTrait.class)
                .orElseThrow(() -> new IllegalArgumentException(id + " has no http binding trait"));
    }
Returns true if a shape has any HTTP response trait bindings.

@param shape Shape to check.
@return Returns true if the shape is bound to an HTTP header,
 payload, of prefix headers.
smithy-model/src/main/java/software/amazon/smithy/model/knowledge/HttpBindingIndex.java