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 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
|
-- in.cue --
#Foo: string
#LoadBalancerSettings: {
{} | {
consistentHash: #ConsistentHashLB
b: #Foo
}
#ConsistentHashLB: {} | {
httpHeaderName: string
}
}
-- out/TestGenerateOpenAPI/out.json --
{
"openapi": "3.0.0",
"info": {
"title": "Generated by cue.",
"version": "no version"
},
"paths": {},
"components": {
"schemas": {
"Foo": {
"type": "string"
},
"LoadBalancerSettings": {
"type": "object",
"oneOf": [
{
"not": {
"anyOf": [
{
"required": [
"consistentHash",
"b"
],
"properties": {
"consistentHash": {
"$ref": "#/components/schemas/LoadBalancerSettings.ConsistentHashLB"
},
"b": {
"$ref": "#/components/schemas/Foo"
}
}
}
]
}
},
{
"required": [
"consistentHash",
"b"
],
"properties": {
"consistentHash": {
"$ref": "#/components/schemas/LoadBalancerSettings.ConsistentHashLB"
},
"b": {
"$ref": "#/components/schemas/Foo"
}
}
}
]
},
"LoadBalancerSettings.ConsistentHashLB": {
"type": "object",
"oneOf": [
{
"not": {
"anyOf": [
{
"required": [
"httpHeaderName"
],
"properties": {
"httpHeaderName": {
"type": "string"
}
}
}
]
}
},
{
"required": [
"httpHeaderName"
],
"properties": {
"httpHeaderName": {
"type": "string"
}
}
}
]
}
}
}
}
|