1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
|
# Example from https://docs.pydantic.dev/latest/concepts/unions/#discriminated-unions
openapi: 3.1.0
components:
schemas:
Cat:
properties:
pet_type:
const: "cat"
title: "Pet Type"
meows:
title: Meows
type: integer
required:
- pet_type
- meows
title: Cat
type: object
Dog:
properties:
pet_type:
const: "dog"
title: "Pet Type"
barks:
title: Barks
type: number
required:
- pet_type
- barks
title: Dog
type: object
Lizard:
properties:
pet_type:
enum:
- reptile
- lizard
title: Pet Type
type: string
scales:
title: Scales
type: boolean
required:
- pet_type
- scales
title: Lizard
type: object
Animal:
properties:
pet:
discriminator:
mapping:
cat: '#/components/schemas/Cat'
dog: '#/components/schemas/Dog'
lizard: '#/components/schemas/Lizard'
reptile: '#/components/schemas/Lizard'
propertyName: pet_type
oneOf:
- $ref: '#/components/schemas/Cat'
- $ref: '#/components/schemas/Dog'
- $ref: '#/components/schemas/Lizard'
title: Pet
'n':
title: 'N'
type: integer
|