WebSocketBodyOutput

sttp.tapir.WebSocketBodyOutput
case class WebSocketBodyOutput[PIPE_REQ_RESP, REQ, RESP, T, S](streams: Streams[S], requests: Codec[WebSocketFrame, REQ, CodecFormat], responses: Codec[WebSocketFrame, RESP, CodecFormat], codec: Codec[PIPE_REQ_RESP, T, CodecFormat], info: Info[T], requestsInfo: Info[REQ], responsesInfo: Info[RESP], concatenateFragmentedFrames: Boolean, ignorePong: Boolean, autoPongOnPing: Boolean, decodeCloseRequests: Boolean, decodeCloseResponses: Boolean, autoPing: Option[(FiniteDuration, Ping)]) extends Atom[T]

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
trait Atom[T]
trait Basic[T]
trait EndpointTransput[T]
class Object
trait Matchable
class Any
Show all

Members list

Value members

Concrete methods

def autoPing(p: Option[(FiniteDuration, Ping)]): WebSocketBodyOutput[PIPE_REQ_RESP, REQ, RESP, T, S]

Note: some interpreters ignore this setting.

Note: some interpreters ignore this setting.

Value parameters

p

If Some, send the given Ping frame at the given interval. If None, do not automatically send pings.

Attributes

def autoPongOnPing(a: Boolean): WebSocketBodyOutput[PIPE_REQ_RESP, REQ, RESP, T, S]

Note: some interpreters ignore this setting.

Note: some interpreters ignore this setting.

Value parameters

a

If true, WebSocketFrame.Ping frames will cause a matching WebSocketFrame.Pong frame to be sent back, and won't be passed to codecs for decoding. Note that only some interpreters expose ping-pong frames.

Attributes

def concatenateFragmentedFrames(c: Boolean): WebSocketBodyOutput[PIPE_REQ_RESP, REQ, RESP, T, S]

Value parameters

c

If true, fragmented frames will be concatenated, and the data frames that the requests & responses codecs decode will always have finalFragment set to true. Note that only some interpreters expose fragmented frames.

Attributes

def decodeCloseRequests(d: Boolean): WebSocketBodyOutput[PIPE_REQ_RESP, REQ, RESP, T, S]

Note: some interpreters ignore this setting.

Note: some interpreters ignore this setting.

Value parameters

d

If true, WebSocketFrame.Close frames will be passed to the request codec for decoding (in server interpreters).

Attributes

def decodeCloseResponses(d: Boolean): WebSocketBodyOutput[PIPE_REQ_RESP, REQ, RESP, T, S]

Note: some interpreters ignore this setting.

Note: some interpreters ignore this setting.

Value parameters

d

If true, WebSocketFrame.Close frames will be passed to the response codec for decoding (in client interpreters).

Attributes

def ignorePong(i: Boolean): WebSocketBodyOutput[PIPE_REQ_RESP, REQ, RESP, T, S]

Note: some interpreters ignore this setting.

Note: some interpreters ignore this setting.

Value parameters

i

If true, WebSocketFrame.Pong frames will be ignored and won't be passed to the codecs for decoding. Note that only some interpreters expose ping-pong frames.

Attributes

def requestsDescription(d: String): ThisType[T]
def requestsExample(e: REQ): ThisType[T]
def requestsExamples(examples: List[REQ]): ThisType[T]
def requestsSchema(s: Schema[REQ]): ThisType[T]
def requestsSchema(s: Option[Schema[REQ]]): ThisType[T]
def requestsSchema(modify: (Schema[REQ]) => Schema[REQ]): ThisType[T]
def responsesDescription(d: String): ThisType[T]
def responsesExample(e: RESP): ThisType[T]
def responsesExamples(examples: List[RESP]): ThisType[T]
def responsesSchema(s: Schema[RESP]): ThisType[T]
def responsesSchema(s: Option[Schema[RESP]]): ThisType[T]
def responsesSchema(modify: (Schema[RESP]) => Schema[RESP]): ThisType[T]
override def show: String

Attributes

Definition Classes

Inherited methods

def attribute[A](k: AttributeKey[A], v: A): ThisType[T]

Attributes

Inherited from:
Atom
def attribute[A](k: AttributeKey[A]): Option[A]

Attributes

Inherited from:
Atom
def default(d: T): ThisType[T]

Attributes

Inherited from:
Atom
def deprecated(): ThisType[T]

Attributes

Inherited from:
Atom
def description(d: String): ThisType[T]

Attributes

Inherited from:
Atom
def example(example: Example[T]): ThisType[T]

Attributes

Inherited from:
Atom
def example(t: T): ThisType[T]

Attributes

Inherited from:
Atom
def examples(examples: List[Example[T]]): ThisType[T]

Attributes

Inherited from:
Atom
override def map[U](mapping: Mapping[T, U]): ThisType[U]

Attributes

Definition Classes
Inherited from:
Atom
def map[U](f: T => U)(g: U => T): ThisType[U]

Attributes

Inherited from:
EndpointTransput
def mapDecode[U](f: T => DecodeResult[U])(g: U => T): ThisType[U]

Attributes

Inherited from:
EndpointTransput
inline def mapTo[CASE_CLASS <: Product](using mc: ProductOf[CASE_CLASS]): ThisType[CASE_CLASS]

Attributes

Inherited from:
EndpointTransputMacros
def mapValidate[U](v: Validator[T])(f: T => U)(g: U => T): ThisType[U]

Adds the given validator, and maps to the given higher-level type U.

Adds the given validator, and maps to the given higher-level type U.

Unlike a .validate(v).map(f)(g) invocation, during decoding the validator is run before applying the f function. If there are validation errors, decoding fails. However, the validator is then invoked again on the fully decoded value.

This is useful to create inputs/outputs for types, which are unrepresentable unless the validator's condition is met, e.g. due to preconditions in the constructor.

Attributes

See also
Inherited from:
EndpointTransput
def productElementNames: Iterator[String]

Attributes

Inherited from:
Product
def productIterator: Iterator[Any]

Attributes

Inherited from:
Product
def schema(modify: (Schema[T]) => Schema[T]): ThisType[T]

Attributes

Inherited from:
Atom
def schema(s: Option[Schema[T]]): ThisType[T]

Attributes

Inherited from:
Atom
def schema(s: Schema[T]): ThisType[T]

Attributes

Inherited from:
Atom
def validate(v: Validator[T]): ThisType[T]

Adds a validator.

Adds a validator.

Note that validation is run on a fully decoded value. That is, during decoding, first the decoding functions are run, followed by validations. Hence any functions provided in subsequent .map s or .mapDecode s will be invoked before validation.

Attributes

See also
Inherited from:
EndpointTransput
def validateIterable[C <: (Iterable), U](v: Validator[U])(implicit tIsCU: T =:= C[U]): ThisType[T]

Adds a validator which validates each element in the collection.

Adds a validator which validates each element in the collection.

Should only be used if the schema hasn't been created by .map ping another one, but directly from Schema[U]. Otherwise the shape of the schema doesn't correspond to the type T, but to some lower-level representation of the type. This might cause invalid results at run-time.

Attributes

Inherited from:
Atom
def validateOption[U](v: Validator[U])(implicit tIsOptionU: T =:= Option[U]): ThisType[T]

Adds a validator which validates the option's element, if it is present.

Adds a validator which validates the option's element, if it is present.

Should only be used if the schema hasn't been created by .map ping another one, but directly from Schema[U]. Otherwise the shape of the schema doesn't correspond to the type T, but to some lower-level representation of the type. This might cause invalid results at run-time.

Attributes

Inherited from:
Atom