Package

io.udash.rest

openapi

Permalink

package openapi

Visibility
  1. Public
  2. All

Type Members

  1. sealed trait AdditionalProperties extends AnyRef

    Permalink
  2. final case class Callback(byExpression: Map[String, PathItem]) extends Product with Serializable

    Permalink

    Representation of Callback Object

    Representation of Callback Object

    Annotations
    @transparent()
  3. final case class Components(schemas: Map[String, RefOr[Schema]] = Map.empty, responses: Map[String, RefOr[Response]] = Map.empty, parameters: Map[String, RefOr[Parameter]] = Map.empty, examples: Map[String, RefOr[Example]] = Map.empty, requestBodies: Map[String, RefOr[RequestBody]] = Map.empty, headers: Map[String, RefOr[Header]] = Map.empty, securitySchemes: Map[String, RefOr[SecurityScheme]] = Map.empty, links: Map[String, RefOr[Link]] = Map.empty, callbacks: Map[String, RefOr[Callback]] = Map.empty) extends Product with Serializable

    Permalink

    Representation of Components Object

  4. final case class Contact(name: com.avsystem.commons.OptArg[String] = OptArg.Empty, url: com.avsystem.commons.OptArg[String] = OptArg.Empty, email: com.avsystem.commons.OptArg[String] = OptArg.Empty) extends Product with Serializable

    Permalink

    Representation of Contact Object

  5. final class DataType extends AbstractValueEnum

    Permalink
  6. final case class Discriminator(propertyName: String, mapping: Map[String, String] = Map.empty) extends Product with Serializable

    Permalink

    Representation of Discriminator Object

  7. final case class Encoding(contentType: com.avsystem.commons.OptArg[String] = OptArg.Empty, headers: Map[String, RefOr[Header]] = Map.empty, style: com.avsystem.commons.OptArg[Style] = OptArg.Empty, explode: com.avsystem.commons.OptArg[Boolean] = OptArg.Empty, allowReserved: Boolean = false) extends Product with Serializable

    Permalink

    Representation of Encoding Object

  8. final case class Entry[K, V](key: K, value: V) extends Product with Serializable

    Permalink
  9. final case class Example(summary: com.avsystem.commons.OptArg[String] = OptArg.Empty, description: com.avsystem.commons.OptArg[String] = OptArg.Empty, value: com.avsystem.commons.OptArg[JsonValue] = OptArg.Empty, externalValue: com.avsystem.commons.OptArg[String] = OptArg.Empty) extends Product with Serializable

    Permalink

    Representation of Example Object

  10. final case class ExternalDocumentation(url: String, description: com.avsystem.commons.OptArg[String] = OptArg.Empty) extends Product with Serializable

    Permalink

    Representation of External Documentation Object

  11. final case class Header(description: com.avsystem.commons.OptArg[String] = OptArg.Empty, required: Boolean = false, deprecated: Boolean = false, allowEmptyValue: Boolean = false, style: com.avsystem.commons.OptArg[Style] = OptArg.Empty, explode: com.avsystem.commons.OptArg[Boolean] = OptArg.Empty, allowReserved: Boolean = false, schema: com.avsystem.commons.OptArg[RefOr[Schema]] = OptArg.Empty, example: com.avsystem.commons.OptArg[JsonValue] = OptArg.Empty, examples: Map[String, RefOr[Example]] = Map.empty, content: com.avsystem.commons.OptArg[Entry[String, MediaType]] = OptArg.Empty) extends Product with Serializable

    Permalink

    Representation of Header Object

  12. final case class Info(title: String, version: String, license: com.avsystem.commons.OptArg[License] = OptArg.Empty, description: com.avsystem.commons.OptArg[String] = OptArg.Empty, termsOfService: com.avsystem.commons.OptArg[String] = OptArg.Empty, contact: com.avsystem.commons.OptArg[Contact] = OptArg.Empty) extends Product with Serializable

    Permalink

    Representation of Info Object

  13. final class InliningResolver extends SchemaResolver

    Permalink
  14. final case class License(name: String, url: com.avsystem.commons.OptArg[String] = OptArg.Empty) extends Product with Serializable

    Permalink

    Representation of License Object

  15. final case class Link(operationRef: com.avsystem.commons.OptArg[String] = OptArg.Empty, operationId: com.avsystem.commons.OptArg[String] = OptArg.Empty, parameters: Map[String, JsonValue] = Map.empty, requestBody: com.avsystem.commons.OptArg[JsonValue] = OptArg.Empty, description: com.avsystem.commons.OptArg[String] = OptArg.Empty, server: com.avsystem.commons.OptArg[Server] = OptArg.Empty) extends Product with Serializable

    Permalink

    Representation of Link Object

  16. final class Location extends AbstractValueEnum

    Permalink
  17. final case class MediaType(schema: com.avsystem.commons.OptArg[RefOr[Schema]] = OptArg.Empty, example: com.avsystem.commons.OptArg[JsonValue] = OptArg.Empty, examples: Map[String, RefOr[Example]] = Map.empty, encoding: Map[String, Encoding] = Map.empty) extends Product with Serializable

    Permalink

    Representation of Media Type Object

  18. final case class OAuthFlow(scopes: Map[String, String], authorizationUrl: com.avsystem.commons.OptArg[String] = OptArg.Empty, tokenUrl: com.avsystem.commons.OptArg[String] = OptArg.Empty, refreshUrl: com.avsystem.commons.OptArg[String] = OptArg.Empty) extends Product with Serializable

    Permalink

    Representation of OAuth Flow Object

  19. final case class OAuthFlows(implicit: com.avsystem.commons.OptArg[OAuthFlow] = OptArg.Empty, password: com.avsystem.commons.OptArg[OAuthFlow] = OptArg.Empty, clientCredentials: com.avsystem.commons.OptArg[OAuthFlow] = OptArg.Empty, authorizationCode: com.avsystem.commons.OptArg[OAuthFlow] = OptArg.Empty) extends Product with Serializable

    Permalink

    Representation of OAuth Flows Object

  20. final case class OpenApi(openapi: String = OpenApi.Version, info: Info, paths: Paths, servers: List[Server] = Nil, components: com.avsystem.commons.OptArg[Components] = OptArg.Empty, security: List[SecurityRequirement] = Nil, tags: List[Tag] = Nil, externalDocs: com.avsystem.commons.OptArg[ExternalDocumentation] = OptArg.Empty) extends Product with Serializable

    Permalink

    Representation of OpenAPI Object from OpenAPI 3.0 specification.

    Representation of OpenAPI Object from OpenAPI 3.0 specification. It may be serialized to OpenAPI 3.0 compliant JSON using JsonStringOutput. This JSON can then be consumed by tools that support OpenAPI 3.0, e.g. Swagger UI.

  21. final case class OpenApiBody[T](restRequestBody: RestRequestBody[T], schemaAdjusters: List[SchemaAdjuster]) extends TypedMetadata[T] with Product with Serializable

    Permalink
  22. final case class OpenApiBodyField[T](info: OpenApiParamInfo[T], schemaAdjusters: List[SchemaAdjuster]) extends TypedMetadata[T] with Product with Serializable

    Permalink
  23. final case class OpenApiBodyOperation[T](name: String, methodTag: HttpMethodTag, operationAdjusters: List[OperationAdjuster], pathAdjusters: List[PathItemAdjuster], parameters: List[OpenApiParameter[_]], bodyFields: List[OpenApiBodyField[_]], bodyTypeTag: BodyTypeTag, resultType: RestResultType[T]) extends OpenApiOperation[T] with Product with Serializable

    Permalink
  24. final case class OpenApiCustomBodyOperation[T](name: String, methodTag: HttpMethodTag, operationAdjusters: List[OperationAdjuster], pathAdjusters: List[PathItemAdjuster], parameters: List[OpenApiParameter[_]], singleBody: OpenApiBody[_], resultType: RestResultType[T]) extends OpenApiOperation[T] with Product with Serializable

    Permalink
  25. final case class OpenApiGetOperation[T](name: String, methodTag: HttpMethodTag, operationAdjusters: List[OperationAdjuster], pathAdjusters: List[PathItemAdjuster], parameters: List[OpenApiParameter[_]], resultType: RestResultType[T]) extends OpenApiOperation[T] with Product with Serializable

    Permalink
  26. final case class OpenApiMetadata[T](prefixes: List[OpenApiPrefix[_]], gets: List[OpenApiGetOperation[_]], customBodyMethods: List[OpenApiCustomBodyOperation[_]], bodyMethods: List[OpenApiBodyOperation[_]]) extends Product with Serializable

    Permalink
    Annotations
    @implicitNotFound( ... ) @methodTag( ... ) @methodTag( ... )
  27. sealed trait OpenApiMethod[T] extends TypedMetadata[T]

    Permalink
  28. sealed trait OpenApiOperation[T] extends OpenApiMethod[T]

    Permalink
  29. final case class OpenApiParamInfo[T](name: String, whenAbsentInfo: com.avsystem.commons.Opt[WhenAbsentInfo[T]], flags: ParamFlags, restSchema: RestSchema[T]) extends TypedMetadata[T] with Product with Serializable

    Permalink
  30. final case class OpenApiParameter[T](paramTag: NonBodyTag, info: OpenApiParamInfo[T], adjusters: List[ParameterAdjuster]) extends TypedMetadata[T] with Product with Serializable

    Permalink
  31. final case class OpenApiPrefix[T](name: String, methodTag: Prefix, parameters: List[OpenApiParameter[_]], operationAdjusters: List[OperationAdjuster], pathAdjusters: List[PathItemAdjuster], operationIdPrefix: com.avsystem.commons.Opt[operationIdPrefix], result: OpenApiMetadata.Lazy[T]) extends OpenApiMethod[T] with Product with Serializable

    Permalink
  32. abstract class OpenApiServlet extends HttpServlet

    Permalink
  33. final case class Operation(tags: List[String] = Nil, summary: com.avsystem.commons.OptArg[String] = OptArg.Empty, description: com.avsystem.commons.OptArg[String] = OptArg.Empty, externalDocs: com.avsystem.commons.OptArg[ExternalDocumentation] = OptArg.Empty, operationId: com.avsystem.commons.OptArg[String] = OptArg.Empty, parameters: List[RefOr[Parameter]] = Nil, requestBody: com.avsystem.commons.OptArg[RefOr[RequestBody]] = OptArg.Empty, responses: Responses, callbacks: Map[String, RefOr[Callback]] = Map.empty, deprecated: Boolean = false, security: List[SecurityRequirement] = Nil, servers: List[Server] = Nil) extends Product with Serializable

    Permalink

    Representation of Operation Object

  34. final case class Parameter(name: String, in: Location, description: com.avsystem.commons.OptArg[String] = OptArg.Empty, required: Boolean = false, deprecated: Boolean = false, allowEmptyValue: Boolean = false, style: com.avsystem.commons.OptArg[Style] = OptArg.Empty, explode: com.avsystem.commons.OptArg[Boolean] = OptArg.Empty, allowReserved: Boolean = false, schema: com.avsystem.commons.OptArg[RefOr[Schema]] = OptArg.Empty, example: com.avsystem.commons.OptArg[JsonValue] = OptArg.Empty, examples: Map[String, RefOr[Example]] = Map.empty, content: com.avsystem.commons.OptArg[Entry[String, MediaType]] = OptArg.Empty) extends Product with Serializable

    Permalink

    Representation of Parameter Object

  35. final case class PathItem(summary: com.avsystem.commons.OptArg[String] = OptArg.Empty, description: com.avsystem.commons.OptArg[String] = OptArg.Empty, get: com.avsystem.commons.OptArg[Operation] = OptArg.Empty, put: com.avsystem.commons.OptArg[Operation] = OptArg.Empty, post: com.avsystem.commons.OptArg[Operation] = OptArg.Empty, delete: com.avsystem.commons.OptArg[Operation] = OptArg.Empty, options: com.avsystem.commons.OptArg[Operation] = OptArg.Empty, head: com.avsystem.commons.OptArg[Operation] = OptArg.Empty, patch: com.avsystem.commons.OptArg[Operation] = OptArg.Empty, trace: com.avsystem.commons.OptArg[Operation] = OptArg.Empty, servers: List[Server] = Nil, parameters: List[RefOr[Parameter]] = Nil) extends Product with Serializable

    Permalink

    Representation of Path Item Object

  36. final case class PathOperation(path: String, method: HttpMethod, operation: Operation, pathAdjusters: List[PathItemAdjuster]) extends Product with Serializable

    Permalink
  37. final case class Paths(paths: Map[String, RefOr[PathItem]]) extends Product with Serializable

    Permalink

    Representation of Paths Object

    Representation of Paths Object

    Annotations
    @transparent()
  38. sealed trait RefOr[+A] extends AnyRef

    Permalink

    Represents a value which is either some directly available, inlined value (usually one of the OpenAPI objects, e.g.

    Represents a value which is either some directly available, inlined value (usually one of the OpenAPI objects, e.g. Schema, Parameter, Operation, etc.) or a Reference Object.

  39. final case class RequestBody(description: com.avsystem.commons.OptArg[String] = OptArg.Empty, content: Map[String, MediaType], required: Boolean = false) extends Product with Serializable

    Permalink

    Representation of Request Body Object

  40. final case class Response(description: String, headers: Map[String, RefOr[Header]] = Map.empty, content: Map[String, MediaType] = Map.empty, links: Map[String, RefOr[Link]] = Map.empty) extends Product with Serializable

    Permalink

    Representation of Response Object

  41. final case class Responses(byStatusCode: Map[Int, RefOr[Response]] = Map.empty, default: com.avsystem.commons.OptArg[RefOr[Response]] = OptArg.Empty) extends Product with Serializable

    Permalink

    Representation of Responses Object

  42. trait RestMediaTypes[T] extends AnyRef

    Permalink

    Intermediate typeclass which serves as basis for RestResponses and RestRequestBody.

    Intermediate typeclass which serves as basis for RestResponses and RestRequestBody. RestMediaTypes is derived by default from RestSchema. It should be defined manually for every type which has custom serialization to HttpBody defined so that generated OpenAPI properly reflects that custom serialization format.

    Annotations
    @implicitNotFound( ... )
  43. trait RestRequestBody[T] extends AnyRef

    Permalink

    Typeclass which defines how OpenAPI RequestBody Object will look like for a Given type when that type is used as a type of Body parameter of a CustomBody method.

    Typeclass which defines how OpenAPI RequestBody Object will look like for a Given type when that type is used as a type of Body parameter of a CustomBody method. By default, RestRequestBody is derived from RestMediaTypes which by itself is derived by default from RestSchema.

    Annotations
    @implicitNotFound( ... )
  44. trait RestResponses[T] extends AnyRef

    Permalink

    Typeclass which defines how an OpenAPI Responses Object will look like for a given type.

    Typeclass which defines how an OpenAPI Responses Object will look like for a given type. By default, RestResponses is derived based on RestMediaTypes for that type which is itself derived by default from RestSchema for that type. It should be defined manually for every type which has custom serialization to RestResponse defined so that generated OpenAPI properly reflects that custom serialization format.

    Annotations
    @implicitNotFound( ... )
  45. final case class RestResultType[T](responses: (SchemaResolver) ⇒ Responses) extends Product with Serializable

    Permalink

    Just like RestResponses, RestResultType is a typeclass that defines how an OpenAPI Responses Object will look like for an HTTP method which returns given type.

    Just like RestResponses, RestResultType is a typeclass that defines how an OpenAPI Responses Object will look like for an HTTP method which returns given type. The difference between RestResultType and RestResponses is that RestResultType is defined for full result type which usually is some kind of asynchronous wrapper over actual result type (e.g. Future). In such situation, RestResponses must be provided for T while RestResultType is provided for Future[T] (or whatever async wrapper is used), based on the RestResponses instance of T. You can see an example of this in FutureRestImplicits.

    RestResultType for OpenApiMetadata is analogous to HttpResponseType for RestMetadata.

  46. trait RestSchema[T] extends AnyRef

    Permalink
    Annotations
    @implicitNotFound( "RestSchema for ${T} not found" )
  47. sealed trait RestStructure[T] extends TypedMetadata[T]

    Permalink
  48. final case class Schema(type: com.avsystem.commons.OptArg[DataType] = OptArg.Empty, format: com.avsystem.commons.OptArg[String] = OptArg.Empty, title: com.avsystem.commons.OptArg[String] = OptArg.Empty, description: com.avsystem.commons.OptArg[String] = OptArg.Empty, nullable: Boolean = false, readOnly: Boolean = false, writeOnly: Boolean = false, xml: com.avsystem.commons.OptArg[Xml] = OptArg.Empty, externalDocs: com.avsystem.commons.OptArg[ExternalDocumentation] = OptArg.Empty, deprecated: Boolean = false, multipleOf: com.avsystem.commons.OptArg[BigDecimal] = OptArg.Empty, maximum: com.avsystem.commons.OptArg[BigDecimal] = OptArg.Empty, exclusiveMaximum: Boolean = false, minimum: com.avsystem.commons.OptArg[BigDecimal] = OptArg.Empty, exclusiveMinimum: Boolean = false, maxLength: com.avsystem.commons.OptArg[Int] = OptArg.Empty, minLength: com.avsystem.commons.OptArg[Int] = OptArg.Empty, pattern: com.avsystem.commons.OptArg[String] = OptArg.Empty, items: com.avsystem.commons.OptArg[RefOr[Schema]] = OptArg.Empty, maxItems: com.avsystem.commons.OptArg[Int] = OptArg.Empty, minItems: com.avsystem.commons.OptArg[Int] = OptArg.Empty, uniqueItems: Boolean = false, properties: Map[String, RefOr[Schema]] = Map.empty, additionalProperties: AdditionalProperties = AdditionalProperties.Flag(true), maxProperties: com.avsystem.commons.OptArg[Int] = OptArg.Empty, minProperties: com.avsystem.commons.OptArg[Int] = OptArg.Empty, required: List[String] = Nil, allOf: List[RefOr[Schema]] = Nil, oneOf: List[RefOr[Schema]] = Nil, anyOf: List[RefOr[Schema]] = Nil, not: com.avsystem.commons.OptArg[RefOr[Schema]] = OptArg.Empty, discriminator: com.avsystem.commons.OptArg[Discriminator] = OptArg.Empty, enum: List[JsonValue] = Nil, default: com.avsystem.commons.OptArg[JsonValue] = OptArg.Empty, example: com.avsystem.commons.OptArg[JsonValue] = OptArg.Empty) extends Product with Serializable

    Permalink

    Representation of Schema Object

  49. final class SchemaRegistry extends SchemaResolver

    Permalink

    An implementation of SchemaResolver which registers named RestSchemas and replaces them with a Reference Object.

    An implementation of SchemaResolver which registers named RestSchemas and replaces them with a Reference Object. All the registered schemas can then be extracted and listed in the Components object.

  50. trait SchemaResolver extends AnyRef

    Permalink
  51. final case class SecurityRequirement(schemes: Map[String, List[String]]) extends Product with Serializable

    Permalink

    Representation of Security Requirement Object

    Representation of Security Requirement Object

    Annotations
    @transparent()
  52. sealed trait SecurityScheme extends AnyRef

    Permalink

    Representation of Security Scheme Object

    Representation of Security Scheme Object

    Annotations
    @flatten( "type" )
  53. final case class Server(url: String, description: com.avsystem.commons.OptArg[String] = OptArg.Empty, serverVariables: Map[String, ServerVariable] = Map.empty) extends Product with Serializable

    Permalink

    Representation of Server Object

  54. final case class ServerVariable(default: String, enum: List[String] = Nil, description: com.avsystem.commons.OptArg[String] = OptArg.Empty) extends Product with Serializable

    Permalink

    Representation of Server Variable Object

  55. final class Style extends AbstractValueEnum

    Permalink

    Representation of parameter style

  56. final case class Tag(name: String, description: com.avsystem.commons.OptArg[String] = OptArg.Empty, externalDocs: com.avsystem.commons.OptArg[ExternalDocumentation] = OptArg.Empty) extends Product with Serializable

    Permalink

    Representation of Tag Object

  57. final case class WhenAbsentInfo[T](annot: whenAbsent[T], asJson: AsRaw[JsonValue, T]) extends TypedMetadata[T] with Product with Serializable

    Permalink
  58. final case class Xml(name: com.avsystem.commons.OptArg[String] = OptArg.Empty, namespace: com.avsystem.commons.OptArg[String] = OptArg.Empty, prefix: com.avsystem.commons.OptArg[String] = OptArg.Empty, attribute: Boolean = false, wrapped: Boolean = false) extends Product with Serializable

    Permalink

    Representation of Xml Object

Value Members

  1. object AdditionalProperties

    Permalink
  2. object Callback extends HasGenObjectCodec[Callback] with Serializable

    Permalink
  3. object Components extends HasGenObjectCodec[Components] with Serializable

    Permalink
  4. object Contact extends HasGenObjectCodec[Contact] with Serializable

    Permalink
  5. object DataType extends AbstractValueEnumCompanion[DataType] with Serializable

    Permalink
  6. object Discriminator extends HasGenObjectCodec[Discriminator] with Serializable

    Permalink
  7. object Encoding extends HasGenObjectCodec[Encoding] with Serializable

    Permalink
  8. object Entry extends Serializable

    Permalink
  9. object Example extends HasGenObjectCodec[Example] with Serializable

    Permalink
  10. object ExternalDocumentation extends HasGenObjectCodec[ExternalDocumentation] with Serializable

    Permalink
  11. object Format

    Permalink
  12. object Header extends HasGenObjectCodec[Header] with Serializable

    Permalink
  13. object Info extends HasGenObjectCodec[Info] with Serializable

    Permalink
  14. object InliningResolver

    Permalink
  15. object License extends HasGenObjectCodec[License] with Serializable

    Permalink
  16. object Link extends HasGenObjectCodec[Link] with Serializable

    Permalink
  17. object Location extends AbstractValueEnumCompanion[Location] with Serializable

    Permalink
  18. object MediaType extends HasGenObjectCodec[MediaType] with Serializable

    Permalink
  19. object OAuthFlow extends HasGenObjectCodec[OAuthFlow] with Serializable

    Permalink
  20. object OAuthFlows extends HasGenObjectCodec[OAuthFlows] with Serializable

    Permalink
  21. object OpenApi extends HasGenObjectCodec[OpenApi] with Serializable

    Permalink
  22. object OpenApiMetadata extends RpcMetadataCompanion[OpenApiMetadata] with Serializable

    Permalink
  23. object OpenApiServlet extends Serializable

    Permalink
  24. object Operation extends HasGenObjectCodec[Operation] with Serializable

    Permalink
  25. object Parameter extends HasGenObjectCodec[Parameter] with Serializable

    Permalink
  26. object PathItem extends HasGenObjectCodec[PathItem] with Serializable

    Permalink
  27. object Paths extends HasGenObjectCodec[Paths] with Serializable

    Permalink
  28. object RefOr

    Permalink
  29. object RequestBody extends HasGenObjectCodec[RequestBody] with Serializable

    Permalink
  30. object Response extends HasGenObjectCodec[Response] with Serializable

    Permalink
  31. object Responses extends Serializable

    Permalink
  32. object RestMediaTypes

    Permalink
  33. object RestRequestBody

    Permalink
  34. object RestResponses

    Permalink
  35. object RestResultType extends Serializable

    Permalink
  36. object RestSchema

    Permalink
  37. object RestStructure extends AdtMetadataCompanion[RestStructure]

    Permalink
  38. object Schema extends HasGenObjectCodec[Schema] with Serializable

    Permalink
  39. object SecurityRequirement extends HasGenObjectCodec[SecurityRequirement] with Serializable

    Permalink
  40. object SecurityScheme

    Permalink
  41. object Server extends HasGenObjectCodec[Server] with Serializable

    Permalink
  42. object ServerVariable extends HasGenObjectCodec[ServerVariable] with Serializable

    Permalink
  43. object Style extends AbstractValueEnumCompanion[Style] with Serializable

    Permalink
  44. object Tag extends HasGenObjectCodec[Tag] with Serializable

    Permalink
  45. object Xml extends HasGenObjectCodec[Xml] with Serializable

    Permalink
  46. package adjusters

    Permalink

Ungrouped