Files
buildx/vendor/github.com/aws/smithy-go/transport/http/protocol.go
T
2026-06-09 19:44:00 -07:00

28 lines
1.2 KiB
Go

package http
import (
"context"
"io"
"github.com/aws/smithy-go"
)
// ClientProtocol defines the interface through which client-side operation
// request/responses are (de)serialized across the wire.
//
// While a caller CAN define their own protocol, it is almost never necessary
// to do so. In practice, a generated client will utilize one of the predefined
// protocols implemented as part of the Smithy client runtime.
type ClientProtocol interface {
ID() smithy.ShapeID
SerializeRequest(context.Context, *smithy.OperationSchema, smithy.Serializable, *Request) error
DeserializeResponse(ctx context.Context, schema *smithy.OperationSchema, types *smithy.TypeRegistry, resp *Response, out smithy.Deserializable) error
// event stream APIs
HasInitialEventMessage() bool
SerializeEventMessage(schema, variant *smithy.Schema, v smithy.Serializable, w io.Writer) error
DeserializeEventMessage(schema *smithy.Schema, types *smithy.TypeRegistry, r io.Reader) (smithy.Deserializable, error)
SerializeInitialRequest(schema *smithy.Schema, v smithy.Serializable, w io.Writer) error
DeserializeInitialResponse(schema *smithy.Schema, r io.Reader, out smithy.Deserializable) error
}