com.m3.octoparts

model

package model

Visibility
  1. Public
  2. All

Type Members

  1. case class AggregateRequest(requestMeta: RequestMeta, requests: Seq[PartRequest] = Nil) extends Product with Serializable

    AggregateRequest contains RequestMeta (which contains extra, common fields like serviceId) and a sequence of PartRequests (which describe the required parts)

    AggregateRequest contains RequestMeta (which contains extra, common fields like serviceId) and a sequence of PartRequests (which describe the required parts)

    requestMeta

    RequestMeta

    requests

    List[PartRequest]

  2. case class AggregateResponse(responseMeta: ResponseMeta, responses: Seq[PartResponse] = Nil) extends Product with Serializable

    An AggregateResponse is the output result version of an AggregateRequest

    An AggregateResponse is the output result version of an AggregateRequest

    It contains ResponseMeta and a sequence of PartResponses

    responseMeta

    ResponseMeta

    responses

    PartResponse

  3. case class CacheControl(noStore: Boolean = false, noCache: Boolean = false, expiresAt: Option[Long] = None, etag: Option[String] = None, lastModified: Option[String] = None) extends Product with Serializable

    noStore

    Indicates that the response was explicitly forbidden from being stored

    noCache

    Indicates that the response must be validated

    expiresAt

    java timestamp, indicates until when the response can be used without validation

    etag

    backend-defined String to be used for validation

    lastModified

    a date. we do not parse it and use it as-is

  4. case class Cookie(name: String, value: String, httpOnly: Boolean, secure: Boolean, discard: Boolean, maxAge: Long, path: Option[String], domain: Option[String]) extends Product with Serializable

    Immutable wrapper for cookies

    Immutable wrapper for cookies

    Ideally we should handle no more than these fields

  5. case class PartRequest(partId: String, id: Option[String] = None, params: Seq[PartRequestParam] = Nil) extends Product with Serializable

    A request for a given part.

    A request for a given part. One of more of these can be combined into a single AggregateRequest.

    Note that if there is a "param" with a "body" key, it will be used as the Body of an Http Request if this part request has an Id that corresponds to an Http endpoint

    partId

    String that corresponds to a dependency part Id

    id

    if set, will be passed to the corresponding response. Useful when an AggregateRequest contains several PartRequests with the same partId

    params

    list of parameters. Several parameters can have the same key; within those, order is kept as much a can be.

  6. case class PartRequestParam(key: String, value: String) extends Product with Serializable

  7. case class PartResponse(partId: String, id: String, cookies: Seq[Cookie] = Seq.empty, statusCode: Option[Int] = None, mimeType: Option[String] = None, charset: Option[String] = None, cacheControl: CacheControl = CacheControl.NotSet, contents: Option[String] = None, warnings: Seq[String] = Nil, errors: Seq[String] = Nil, retrievedFromCache: Boolean = false) extends Product with Serializable

    partId

    same as corresponding partRequest

    id

    same as corresponding partRequest

    cookies
    statusCode
    mimeType
    charset
    cacheControl
    contents
    warnings
    errors
    retrievedFromCache

  8. case class RequestMeta(id: String, serviceId: Option[String] = None, userId: Option[String] = None, sessionId: Option[String] = None, requestUrl: Option[String] = None, userAgent: Option[String] = None, timeout: Option[FiniteDuration] = None) extends Product with Serializable

  9. case class ResponseMeta(id: String, processTime: FiniteDuration) extends Product with Serializable

Value Members

  1. object CacheControl extends Serializable

  2. object HttpMethod extends Enumeration

  3. package config

  4. package jackson

Ungrouped