-
-
Notifications
You must be signed in to change notification settings - Fork 2
Open
Description
I have a simple enumeration like this:
sealed trait Outcome extends EnumEntry with Uppercase
object Outcome extends Enum[Outcome] {
case object Approved extends Outcome
case object Denied extends Outcome
case object Review extends Outcome
case object Cancelled extends Outcome
override val values: IndexedSeq[Outcome] = findValues
def apply(name: String): Outcome = withNameInsensitive(name)
implicit val decoder: Decoder[Outcome] = Decoder.decodeString map withNameInsensitive
implicit val encoder: Encoder[Outcome] = Encoder.encodeString contramap (_.entryName)
}In the generated OpenAPI document, the type is inlined as follows:
components:
schemas:
Activity:
type: object
properties:
code:
type: string
decision:
type: string
enum:
- APPROVED
- DENIED
- REVIEW
- CANCELLED
LogEntry:
required:
- decision
- user
type: object
properties:
user:
type: string
decision:
type: string
enum:
- APPROVED
- DENIED
- REVIEW
- CANCELLEDHow can I instead make it its own type, as follows, without wrapping it in another case class?
components:
schemas:
Outcome:
type: string
enum:
- APPROVED
- DENIED
- REVIEW
- CANCELLED
Activity:
type: object
properties:
code:
type: string
decision:
$ref: '#/components/schemas/Outcome'
LogEntry:
required:
- decision
- user
type: object
properties:
user:
type: string
decision:
$ref: '#/components/schemas/Outcome'Metadata
Metadata
Assignees
Labels
No labels