/
servlamo
/
cue
Обзор
Документация
Войти
/
servlamo
/
cue
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
encoding/openapi/testdata/oneof.json
455 строк
15 KB
Marcel van Lohuizen
encoding/openapi: dedup conjuncts and disjuncts
02 апр 2021, 14:27
02 апр 2021, 14:27
a1903ca
Код
Авторство
О чём код?
{ "openapi": "3.0.0", "info": { "title": "OpenAPI title.", "version": "v1alpha1" }, "paths": {}, "components": { "schemas": { "Embed": { "type": "object", "properties": { "a": { "type": "integer" } }, "allOf": [ { "oneOf": [ { "not": { "anyOf": [ { "required": [ "b" ], "properties": { "b": { "$ref": "#/components/schemas/Embed.T" } } }, { "required": [ "c" ], "properties": { "c": { "type": "integer" } } } ] } }, { "required": [ "b" ], "properties": { "b": { "$ref": "#/components/schemas/Embed.T" } } }, { "required": [ "c" ], "properties": { "c": { "type": "integer" } } } ] }, { "oneOf": [ { "not": { "anyOf": [ { "required": [ "d" ], "properties": { "d": { "$ref": "#/components/schemas/Embed.T" } } }, { "required": [ "e" ], "properties": { "e": { "type": "integer" } } } ] } }, { "required": [ "d" ], "properties": { "d": { "$ref": "#/components/schemas/Embed.T" } } }, { "required": [ "e" ], "properties": { "e": { "type": "integer" } } } ] } ] }, "Embed.T": { "type": "object", "properties": { "b": { "type": "integer" } } }, "Foo": { "type": "object", "required": [ "include", "exclude", "count" ], "properties": { "include": { "$ref": "#/components/schemas/T" }, "exclude": { "type": "array", "items": { "$ref": "#/components/schemas/T" } }, "count": { "$ref": "#/components/schemas/MyInt" } } }, "Incompatible": { "type": "object", "oneOf": [ { "allOf": [ { "required": [ "shared" ], "properties": { "shared": { "type": "integer" } } }, { "not": { "anyOf": [ { "required": [ "shared", "extra1" ], "properties": { "shared": { "type": "integer" }, "extra1": { "type": "integer" } } }, { "required": [ "shared", "extra2" ], "properties": { "shared": { "type": "integer" }, "extra2": { "type": "integer" } } } ] } } ] }, { "required": [ "shared", "extra1" ], "properties": { "shared": { "type": "integer" }, "extra1": { "type": "integer" } } }, { "required": [ "shared", "extra2" ], "properties": { "shared": { "type": "integer" }, "extra2": { "type": "integer" } } } ] }, "MyInt": { "type": "integer" }, "T": { "description": "This should be dedupped.", "type": "object", "properties": { "shared": { "type": "integer" }, "shared2": { "type": "integer" } }, "allOf": [ { "required": [ "shared" ], "oneOf": [ { "not": { "anyOf": [ { "required": [ "exact" ], "properties": { "exact": { "type": "string" } } }, { "required": [ "regex" ], "properties": { "regex": { "type": "string" } } } ] } }, { "required": [ "exact" ], "properties": { "exact": { "type": "string" } } }, { "required": [ "regex" ], "properties": { "regex": { "type": "string" } } } ] }, { "oneOf": [ { "not": { "anyOf": [ { "required": [ "count" ], "properties": { "count": { "type": "integer" } } }, { "required": [ "amount" ], "properties": { "amount": { "type": "integer" } } } ] } }, { "required": [ "count" ], "properties": { "count": { "type": "integer" } } }, { "required": [ "amount" ], "properties": { "amount": { "type": "integer" } } } ], "required": [ "shared2" ] } ] }, "WithMap": { "type": "object", "oneOf": [ { "allOf": [ { "required": [ "shared" ], "properties": { "shared": { "type": "object", "additionalProperties": { "type": "integer" } } } }, { "not": { "anyOf": [ { "required": [ "shared", "extra" ], "properties": { "shared": { "type": "object", "additionalProperties": { "type": "integer" } }, "extra": { "type": "integer" } } } ] } } ] }, { "allOf": [ { "required": [ "shared", "extra" ], "properties": { "shared": { "type": "object", "additionalProperties": { "type": "integer" } }, "extra": { "type": "integer" } } }, { "not": { "anyOf": [ { "required": [ "shared" ], "properties": { "shared": { "type": "object", "additionalProperties": { "type": "integer" } } } } ] } } ] }, { "required": [ "shared", "extra" ], "properties": { "shared": { "type": "string" }, "extra": { "type": "integer" } } } ] } } } }