cuelang.org/go@v0.13.0/encoding/openapi/testdata/openapi-norefs.txtar (about) 1 #ExpandReferences 2 -- in.cue -- 3 // An OpenAPI testing package. 4 package openapi 5 6 $version: "v1beta2" 7 8 info: { 9 contact: url: "https://cuelang.org" 10 contact: name: "John Doe" 11 } 12 13 // MyMessage is my message. 14 #MyMessage: { 15 port?: #Port & {} @protobuf(1) 16 17 foo: #Int32 & >10 & <1000 & int32 @protobuf(2) 18 19 bar: [...string] @protobuf(3) 20 } 21 22 #MyMessage: { 23 // Field a. 24 a: 1 25 } | { 26 b: string //2: crash 27 } 28 29 #YourMessage: ({a: number} | {b: string} | {b: number}) & {a?: string} 30 31 #YourMessage2: ({a: number} | {b: number}) & 32 ({c: number} | {d: number}) & 33 ({e: number} | {f: number}) 34 35 #Msg2: {b: number} | {a: string} 36 37 #Int32: int32 38 39 #Enum: "foo" | "bar" | "baz" 40 41 #List: [...number] | *[1, 2, 3] 42 43 #DefaultStruct: #Port | *{port: 1} 44 45 #Port: { 46 port: int 47 48 obj: [...int] 49 } 50 51 -- out/TestGenerateOpenAPI/out.json -- 52 { 53 "openapi": "3.0.0", 54 "info": { 55 "contact": { 56 "url": "https://cuelang.org", 57 "name": "John Doe" 58 }, 59 "title": "An OpenAPI testing package.", 60 "version": "v1beta2" 61 }, 62 "paths": {}, 63 "components": { 64 "schemas": { 65 "DefaultStruct": { 66 "type": "object", 67 "properties": { 68 "port": {}, 69 "obj": { 70 "type": "array", 71 "items": { 72 "type": "integer" 73 } 74 } 75 }, 76 "default": { 77 "port": 1 78 }, 79 "oneOf": [ 80 { 81 "required": [ 82 "port", 83 "obj" 84 ] 85 }, 86 { 87 "required": [ 88 "port" 89 ] 90 } 91 ] 92 }, 93 "Enum": { 94 "type": "string", 95 "enum": [ 96 "foo", 97 "bar", 98 "baz" 99 ] 100 }, 101 "Int32": { 102 "type": "integer", 103 "format": "int32" 104 }, 105 "List": { 106 "type": "array", 107 "items": { 108 "type": "number" 109 }, 110 "default": [ 111 1, 112 2, 113 3 114 ] 115 }, 116 "Msg2": { 117 "type": "object", 118 "properties": { 119 "b": { 120 "type": "number" 121 }, 122 "a": { 123 "type": "string" 124 } 125 }, 126 "oneOf": [ 127 { 128 "required": [ 129 "b" 130 ] 131 }, 132 { 133 "required": [ 134 "a" 135 ] 136 } 137 ] 138 }, 139 "MyMessage": { 140 "description": "MyMessage is my message.", 141 "type": "object", 142 "required": [ 143 "foo", 144 "bar" 145 ], 146 "properties": { 147 "port": { 148 "type": "object", 149 "required": [ 150 "port", 151 "obj" 152 ], 153 "properties": { 154 "port": { 155 "type": "integer" 156 }, 157 "obj": { 158 "type": "array", 159 "items": { 160 "type": "integer" 161 } 162 } 163 } 164 }, 165 "foo": { 166 "type": "integer", 167 "minimum": 10, 168 "exclusiveMinimum": true, 169 "maximum": 1000, 170 "exclusiveMaximum": true 171 }, 172 "bar": { 173 "type": "array", 174 "items": { 175 "type": "string" 176 } 177 }, 178 "a": { 179 "description": "Field a.", 180 "type": "integer", 181 "enum": [ 182 1 183 ] 184 }, 185 "b": { 186 "type": "string" 187 } 188 }, 189 "oneOf": [ 190 { 191 "required": [ 192 "a" 193 ] 194 }, 195 { 196 "required": [ 197 "b" 198 ] 199 } 200 ] 201 }, 202 "Port": { 203 "type": "object", 204 "required": [ 205 "port", 206 "obj" 207 ], 208 "properties": { 209 "port": { 210 "type": "integer" 211 }, 212 "obj": { 213 "type": "array", 214 "items": { 215 "type": "integer" 216 } 217 } 218 } 219 }, 220 "YourMessage": { 221 "type": "object", 222 "properties": { 223 "b": {}, 224 "a": { 225 "type": "string" 226 } 227 }, 228 "oneOf": [ 229 { 230 "required": [ 231 "a" 232 ] 233 }, 234 { 235 "required": [ 236 "b" 237 ] 238 }, 239 { 240 "required": [ 241 "b" 242 ] 243 } 244 ] 245 }, 246 "YourMessage2": { 247 "type": "object", 248 "properties": { 249 "a": { 250 "type": "number" 251 }, 252 "c": { 253 "type": "number" 254 }, 255 "e": { 256 "type": "number" 257 }, 258 "f": { 259 "type": "number" 260 }, 261 "d": { 262 "type": "number" 263 }, 264 "b": { 265 "type": "number" 266 } 267 }, 268 "allOf": [ 269 { 270 "oneOf": [ 271 { 272 "required": [ 273 "a" 274 ] 275 }, 276 { 277 "required": [ 278 "b" 279 ] 280 } 281 ] 282 }, 283 { 284 "oneOf": [ 285 { 286 "required": [ 287 "c" 288 ] 289 }, 290 { 291 "required": [ 292 "d" 293 ] 294 } 295 ] 296 }, 297 { 298 "oneOf": [ 299 { 300 "required": [ 301 "e" 302 ] 303 }, 304 { 305 "required": [ 306 "f" 307 ] 308 } 309 ] 310 } 311 ] 312 } 313 } 314 } 315 }