Merge tag 'qemu-macppc-20230206' of https://github.com/mcayland/qemu into staging
[qemu.git] / tests / qapi-schema / doc-good.json
blob74745fb4052f5743b28a1b2ca2f566ebacca5ebf
1 # -*- Mode: Python -*-
2 # vim: filetype=python
4 # Positive QAPI doc comment tests
6 { 'pragma': { 'doc-required': true } }
8 ##
9 # = Section
11 # == Subsection
13 # *with emphasis*
14 # @var {in braces}
16 # * List item one
17 # * Two, multiple
18 #   lines
20 # * Three
21 #   Still in list
23 # Not in list
25 # - Second list
26 #   Note: still in list
28 # Note: not in list
30 # 1. Third list
31 #    is numbered
33 # 2. another item
35 # Returns: the King
36 # Since: the first age
37 # Notes:
39 # 1. Lorem ipsum dolor sit amet
41 # 2. Ut enim ad minim veniam
43 # Duis aute irure dolor
45 # Example:
47 # -> in
48 # <- out
49 # Examples:
50 # - *verbatim*
51 # - {braces}
55 # @Enum:
57 # @one: The _one_ {and only}
59 # Features:
60 # @enum-feat: Also _one_ {and only}
61 # @enum-member-feat: a member feature
63 # @two is undocumented
65 { 'enum': 'Enum',
66   'data': [ { 'name': 'one', 'if': 'IFONE',
67               'features': [ 'enum-member-feat' ] },
68             'two' ],
69   'features': [ 'enum-feat' ],
70   'if': 'IFCOND' }
73 # @Base:
75 # @base1:
76 # the first member
78 { 'struct': 'Base', 'data': { 'base1': 'Enum' },
79   'if': { 'all': ['IFALL1', 'IFALL2'] } }
82 # @Variant1:
84 # A paragraph
86 # Another paragraph (but no @var: line)
88 # Features:
89 # @variant1-feat: a feature
90 # @member-feat: a member feature
92 { 'struct': 'Variant1',
93   'features': [ 'variant1-feat' ],
94   'data': { 'var1': { 'type': 'str',
95                       'features': [ 'member-feat' ],
96                       'if': 'IFSTR' } } }
99 # @Variant2:
102 { 'struct': 'Variant2', 'data': {} }
105 # @Object:
107 # Features:
108 # @union-feat1: a feature
110 { 'union': 'Object',
111   'features': [ 'union-feat1' ],
112   'base': 'Base',
113   'discriminator': 'base1',
114   'data': { 'one': 'Variant1',
115             'two': { 'type': 'Variant2',
116                      'if': { 'any': ['IFONE', 'IFTWO'] } } } }
119 # @Alternate:
121 # @i: an integer
122 #     @b is undocumented
124 # Features:
125 # @alt-feat: a feature
127 { 'alternate': 'Alternate',
128   'features': [ 'alt-feat' ],
129   'data': { 'i': 'int', 'b': 'bool' },
130   'if': { 'not': { 'any': [ 'IFONE', 'IFTWO' ] } } }
133 # == Another subsection
137 # @cmd:
139 # @arg1: the first argument
141 # @arg2: the second
142 #        argument
144 # Features:
145 # @cmd-feat1: a feature
146 # @cmd-feat2: another feature
147 # Note: @arg3 is undocumented
148 # Returns: @Object
149 # TODO: frobnicate
150 # Notes:
152 # - Lorem ipsum dolor sit amet
153 # - Ut enim ad minim veniam
155 # Duis aute irure dolor
156 # Example:
158 # -> in
159 # <- out
160 # Examples:
161 # - *verbatim*
162 # - {braces}
163 # Since: 2.10
165 { 'command': 'cmd',
166   'data': { 'arg1': 'int', '*arg2': 'str', 'arg3': 'bool' },
167   'returns': 'Object',
168   'features': [ 'cmd-feat1', 'cmd-feat2' ] }
171 # @cmd-boxed:
172 # If you're bored enough to read this, go see a video of boxed cats
173 # Features:
174 # @cmd-feat1: a feature
175 # @cmd-feat2: another feature
176 # Example:
178 # -> in
180 # <- out
182 { 'command': 'cmd-boxed', 'boxed': true,
183   'data': 'Object',
184   'features': [ 'cmd-feat1', 'cmd-feat2' ] }
187 # @EVT_BOXED:
189 # Features:
190 # @feat3: a feature
192 { 'event': 'EVT_BOXED',  'boxed': true,
193   'features': [ 'feat3' ],
194   'data': 'Object' }