module ./builtin
object q_empty
enum QType
    prefix QTYPE
    member none
    member qnull
    member qnum
    member qstring
    member qdict
    member qlist
    member qbool
module qapi-schema-test.json
object TestStruct
    member integer: int optional=False
    member boolean: bool optional=False
    member string: str optional=False
object NestedEnumsOne
    member enum1: EnumOne optional=False
    member enum2: EnumOne optional=True
    member enum3: EnumOne optional=False
    member enum4: EnumOne optional=True
enum MyEnum
object Empty1
object Empty2
    base Empty1
object q_obj_Union-base
    member type: EnumOne optional=False
object Union
    base q_obj_Union-base
    tag type
    case value1: q_empty
    case value2: q_empty
    case value3: q_empty
    case value4: q_empty
command user-def-cmd0 Empty2 -> Empty2
    gen=True success_response=True boxed=False oob=False preconfig=False
enum QEnumTwo
    prefix QENUM_TWO
    member value1
    member value2
object UserDefOne
    base UserDefZero
    member string: str optional=False
    member enum1: EnumOne optional=True
enum EnumOne
    member value1
    member value2
    member value3
    member value4
object UserDefZero
    member integer: int optional=False
object UserDefTwoDictDict
    member userdef: UserDefOne optional=False
    member string: str optional=False
object UserDefTwoDict
    member string1: str optional=False
    member dict2: UserDefTwoDictDict optional=False
    member dict3: UserDefTwoDictDict optional=True
object UserDefTwo
    member string0: str optional=False
    member dict1: UserDefTwoDict optional=False
object UserDefThree
    member string0: str optional=False
array UserDefOneList UserDefOne
array UserDefTwoList UserDefTwo
array TestStructList TestStruct
object ForceArrays
    member unused1: UserDefOneList optional=False
    member unused2: UserDefTwoList optional=False
    member unused3: TestStructList optional=False
object UserDefA
    member boolean: bool optional=False
    member a_b: int optional=True
object UserDefB
    member intb: int optional=False
    member a-b: bool optional=True
object UserDefFlatUnion
    base UserDefUnionBase
    tag enum1
    case value1: UserDefA
    case value2: UserDefB
    case value3: UserDefB
    case value4: q_empty
object UserDefUnionBase
    base UserDefZero
    member string: str optional=False
    member enum1: EnumOne optional=False
object q_obj_UserDefFlatUnion2-base
    member integer: int optional=True
    member string: str optional=False
    member enum1: QEnumTwo optional=False
object UserDefFlatUnion2
    base q_obj_UserDefFlatUnion2-base
    tag enum1
    case value1: UserDefC
    case value2: UserDefB
object WrapAlternate
    member alt: UserDefAlternate optional=False
alternate UserDefAlternate
    tag type
    case udfu: UserDefFlatUnion
    case e: EnumOne
    case i: int
    case n: null
object UserDefC
    member string1: str optional=False
    member string2: str optional=False
alternate AltEnumBool
    tag type
    case e: EnumOne
    case b: bool
alternate AltEnumNum
    tag type
    case e: EnumOne
    case n: number
alternate AltNumEnum
    tag type
    case n: number
    case e: EnumOne
alternate AltEnumInt
    tag type
    case e: EnumOne
    case i: int
alternate AltListInt
    tag type
    case l: intList
    case i: int
alternate AltStrObj
    tag type
    case s: str
    case o: TestStruct
object ArrayStruct
    member integer: intList optional=False
    member s8: int8List optional=False
    member s16: int16List optional=False
    member s32: int32List optional=False
    member s64: int64List optional=False
    member u8: uint8List optional=False
    member u16: uint16List optional=False
    member u32: uint32List optional=False
    member u64: uint64List optional=False
    member number: numberList optional=False
    member boolean: boolList optional=False
    member string: strList optional=False
    member sz: sizeList optional=True
    member any: anyList optional=True
    member user: StatusList optional=True
include include/sub-module.json
command user-def-cmd None -> None
    gen=True success_response=True boxed=False oob=False preconfig=False
object q_obj_user-def-cmd1-arg
    member ud1a: UserDefOne optional=False
command user-def-cmd1 q_obj_user-def-cmd1-arg -> None
    gen=True success_response=True boxed=False oob=False preconfig=False
object q_obj_user-def-cmd2-arg
    member ud1a: UserDefOne optional=False
    member ud1b: UserDefOne optional=True
command user-def-cmd2 q_obj_user-def-cmd2-arg -> UserDefTwo
    gen=True success_response=True boxed=False oob=False preconfig=False
command cmd-success-response None -> None
    gen=True success_response=False boxed=False oob=False preconfig=False
command coroutine-cmd None -> None
    gen=True success_response=True boxed=False oob=False preconfig=False coroutine=True
object q_obj_guest-get-time-arg
    member a: int optional=False
    member b: int optional=True
command guest-get-time q_obj_guest-get-time-arg -> int
    gen=True success_response=True boxed=False oob=False preconfig=False
object q_obj_guest-sync-arg
    member arg: any optional=False
command guest-sync q_obj_guest-sync-arg -> any
    gen=True success_response=True boxed=False oob=False preconfig=False
command boxed-struct UserDefZero -> None
    gen=True success_response=True boxed=True oob=False preconfig=False
command boxed-union UserDefFlatUnion -> None
    gen=True success_response=True boxed=True oob=False preconfig=False
command boxed-empty Empty1 -> None
    gen=True success_response=True boxed=True oob=False preconfig=False
command test-flags-command None -> None
    gen=True success_response=True boxed=False oob=True preconfig=True
object UserDefOptions
    member i64: intList optional=True
    member u64: uint64List optional=True
    member u16: uint16List optional=True
    member i64x: int optional=True
    member u64x: uint64 optional=True
object EventStructOne
    member struct1: UserDefOne optional=False
    member string: str optional=False
    member enum2: EnumOne optional=True
event EVENT_A None
    boxed=False
event EVENT_B None
    boxed=False
object q_obj_EVENT_C-arg
    member a: int optional=True
    member b: UserDefOne optional=True
    member c: str optional=False
event EVENT_C q_obj_EVENT_C-arg
    boxed=False
object q_obj_EVENT_D-arg
    member a: EventStructOne optional=False
    member b: str optional=False
    member c: str optional=True
    member enum3: EnumOne optional=True
event EVENT_D q_obj_EVENT_D-arg
    boxed=False
event EVENT_E UserDefZero
    boxed=True
event EVENT_F UserDefFlatUnion
    boxed=True
event EVENT_G Empty1
    boxed=True
enum __org.qemu_x-Enum
    member __org.qemu_x-value
object __org.qemu_x-Base
    member __org.qemu_x-member1: __org.qemu_x-Enum optional=False
object __org.qemu_x-Struct
    base __org.qemu_x-Base
    member __org.qemu_x-member2: str optional=False
    member wchar-t: int optional=True
alternate __org.qemu_x-Alt1
    tag type
    case __org.qemu_x-branch: str
array __org.qemu_x-UnionList __org.qemu_x-Union
object __org.qemu_x-Struct2
    member array: __org.qemu_x-UnionList optional=False
object __org.qemu_x-Union
    base __org.qemu_x-Base
    tag __org.qemu_x-member1
    case __org.qemu_x-value: __org.qemu_x-Struct2
alternate __org.qemu_x-Alt
    tag type
    case __org.qemu_x-branch: __org.qemu_x-Base
event __ORG.QEMU_X-EVENT __org.qemu_x-Struct
    boxed=False
array __org.qemu_x-EnumList __org.qemu_x-Enum
array __org.qemu_x-StructList __org.qemu_x-Struct
object q_obj___org.qemu_x-command-arg
    member a: __org.qemu_x-EnumList optional=False
    member b: __org.qemu_x-StructList optional=False
    member c: __org.qemu_x-Union optional=False
    member d: __org.qemu_x-Alt optional=False
command __org.qemu_x-command q_obj___org.qemu_x-command-arg -> None
    gen=True success_response=True boxed=False oob=False preconfig=False
object TestIfStruct
    member foo: int optional=False
    member bar: int optional=False
        if TEST_IF_STRUCT_BAR
    if TEST_IF_STRUCT
enum TestIfEnum
    member foo
    member bar
        if TEST_IF_ENUM_BAR
    if TEST_IF_ENUM
object q_obj_TestIfUnion-base
    member type: TestIfEnum optional=False
    if {'all': ['TEST_IF_UNION', 'TEST_IF_STRUCT']}
object TestIfUnion
    base q_obj_TestIfUnion-base
    tag type
    case foo: TestStruct
    case bar: UserDefZero
        if TEST_IF_ENUM_BAR
    if {'all': ['TEST_IF_UNION', 'TEST_IF_STRUCT']}
object q_obj_test-if-union-cmd-arg
    member union-cmd-arg: TestIfUnion optional=False
    if {'all': ['TEST_IF_UNION', 'TEST_IF_STRUCT']}
command test-if-union-cmd q_obj_test-if-union-cmd-arg -> None
    gen=True success_response=True boxed=False oob=False preconfig=False
    if {'all': ['TEST_IF_UNION', 'TEST_IF_STRUCT']}
alternate TestIfAlternate
    tag type
    case foo: int
    case bar: TestStruct
        if TEST_IF_ALT_BAR
    if {'all': ['TEST_IF_ALT', 'TEST_IF_STRUCT']}
object q_obj_test-if-alternate-cmd-arg
    member alt-cmd-arg: TestIfAlternate optional=False
    if {'all': ['TEST_IF_ALT', 'TEST_IF_STRUCT']}
command test-if-alternate-cmd q_obj_test-if-alternate-cmd-arg -> None
    gen=True success_response=True boxed=False oob=False preconfig=False
    if {'all': ['TEST_IF_ALT', 'TEST_IF_STRUCT']}
object q_obj_test-if-cmd-arg
    member foo: TestIfStruct optional=False
    member bar: TestIfEnum optional=False
        if TEST_IF_CMD_BAR
    if {'all': ['TEST_IF_CMD', 'TEST_IF_STRUCT']}
command test-if-cmd q_obj_test-if-cmd-arg -> UserDefThree
    gen=True success_response=True boxed=False oob=False preconfig=False
    if {'all': ['TEST_IF_CMD', 'TEST_IF_STRUCT']}
command test-cmd-return-def-three None -> UserDefThree
    gen=True success_response=True boxed=False oob=False preconfig=False
array TestIfEnumList TestIfEnum
    if TEST_IF_ENUM
object q_obj_TEST_IF_EVENT-arg
    member foo: TestIfStruct optional=False
    member bar: TestIfEnumList optional=False
        if TEST_IF_EVT_BAR
    if {'all': ['TEST_IF_EVT', 'TEST_IF_STRUCT']}
event TEST_IF_EVENT q_obj_TEST_IF_EVENT-arg
    boxed=False
    if {'all': ['TEST_IF_EVT', 'TEST_IF_STRUCT']}
event TEST_IF_EVENT2 None
    boxed=False
    if {'not': {'any': [{'not': 'TEST_IF_EVT'}, {'not': 'TEST_IF_STRUCT'}]}}
object FeatureStruct0
    member foo: int optional=False
object FeatureStruct1
    member foo: int optional=False
        feature deprecated
    feature feature1
object FeatureStruct2
    member foo: int optional=False
        feature unstable
    feature feature1
object FeatureStruct3
    member foo: int optional=False
    feature feature1
    feature feature2
object FeatureStruct4
    member namespace-test: int optional=False
    feature namespace-test
    feature int
    feature name
    feature if
object CondFeatureStruct1
    member foo: int optional=False
    feature feature1
        if TEST_IF_FEATURE_1
object CondFeatureStruct2
    member foo: int optional=False
    feature feature1
        if TEST_IF_FEATURE_1
    feature feature2
        if TEST_IF_FEATURE_2
object CondFeatureStruct3
    member foo: int optional=False
    feature feature1
        if {'all': ['TEST_IF_COND_1', 'TEST_IF_COND_2']}
object CondFeatureStruct4
    member foo: int optional=False
    feature feature1
        if {'any': ['TEST_IF_COND_1', 'TEST_IF_COND_2']}
enum FeatureEnum1
    member eins
    member zwei
    member drei
        feature deprecated
    feature feature1
object q_obj_FeatureUnion1-base
    member tag: FeatureEnum1 optional=False
object FeatureUnion1
    base q_obj_FeatureUnion1-base
    tag tag
    case eins: FeatureStruct1
    case zwei: q_empty
    case drei: q_empty
    feature feature1
alternate FeatureAlternate1
    tag type
    case eins: FeatureStruct1
    feature feature1
object q_obj_test-features0-arg
    member fs0: FeatureStruct0 optional=True
    member fs1: FeatureStruct1 optional=True
    member fs2: FeatureStruct2 optional=True
    member fs3: FeatureStruct3 optional=True
    member fs4: FeatureStruct4 optional=True
    member cfs1: CondFeatureStruct1 optional=True
    member cfs2: CondFeatureStruct2 optional=True
    member cfs3: CondFeatureStruct3 optional=True
    member cfs4: CondFeatureStruct4 optional=True
command test-features0 q_obj_test-features0-arg -> FeatureStruct1
    gen=True success_response=True boxed=False oob=False preconfig=False
command test-command-features1 None -> None
    gen=True success_response=True boxed=False oob=False preconfig=False
    feature deprecated
command test-command-features3 None -> None
    gen=True success_response=True boxed=False oob=False preconfig=False
    feature unstable
    feature feature1
    feature feature2
command test-command-cond-features1 None -> None
    gen=True success_response=True boxed=False oob=False preconfig=False
    feature feature1
        if TEST_IF_FEATURE_1
command test-command-cond-features2 None -> None
    gen=True success_response=True boxed=False oob=False preconfig=False
    feature feature1
        if TEST_IF_FEATURE_1
    feature feature2
        if TEST_IF_FEATURE_2
command test-command-cond-features3 None -> None
    gen=True success_response=True boxed=False oob=False preconfig=False
    feature feature1
        if {'all': ['TEST_IF_COND_1', 'TEST_IF_COND_2']}
event TEST_EVENT_FEATURES0 FeatureStruct1
    boxed=False
event TEST_EVENT_FEATURES1 None
    boxed=False
    feature deprecated
event TEST_EVENT_FEATURES2 None
    boxed=False
    feature unstable
module include/sub-module.json
include sub-sub-module.json
object SecondArrayRef
    member s: StatusList optional=False
module sub-sub-module.json
array StatusList Status
enum Status
    member good
    member bad
    member ugly
