Interface EventStreamResponseHandler<ResponseT,EventT>

Type Parameters:
ResponseT - the POJO response type
EventT - the event type
All Known Subinterfaces:
InvokeAgentResponseHandler, InvokeEndpointWithResponseStreamResponseHandler, InvokeModelWithResponseStreamResponseHandler, InvokeWithResponseStreamResponseHandler, SelectObjectContentResponseHandler, StartCallAnalyticsStreamTranscriptionResponseHandler, StartConversationResponseHandler, StartLiveTailResponseHandler, StartMedicalStreamTranscriptionResponseHandler, StartStreamTranscriptionResponseHandler, SubscribeToShardResponseHandler
All Known Implementing Classes:
EventStreamResponseHandlerFromBuilder

public interface EventStreamResponseHandler<ResponseT,EventT>
Response handler for event streaming operations.
  • Method Details

    • responseReceived

      void responseReceived(ResponseT response)
      Called when the initial response has been received and the POJO response has been unmarshalled. This is guaranteed to be called before onEventStream(SdkPublisher).

      In the event of a retryable error, this callback may be called multiple times. It also may never be invoked if the request never succeeds.

      Parameters:
      response - Unmarshalled POJO containing metadata about the streamed data.
    • onEventStream

      void onEventStream(SdkPublisher<EventT> publisher)
      Called when events are ready to be streamed. Implementations must subscribe to the Publisher and request data via a Subscription as they can handle it.

      If at any time the subscriber wishes to stop receiving data, it may call Subscription.cancel(). This will NOT be treated as a failure of the response and the response will be completed normally.

      This callback may never be called if the response has no content or if an error occurs.

      In the event of a retryable error, this callback may be called multiple times with different Publishers. If this method is called more than once, implementation must either reset any state to prepare for another stream of data or must throw an exception indicating they cannot reset. If any exception is thrown then no automatic retry is performed.

    • exceptionOccurred

      void exceptionOccurred(Throwable throwable)
      Called when an exception occurs while establishing the connection or streaming the response. Implementations should free up any resources in this method. This method may be called multiple times during the lifecycle of a request if automatic retries are enabled.
      Parameters:
      throwable - Exception that occurred.
    • complete

      void complete()
      Called when all data has been successfully published to the Subscriber. This will only be called once during the lifecycle of the request. Implementors should free up any resources they have opened.