diff --git a/schemas/v3.1/meta/base.schema.json b/schemas/v3.1/meta/base.schema.json index f3ee03fb96..cb26bd09de 100644 --- a/schemas/v3.1/meta/base.schema.json +++ b/schemas/v3.1/meta/base.schema.json @@ -9,16 +9,8 @@ "type": ["object", "boolean"], "properties": { - "example": true, - "discriminator": { "$ref": "#/$defs/discriminator" }, - "externalDocs": { "$ref": "#/$defs/external-docs" }, - "xml": { "$ref": "#/$defs/xml" } - }, - "$defs": { - "extensible": { - "patternProperties": { - "^x-": true - } + "example": { + "deprecated": true }, "discriminator": { "$ref": "#/$defs/extensible", @@ -30,14 +22,15 @@ "mapping": { "type": "object", "additionalProperties": { - "type": "string" + "type": "string", + "format": "uri-reference" } } }, "required": ["propertyName"], "unevaluatedProperties": false }, - "external-docs": { + "externalDocs": { "$ref": "#/$defs/extensible", "type": "object", "properties": { @@ -75,5 +68,21 @@ }, "unevaluatedProperties": false } + }, + "dependentSchemas": { + "discriminator": { + "anyOf": [ + { "required": [ "oneOf" ] }, + { "required": [ "anyOf" ] }, + { "required": [ "allOf" ] } + ] + } + }, + "$defs": { + "extensible": { + "patternProperties": { + "^x-": true + } + } } } diff --git a/schemas/v3.1/meta/base.schema.yaml b/schemas/v3.1/meta/base.schema.yaml index 80a662a179..f5327b2d5a 100644 --- a/schemas/v3.1/meta/base.schema.yaml +++ b/schemas/v3.1/meta/base.schema.yaml @@ -1,11 +1,16 @@ --- $defs: + extensible: + patternProperties: + ^x-: true +properties: discriminator: $ref: '#/$defs/extensible' properties: mapping: additionalProperties: type: string + format: uri-reference type: object propertyName: type: string @@ -13,10 +18,9 @@ $defs: - propertyName type: object unevaluatedProperties: false - extensible: - patternProperties: - ^x-: true - external-docs: + example: + deprecated: true + externalDocs: $ref: '#/$defs/extensible' properties: description: @@ -44,19 +48,17 @@ $defs: type: boolean type: object unevaluatedProperties: false +dependentSchemas: + discriminator: + anyOf: + - required: [ oneOf ] + - required: [ anyOf ] + - required: [ allOf ] $dynamicAnchor: meta $id: https://spec.openapis.org/oas/3.1/meta/base $schema: https://json-schema.org/draft/2020-12/schema $vocabulary: https://spec.openapis.org/oas/3.1/vocab/base: true -properties: - discriminator: - $ref: '#/$defs/discriminator' - example: true - externalDocs: - $ref: '#/$defs/external-docs' - xml: - $ref: '#/$defs/xml' title: OAS Base vocabulary type: - object