private void createSubscribeBinding(
            StructureShape input,
            EventStreamIndex eventStreamIndex,
            OperationShape operation,
            SubscribeTrait trait
    ) {
        EventStreamInfo outputInfo = eventStreamIndex.getOutputInfo(operation).orElse(null);

        // Subscribe operations must have an event stream. Omit the bindings
        // if an event stream is not found.
        if (outputInfo != null) {
            TopicBinding<SubscribeTrait> binding = new TopicBinding<>(
                    operation,
                    trait,
                    trait.getTopic(),
                    outputInfo.getEventStreamTarget(),
                    input);
            subscribeBindings.put(operation.getId(), binding);
            subscribeInfo.put(operation.getId(), outputInfo);
        }
    }
Get subscribe event stream info.

<p>This information describes if the event stream contains a single
event, multiple events, and if there are any initial-request or
response members.

@param operation Operation to get the event stream info o.
@return Returns the optionally found event stream info.
smithy-mqtt-traits/src/main/java/software/amazon/smithy/mqtt/traits/ResolvedTopicIndex.java