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]
class Object
trait Matchable
class Any

Members list

Concise view

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.

Attributes

p

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

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

Note: some interpreters ignore this setting.

Note: some interpreters ignore this setting.

Attributes

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.

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

Attributes

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.

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

Note: some interpreters ignore this setting.

Note: some interpreters ignore this setting.

Attributes

d

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

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

Note: some interpreters ignore this setting.

Note: some interpreters ignore this setting.

Attributes

d

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

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

Note: some interpreters ignore this setting.

Note: some interpreters ignore this setting.

Attributes

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.

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 .maps or .mapDecodes 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 .mapping 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 .mapping 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