All Downloads are FREE. Search and download functionalities are using the official Maven repository.

software.amazon.awssdk.services.bedrockruntime.model.InvokeModelWithResponseStreamResponseHandler Maven / Gradle / Ivy

Go to download

The AWS Java SDK for Bedrock Runtime module holds the client classes that are used for communicating with Bedrock Runtime.

There is a newer version: 2.29.15
Show newest version
/*
 * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with
 * the License. A copy of the License is located at
 * 
 * http://aws.amazon.com/apache2.0
 * 
 * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
 * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions
 * and limitations under the License.
 */

package software.amazon.awssdk.services.bedrockruntime.model;

import java.util.function.Consumer;
import software.amazon.awssdk.annotations.Generated;
import software.amazon.awssdk.annotations.SdkPublicApi;
import software.amazon.awssdk.awscore.eventstream.EventStreamResponseHandler;

/**
 * Response handler for the InvokeModelWithResponseStream API.
 */
@Generated("software.amazon.awssdk:codegen")
@SdkPublicApi
public interface InvokeModelWithResponseStreamResponseHandler extends
        EventStreamResponseHandler {
    /**
     * Create a {@link Builder}, used to create a {@link InvokeModelWithResponseStreamResponseHandler}.
     */
    static Builder builder() {
        return new DefaultInvokeModelWithResponseStreamResponseHandlerBuilder();
    }

    /**
     * Builder for {@link InvokeModelWithResponseStreamResponseHandler}. This can be used to create the
     * {@link InvokeModelWithResponseStreamResponseHandler} in a more functional way, you may also directly implement
     * the {@link InvokeModelWithResponseStreamResponseHandler} interface if preferred.
     */
    @Generated("software.amazon.awssdk:codegen")
    interface Builder extends EventStreamResponseHandler.Builder {
        /**
         * Sets the subscriber to the {@link org.reactivestreams.Publisher} of events. The given {@link Visitor} will be
         * called for each event received by the publisher. Events are requested sequentially after each event is
         * processed. If you need more control over the backpressure strategy consider using
         * {@link #subscriber(java.util.function.Supplier)} instead.
         *
         * @param visitor
         *        Visitor that will be invoked for each incoming event.
         * @return This builder for method chaining
         */
        Builder subscriber(Visitor visitor);

        /**
         * @return A {@link InvokeModelWithResponseStreamResponseHandler} implementation that can be used in the
         *         InvokeModelWithResponseStream API call.
         */
        InvokeModelWithResponseStreamResponseHandler build();
    }

    /**
     * Visitor for subtypes of {@link ResponseStream}.
     */
    @Generated("software.amazon.awssdk:codegen")
    interface Visitor {
        /**
         * @return A new {@link Builder}.
         */
        static Builder builder() {
            return new DefaultInvokeModelWithResponseStreamVisitorBuilder();
        }

        /**
         * A required "else" or "default" block, invoked when no other more-specific "visit" method is appropriate. This
         * is invoked under two circumstances:
         * 
    *
  1. The event encountered is newer than the current version of the SDK, so no other more-specific "visit" * method could be called. In this case, the provided event will be a generic {@link ResponseStream}. These * events can be processed by upgrading the SDK.
  2. *
  3. The event is known by the SDK, but the "visit" was not overridden above. In this case, the provided event * will be a specific type of {@link ResponseStream}.
  4. *
* * @param event * The event that was not handled by a more-specific "visit" method. */ default void visitDefault(ResponseStream event) { } /** * Invoked when a {@link PayloadPart} is encountered. If this is not overridden, the event will be given to * {@link #visitDefault(ResponseStream)}. * * @param event * Event being visited */ default void visitChunk(PayloadPart event) { visitDefault(event); } /** * Builder for {@link Visitor}. The {@link Visitor} class may also be extended for a more traditional style but * this builder allows for a more functional way of creating a visitor will callback methods. */ @Generated("software.amazon.awssdk:codegen") interface Builder { /** * Callback to invoke when either an unknown event is visited or an unhandled event is visited. * * @param c * Callback to process the event. * @return This builder for method chaining. */ Builder onDefault(Consumer c); /** * @return Visitor implementation. */ Visitor build(); /** * Callback to invoke when a {@link PayloadPart} is visited. * * @param c * Callback to process the event. * @return This builder for method chaining. */ Builder onChunk(Consumer c); } } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy