1module None
2object q_empty
3enum QType
4    prefix QTYPE
5    member none
6    member qnull
7    member qnum
8    member qstring
9    member qdict
10    member qlist
11    member qbool
12module qapi-schema-test.json
13object TestStruct
14    member integer: int optional=False
15    member boolean: bool optional=False
16    member string: str optional=False
17object NestedEnumsOne
18    member enum1: EnumOne optional=False
19    member enum2: EnumOne optional=True
20    member enum3: EnumOne optional=False
21    member enum4: EnumOne optional=True
22enum MyEnum
23object Empty1
24object Empty2
25    base Empty1
26object q_obj_Union-base
27    member type: EnumOne optional=False
28object Union
29    base q_obj_Union-base
30    tag type
31    case value1: q_empty
32    case value2: q_empty
33    case value3: q_empty
34    case value4: q_empty
35command user_def_cmd0 Empty2 -> Empty2
36    gen=True success_response=True boxed=False oob=False preconfig=False
37enum QEnumTwo
38    prefix QENUM_TWO
39    member value1
40    member value2
41object UserDefOne
42    base UserDefZero
43    member string: str optional=False
44    member enum1: EnumOne optional=True
45enum EnumOne
46    member value1
47    member value2
48    member value3
49    member value4
50object UserDefZero
51    member integer: int optional=False
52object UserDefTwoDictDict
53    member userdef: UserDefOne optional=False
54    member string: str optional=False
55object UserDefTwoDict
56    member string1: str optional=False
57    member dict2: UserDefTwoDictDict optional=False
58    member dict3: UserDefTwoDictDict optional=True
59object UserDefTwo
60    member string0: str optional=False
61    member dict1: UserDefTwoDict optional=False
62object UserDefThree
63    member string0: str optional=False
64array UserDefOneList UserDefOne
65array UserDefTwoList UserDefTwo
66array TestStructList TestStruct
67object ForceArrays
68    member unused1: UserDefOneList optional=False
69    member unused2: UserDefTwoList optional=False
70    member unused3: TestStructList optional=False
71object UserDefA
72    member boolean: bool optional=False
73    member a_b: int optional=True
74object UserDefB
75    member intb: int optional=False
76    member a-b: bool optional=True
77object UserDefFlatUnion
78    base UserDefUnionBase
79    tag enum1
80    case value1: UserDefA
81    case value2: UserDefB
82    case value3: UserDefB
83    case value4: q_empty
84object UserDefUnionBase
85    base UserDefZero
86    member string: str optional=False
87    member enum1: EnumOne optional=False
88object q_obj_UserDefFlatUnion2-base
89    member integer: int optional=True
90    member string: str optional=False
91    member enum1: QEnumTwo optional=False
92object UserDefFlatUnion2
93    base q_obj_UserDefFlatUnion2-base
94    tag enum1
95    case value1: UserDefC
96    case value2: UserDefB
97object WrapAlternate
98    member alt: UserDefAlternate optional=False
99alternate UserDefAlternate
100    tag type
101    case udfu: UserDefFlatUnion
102    case e: EnumOne
103    case i: int
104    case n: null
105object UserDefC
106    member string1: str optional=False
107    member string2: str optional=False
108alternate AltEnumBool
109    tag type
110    case e: EnumOne
111    case b: bool
112alternate AltEnumNum
113    tag type
114    case e: EnumOne
115    case n: number
116alternate AltNumEnum
117    tag type
118    case n: number
119    case e: EnumOne
120alternate AltEnumInt
121    tag type
122    case e: EnumOne
123    case i: int
124alternate AltStrObj
125    tag type
126    case s: str
127    case o: TestStruct
128object q_obj_intList-wrapper
129    member data: intList optional=False
130object q_obj_int8List-wrapper
131    member data: int8List optional=False
132object q_obj_int16List-wrapper
133    member data: int16List optional=False
134object q_obj_int32List-wrapper
135    member data: int32List optional=False
136object q_obj_int64List-wrapper
137    member data: int64List optional=False
138object q_obj_uint8List-wrapper
139    member data: uint8List optional=False
140object q_obj_uint16List-wrapper
141    member data: uint16List optional=False
142object q_obj_uint32List-wrapper
143    member data: uint32List optional=False
144object q_obj_uint64List-wrapper
145    member data: uint64List optional=False
146object q_obj_numberList-wrapper
147    member data: numberList optional=False
148object q_obj_boolList-wrapper
149    member data: boolList optional=False
150object q_obj_strList-wrapper
151    member data: strList optional=False
152object q_obj_sizeList-wrapper
153    member data: sizeList optional=False
154object q_obj_anyList-wrapper
155    member data: anyList optional=False
156object q_obj_StatusList-wrapper
157    member data: StatusList optional=False
158enum UserDefListUnionKind
159    member integer
160    member s8
161    member s16
162    member s32
163    member s64
164    member u8
165    member u16
166    member u32
167    member u64
168    member number
169    member boolean
170    member string
171    member sizes
172    member any
173    member user
174object UserDefListUnion
175    member type: UserDefListUnionKind optional=False
176    tag type
177    case integer: q_obj_intList-wrapper
178    case s8: q_obj_int8List-wrapper
179    case s16: q_obj_int16List-wrapper
180    case s32: q_obj_int32List-wrapper
181    case s64: q_obj_int64List-wrapper
182    case u8: q_obj_uint8List-wrapper
183    case u16: q_obj_uint16List-wrapper
184    case u32: q_obj_uint32List-wrapper
185    case u64: q_obj_uint64List-wrapper
186    case number: q_obj_numberList-wrapper
187    case boolean: q_obj_boolList-wrapper
188    case string: q_obj_strList-wrapper
189    case sizes: q_obj_sizeList-wrapper
190    case any: q_obj_anyList-wrapper
191    case user: q_obj_StatusList-wrapper
192include include/sub-module.json
193command user_def_cmd None -> None
194    gen=True success_response=True boxed=False oob=False preconfig=False
195object q_obj_user_def_cmd1-arg
196    member ud1a: UserDefOne optional=False
197command user_def_cmd1 q_obj_user_def_cmd1-arg -> None
198    gen=True success_response=True boxed=False oob=False preconfig=False
199object q_obj_user_def_cmd2-arg
200    member ud1a: UserDefOne optional=False
201    member ud1b: UserDefOne optional=True
202command user_def_cmd2 q_obj_user_def_cmd2-arg -> UserDefTwo
203    gen=True success_response=True boxed=False oob=False preconfig=False
204command cmd-success-response None -> None
205    gen=True success_response=False boxed=False oob=False preconfig=False
206object q_obj_guest-get-time-arg
207    member a: int optional=False
208    member b: int optional=True
209command guest-get-time q_obj_guest-get-time-arg -> int
210    gen=True success_response=True boxed=False oob=False preconfig=False
211object q_obj_guest-sync-arg
212    member arg: any optional=False
213command guest-sync q_obj_guest-sync-arg -> any
214    gen=True success_response=True boxed=False oob=False preconfig=False
215command boxed-struct UserDefZero -> None
216    gen=True success_response=True boxed=True oob=False preconfig=False
217command boxed-union UserDefListUnion -> None
218    gen=True success_response=True boxed=True oob=False preconfig=False
219command boxed-empty Empty1 -> None
220    gen=True success_response=True boxed=True oob=False preconfig=False
221command test-flags-command None -> None
222    gen=True success_response=True boxed=False oob=True preconfig=True
223object UserDefOptions
224    member i64: intList optional=True
225    member u64: uint64List optional=True
226    member u16: uint16List optional=True
227    member i64x: int optional=True
228    member u64x: uint64 optional=True
229object EventStructOne
230    member struct1: UserDefOne optional=False
231    member string: str optional=False
232    member enum2: EnumOne optional=True
233event EVENT_A None
234    boxed=False
235event EVENT_B None
236    boxed=False
237object q_obj_EVENT_C-arg
238    member a: int optional=True
239    member b: UserDefOne optional=True
240    member c: str optional=False
241event EVENT_C q_obj_EVENT_C-arg
242    boxed=False
243object q_obj_EVENT_D-arg
244    member a: EventStructOne optional=False
245    member b: str optional=False
246    member c: str optional=True
247    member enum3: EnumOne optional=True
248event EVENT_D q_obj_EVENT_D-arg
249    boxed=False
250event EVENT_E UserDefZero
251    boxed=True
252event EVENT_F UserDefFlatUnion
253    boxed=True
254event EVENT_G Empty1
255    boxed=True
256enum __org.qemu_x-Enum
257    member __org.qemu_x-value
258object __org.qemu_x-Base
259    member __org.qemu_x-member1: __org.qemu_x-Enum optional=False
260object __org.qemu_x-Struct
261    base __org.qemu_x-Base
262    member __org.qemu_x-member2: str optional=False
263    member wchar-t: int optional=True
264object q_obj_str-wrapper
265    member data: str optional=False
266enum __org.qemu_x-Union1Kind
267    member __org.qemu_x-branch
268object __org.qemu_x-Union1
269    member type: __org.qemu_x-Union1Kind optional=False
270    tag type
271    case __org.qemu_x-branch: q_obj_str-wrapper
272alternate __org.qemu_x-Alt1
273    tag type
274    case __org.qemu_x-branch: str
275array __org.qemu_x-Union1List __org.qemu_x-Union1
276object __org.qemu_x-Struct2
277    member array: __org.qemu_x-Union1List optional=False
278object __org.qemu_x-Union2
279    base __org.qemu_x-Base
280    tag __org.qemu_x-member1
281    case __org.qemu_x-value: __org.qemu_x-Struct2
282alternate __org.qemu_x-Alt
283    tag type
284    case __org.qemu_x-branch: __org.qemu_x-Base
285event __ORG.QEMU_X-EVENT __org.qemu_x-Struct
286    boxed=False
287array __org.qemu_x-EnumList __org.qemu_x-Enum
288array __org.qemu_x-StructList __org.qemu_x-Struct
289object q_obj___org.qemu_x-command-arg
290    member a: __org.qemu_x-EnumList optional=False
291    member b: __org.qemu_x-StructList optional=False
292    member c: __org.qemu_x-Union2 optional=False
293    member d: __org.qemu_x-Alt optional=False
294command __org.qemu_x-command q_obj___org.qemu_x-command-arg -> __org.qemu_x-Union1
295    gen=True success_response=True boxed=False oob=False preconfig=False
296object TestIfStruct
297    member foo: int optional=False
298    member bar: int optional=False
299        if ['defined(TEST_IF_STRUCT_BAR)']
300    if ['defined(TEST_IF_STRUCT)']
301enum TestIfEnum
302    member foo
303    member bar
304        if ['defined(TEST_IF_ENUM_BAR)']
305    if ['defined(TEST_IF_ENUM)']
306object q_obj_TestStruct-wrapper
307    member data: TestStruct optional=False
308enum TestIfUnionKind
309    member foo
310    member union_bar
311        if ['defined(TEST_IF_UNION_BAR)']
312    if ['defined(TEST_IF_UNION) && defined(TEST_IF_STRUCT)']
313object TestIfUnion
314    member type: TestIfUnionKind optional=False
315    tag type
316    case foo: q_obj_TestStruct-wrapper
317    case union_bar: q_obj_str-wrapper
318        if ['defined(TEST_IF_UNION_BAR)']
319    if ['defined(TEST_IF_UNION) && defined(TEST_IF_STRUCT)']
320object q_obj_TestIfUnionCmd-arg
321    member union_cmd_arg: TestIfUnion optional=False
322    if ['defined(TEST_IF_UNION)']
323command TestIfUnionCmd q_obj_TestIfUnionCmd-arg -> None
324    gen=True success_response=True boxed=False oob=False preconfig=False
325    if ['defined(TEST_IF_UNION)']
326alternate TestIfAlternate
327    tag type
328    case foo: int
329    case bar: TestStruct
330        if ['defined(TEST_IF_ALT_BAR)']
331    if ['defined(TEST_IF_ALT) && defined(TEST_IF_STRUCT)']
332object q_obj_TestIfAlternateCmd-arg
333    member alt_cmd_arg: TestIfAlternate optional=False
334    if ['defined(TEST_IF_ALT)']
335command TestIfAlternateCmd q_obj_TestIfAlternateCmd-arg -> None
336    gen=True success_response=True boxed=False oob=False preconfig=False
337    if ['defined(TEST_IF_ALT)']
338object q_obj_TestIfCmd-arg
339    member foo: TestIfStruct optional=False
340    member bar: TestIfEnum optional=False
341        if ['defined(TEST_IF_CMD_BAR)']
342    if ['defined(TEST_IF_CMD)', 'defined(TEST_IF_STRUCT)']
343command TestIfCmd q_obj_TestIfCmd-arg -> UserDefThree
344    gen=True success_response=True boxed=False oob=False preconfig=False
345    if ['defined(TEST_IF_CMD)', 'defined(TEST_IF_STRUCT)']
346command TestCmdReturnDefThree None -> UserDefThree
347    gen=True success_response=True boxed=False oob=False preconfig=False
348array TestIfEnumList TestIfEnum
349    if ['defined(TEST_IF_ENUM)']
350object q_obj_TestIfEvent-arg
351    member foo: TestIfStruct optional=False
352    member bar: TestIfEnumList optional=False
353        if ['defined(TEST_IF_EVT_BAR)']
354    if ['defined(TEST_IF_EVT) && defined(TEST_IF_STRUCT)']
355event TestIfEvent q_obj_TestIfEvent-arg
356    boxed=False
357    if ['defined(TEST_IF_EVT) && defined(TEST_IF_STRUCT)']
358object FeatureStruct0
359    member foo: int optional=False
360object FeatureStruct1
361    member foo: int optional=False
362        feature deprecated
363    feature feature1
364object FeatureStruct2
365    member foo: int optional=False
366    feature feature1
367object FeatureStruct3
368    member foo: int optional=False
369    feature feature1
370    feature feature2
371object FeatureStruct4
372    member namespace-test: int optional=False
373    feature namespace-test
374    feature int
375    feature name
376    feature if
377object CondFeatureStruct1
378    member foo: int optional=False
379    feature feature1
380        if ['defined(TEST_IF_FEATURE_1)']
381object CondFeatureStruct2
382    member foo: int optional=False
383    feature feature1
384        if ['defined(TEST_IF_FEATURE_1)']
385    feature feature2
386        if ['defined(TEST_IF_FEATURE_2)']
387object CondFeatureStruct3
388    member foo: int optional=False
389    feature feature1
390        if ['defined(TEST_IF_COND_1)', 'defined(TEST_IF_COND_2)']
391enum FeatureEnum1
392    member eins
393    member zwei
394    member drei
395    feature feature1
396object q_obj_FeatureUnion1-base
397    member tag: FeatureEnum1 optional=False
398object FeatureUnion1
399    base q_obj_FeatureUnion1-base
400    tag tag
401    case eins: FeatureStruct1
402    case zwei: q_empty
403    case drei: q_empty
404    feature feature1
405alternate FeatureAlternate1
406    tag type
407    case eins: FeatureStruct1
408    feature feature1
409object q_obj_test-features0-arg
410    member fs0: FeatureStruct0 optional=False
411    member fs1: FeatureStruct1 optional=False
412    member fs2: FeatureStruct2 optional=False
413    member fs3: FeatureStruct3 optional=False
414    member fs4: FeatureStruct4 optional=False
415    member cfs1: CondFeatureStruct1 optional=False
416    member cfs2: CondFeatureStruct2 optional=False
417    member cfs3: CondFeatureStruct3 optional=False
418command test-features0 q_obj_test-features0-arg -> None
419    gen=True success_response=True boxed=False oob=False preconfig=False
420command test-command-features1 None -> None
421    gen=True success_response=True boxed=False oob=False preconfig=False
422    feature deprecated
423command test-command-features3 None -> None
424    gen=True success_response=True boxed=False oob=False preconfig=False
425    feature feature1
426    feature feature2
427command test-command-cond-features1 None -> None
428    gen=True success_response=True boxed=False oob=False preconfig=False
429    feature feature1
430        if ['defined(TEST_IF_FEATURE_1)']
431command test-command-cond-features2 None -> None
432    gen=True success_response=True boxed=False oob=False preconfig=False
433    feature feature1
434        if ['defined(TEST_IF_FEATURE_1)']
435    feature feature2
436        if ['defined(TEST_IF_FEATURE_2)']
437command test-command-cond-features3 None -> None
438    gen=True success_response=True boxed=False oob=False preconfig=False
439    feature feature1
440        if ['defined(TEST_IF_COND_1)', 'defined(TEST_IF_COND_2)']
441event TEST-EVENT-FEATURES1 None
442    boxed=False
443    feature deprecated
444module include/sub-module.json
445include sub-sub-module.json
446object SecondArrayRef
447    member s: StatusList optional=False
448module sub-sub-module.json
449array StatusList Status
450enum Status
451    member good
452    member bad
453    member ugly
454