forked from ebhomengo/niki
36 lines
1.4 KiB
Go
36 lines
1.4 KiB
Go
package spec
|
|
|
|
// Discriminator is used when request bodies or response payloads may be one of a number of different schemas,
|
|
// a discriminator object can be used to aid in serialization, deserialization, and validation.
|
|
// The discriminator is a specific object in a schema which is used to inform the consumer of the document of
|
|
// an alternative schema based on the value associated with it.
|
|
// When using the discriminator, inline schemas will not be considered.
|
|
//
|
|
// https://spec.openapis.org/oas/v3.1.0#discriminator-object
|
|
//
|
|
// Example:
|
|
//
|
|
// MyResponseType:
|
|
// oneOf:
|
|
// - $ref: '#/components/schemas/Cat'
|
|
// - $ref: '#/components/schemas/Dog'
|
|
// - $ref: '#/components/schemas/Lizard'
|
|
// - $ref: 'https://gigantic-server.com/schemas/Monster/schema.json'
|
|
// discriminator:
|
|
// propertyName: petType
|
|
// mapping:
|
|
// dog: '#/components/schemas/Dog'
|
|
// monster: 'https://gigantic-server.com/schemas/Monster/schema.json'
|
|
type Discriminator struct {
|
|
// An object to hold mappings between payload values and schema names or references.
|
|
Mapping map[string]string `json:"mapping,omitempty" yaml:"mapping,omitempty"`
|
|
// REQUIRED.
|
|
// The name of the property in the payload that will hold the discriminator value.
|
|
PropertyName string `json:"propertyName" yaml:"propertyName"`
|
|
}
|
|
|
|
// NewDiscriminator creates Discriminator object.
|
|
func NewDiscriminator() *Discriminator {
|
|
return &Discriminator{}
|
|
}
|