# spec-discriminator-defaultMapping Ensures that discriminator objects with optional `propertyName` include a `defaultMapping` field as required by the OpenAPI 3.2.0 specification. | OAS | Compatibility | | --- | --- | | 2.0 | ❌ | | 3.0 | ❌ | | 3.1 | ❌ | | 3.2 | ✅ | ```mermaid flowchart TD Root ==> Paths --> PathItem --> Operation --> RequestBody --> MediaType --> Schema --> Discriminator Operation --> Responses --> MediaType NamedSchemas --> Schema Root ==> components subgraph components NamedSchemas end style Discriminator fill:#codaf9,stroke:#0044d4,stroke-width:5px ``` ## API design principles According to the OpenAPI 3.2.0 specification, when a discriminator's `propertyName` is optional (not in the `required` array), the discriminator MUST include a `defaultMapping` field. This field specifies the schema to validate against when the discriminating property is absent or has no explicit/implicit mapping. ## Configuration | Option | Type | Description | | --- | --- | --- | | severity | string | Possible values: `off`, `warn`, `error`. Default `warn` (in `recommended` configuration). | An example configuration: ```yaml rules: spec-discriminator-defaultMapping: warn ``` ## Examples Given this configuration: ```yaml rules: spec-discriminator-defaultMapping: warn ``` Example of an **incorrect** discriminator object: ```yaml components: schemas: Base: type: object discriminator: propertyName: type mapping: a: SomeType properties: type: type: string SomeType: allOf: - $ref: '#/components/schemas/Base' ``` Example of a **correct** discriminator object: ```yaml components: schemas: Base: type: object discriminator: propertyName: type defaultMapping: DefaultType properties: type: type: string DefaultType: allOf: - $ref: '#/components/schemas/Base' ``` ## Related rules - [struct](/docs/cli/rules/common/struct) - [spec-example-values](/docs/cli/rules/oas/spec-example-values) - [spec-no-invalid-encoding-combinations](/docs/cli/rules/oas/spec-no-invalid-encoding-combinations) - [spec-no-invalid-tag-parents](/docs/cli/rules/oas/spec-no-invalid-tag-parents) ## Resources - [Rule source](https://github.com/Redocly/redocly-cli/blob/main/packages/core/src/rules/oas3/spec-discriminator-defaultMapping.ts) - [Discriminator object docs](https://redocly.com/docs/openapi-visual-reference/discriminator/)