{ | |
"openapi": "3.0.0", | |
"info": { | |
"title": "test", | |
"version": "v1" | |
}, | |
"paths": {}, | |
"components": { | |
"schemas": { | |
"MyMessage": { | |
"description": "MyMessage is my message.", | |
"type": "object", | |
"required": [ | |
"foo", | |
"bar" | |
], | |
"properties": { | |
"port": { | |
"type": "object", | |
"required": [ | |
"port", | |
"obj" | |
], | |
"properties": { | |
"port": { | |
"type": "integer" | |
}, | |
"obj": { | |
"type": "array", | |
"items": { | |
"type": "integer" | |
} | |
} | |
} | |
}, | |
"foo": { | |
"type": "number", | |
"exclusiveMinimum": 10, | |
"exclusiveMaximum": 1000 | |
}, | |
"bar": { | |
"type": "array", | |
"items": { | |
"type": "string", | |
"format": "string" | |
} | |
}, | |
"a": { | |
"description": "Field a.", | |
"type": "integer", | |
"enum": [ | |
1 | |
] | |
}, | |
"b": { | |
"type": "string", | |
"format": "string" | |
} | |
}, | |
"oneOf": [ | |
{ | |
"required": [ | |
"a" | |
] | |
}, | |
{ | |
"required": [ | |
"b" | |
] | |
} | |
] | |
}, | |
"Port": { | |
"type": "object", | |
"required": [ | |
"port", | |
"obj" | |
], | |
"properties": { | |
"port": { | |
"type": "integer" | |
}, | |
"obj": { | |
"type": "array", | |
"items": { | |
"type": "integer" | |
} | |
} | |
} | |
}, | |
"Int32": { | |
"type": "integer", | |
"format": "int32" | |
}, | |
"YourMessage": { | |
"type": "object", | |
"properties": { | |
"a": { | |
"type": "string", | |
"format": "string" | |
}, | |
"b": { | |
"format": "string" | |
} | |
}, | |
"oneOf": [ | |
{ | |
"required": [ | |
"b" | |
] | |
}, | |
{ | |
"required": [ | |
"b" | |
] | |
} | |
] | |
}, | |
"YourMessage2": { | |
"type": "object", | |
"properties": { | |
"a": { | |
"type": "number" | |
}, | |
"c": { | |
"type": "number" | |
}, | |
"e": { | |
"type": "number" | |
}, | |
"f": { | |
"type": "number" | |
}, | |
"d": { | |
"type": "number" | |
}, | |
"b": { | |
"type": "number" | |
} | |
}, | |
"allOf": [ | |
{ | |
"oneOf": [ | |
{ | |
"required": [ | |
"a" | |
] | |
}, | |
{ | |
"required": [ | |
"b" | |
] | |
} | |
] | |
}, | |
{ | |
"oneOf": [ | |
{ | |
"required": [ | |
"c" | |
] | |
}, | |
{ | |
"required": [ | |
"d" | |
] | |
} | |
] | |
}, | |
{ | |
"oneOf": [ | |
{ | |
"required": [ | |
"e" | |
] | |
}, | |
{ | |
"required": [ | |
"f" | |
] | |
} | |
] | |
} | |
] | |
}, | |
"Msg2": { | |
"type": "object", | |
"properties": { | |
"b": { | |
"type": "number" | |
}, | |
"a": { | |
"type": "string", | |
"format": "string" | |
} | |
}, | |
"oneOf": [ | |
{ | |
"required": [ | |
"b" | |
] | |
}, | |
{ | |
"required": [ | |
"a" | |
] | |
} | |
] | |
}, | |
"Enum": { | |
"type": "string", | |
"enum": [ | |
"foo", | |
"bar", | |
"baz" | |
] | |
}, | |
"List": { | |
"type": "array", | |
"items": { | |
"type": "number" | |
}, | |
"default": [ | |
1, | |
2, | |
3 | |
] | |
}, | |
"DefaultStruct": { | |
"type": "object", | |
"properties": { | |
"port": {}, | |
"obj": { | |
"type": "array", | |
"items": { | |
"type": "integer" | |
} | |
} | |
}, | |
"default": { | |
"port": 1 | |
}, | |
"oneOf": [ | |
{ | |
"required": [ | |
"port", | |
"obj" | |
] | |
}, | |
{ | |
"required": [ | |
"port" | |
] | |
} | |
] | |
} | |
} | |
} | |
} |