# oasis v0.6.0 - API Reference

## Modules

- [Oasis.Controller](Oasis.Controller.md): Base on `Plug.Builder`, this module can be `use`-d into a module in order to build a plug pipeline
- [Oasis.HMACToken](Oasis.HMACToken.md): ## Callback
- [Oasis.HMACToken.Crypto](Oasis.HMACToken.Crypto.md): In general, when we define a hmac security scheme of the OpenAPI Specification,
the generated module will use this struct to define the required crypto-related
key information.

- [Oasis.Router](Oasis.Router.md): Base on `Plug.Router` to add a pre-parser to convert and validate the path param(s) in the
final generated HTTP verb match functions.
- [Oasis.Token](Oasis.Token.md): A simple wrapper of `Plug.Crypto` to provide a way to generate and verify bearer token for use
in the [bearer security scheme](https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.1.0.md#securitySchemeObject)
of the OpenAPI Specification.
- [Oasis.Token.Crypto](Oasis.Token.Crypto.md): A module to represent crypto-related key information.

- Plugs
  - [Oasis.Plug.BearerAuth](Oasis.Plug.BearerAuth.md): Functionality for providing Bearer HTTP authentication.
  - [Oasis.Plug.HMACAuth](Oasis.Plug.HMACAuth.md): Functionality for providing an HMAC HTTP authentication.
  - [Oasis.Plug.RequestValidator](Oasis.Plug.RequestValidator.md): A plug to convert types and validate the HTTP request parameters by the schemas of
the OpenAPI definition.

- Errors
  - [Oasis.BadRequestError.Invalid](Oasis.BadRequestError.Invalid.md): This error is used to indicate could not parse a parameter into the type due to client error.

  - [Oasis.BadRequestError.InvalidToken](Oasis.BadRequestError.InvalidToken.md): This error is used to indicate the provided token is expired, revoked, malformed, or invalid.

  - [Oasis.BadRequestError.JsonSchemaValidationFailed](Oasis.BadRequestError.JsonSchemaValidationFailed.md): This error is used to indicate could not pass the validation of the defined json schema.
  - [Oasis.BadRequestError.Required](Oasis.BadRequestError.Required.md): This error is used to indicate there missing a required parameter due to client error.

- Exceptions
  - [Oasis.BadRequestError](Oasis.BadRequestError.md): Error raised when some reason could not process the request due to client error.

  - [Oasis.FileNotFoundError](Oasis.FileNotFoundError.md): Error raised when use an invalid file path to generate corresponding modules.

  - [Oasis.InvalidSpecError](Oasis.InvalidSpecError.md): Error raised when use some invalid OpenAPI specification to generate corresponding modules.

## Mix Tasks

- [mix oas.gen.plug](Mix.Tasks.Oas.Gen.Plug.md): Generates router and plug handlers for a proper OpenAPI Specification in YAML or JSON file.

