1[
2  {
3    "namespace": "enums",
4    "description": "The enums API.",
5    "types": [
6      {
7        "id": "Enumeration",
8        "type": "string",
9        "enum": ["one", "two", "three"]
10      },
11      {
12        "id": "EnumType",
13        "type": "object",
14        "properties": {
15          "type": {
16            "type": "string",
17            "enum": ["one", "two", "three"]
18          }
19        }
20      },
21      {
22        "id": "HasEnumeration",
23        "type": "object",
24        "properties": {
25          "enumeration": {
26            "$ref": "Enumeration"
27          },
28          "optional_enumeration": {
29            "$ref": "Enumeration",
30            "optional": true
31          }
32        }
33      },
34      {
35        "id": "InlineAndReferenceEnum",
36        "type": "object",
37        "properties": {
38          "inline_enum": {
39            "type": "string",
40            "enum": ["test1", "test2", "test3"]
41          },
42          "reference_enum": {
43            "$ref": "Enumeration"
44          }
45        }
46      },
47      {
48        "id": "OptionalEnumType",
49        "type": "object",
50        "properties": {
51          "type": {
52            "type": "string",
53            "enum": ["one", "two", "three"],
54            "optional": true
55          }
56        }
57      }
58    ],
59    "functions": [
60      {
61        "name": "takesEnum",
62        "type": "function",
63        "description": "Takes an enum as its parameter.",
64        "parameters": [
65          {
66            "name": "state",
67            "type": "string",
68            "enum": ["foo", "bar", "baz"]
69          },
70          {
71            "name": "callback",
72            "type": "function",
73            "parameters": []
74          }
75        ]
76      },
77      {
78        "name": "takesEnumArray",
79        "type": "function",
80        "description": "Takes an enum array as its parameter.",
81        "parameters": [
82          {
83            "name": "values",
84            "type": "array",
85            "items": {
86              "type": "string",
87              "enum": ["foo", "bar", "baz"]
88            }
89          },
90          {
91            "name": "callback",
92            "type": "function",
93            "parameters": []
94          }
95        ]
96      },
97      {
98        "name": "takesEnumAsType",
99        "type": "function",
100        "description": "Takes an enum type as its parameter.",
101        "parameters": [
102          {
103            "name": "enumeration",
104            "$ref": "Enumeration"
105          },
106          {
107            "name": "callback",
108            "type": "function",
109            "parameters": []
110          }
111        ]
112      },
113      {
114        "name": "takesEnumArrayAsType",
115        "type": "function",
116        "description": "Takes an enum type array as its parameter.",
117        "parameters": [
118          {
119            "name": "values",
120            "type": "array",
121            "items": {
122              "$ref": "Enumeration"
123            }
124          },
125          {
126            "name": "callback",
127            "type": "function",
128            "parameters": []
129          }
130        ]
131      },
132      {
133        "name": "returnsEnum",
134        "type": "function",
135        "description": "Returns an enum through the callback",
136        "parameters": [
137          {
138            "name": "callback",
139            "type": "function",
140            "parameters": [
141              {
142                "name": "state",
143                "type": "string",
144                "enum": ["foo", "bar", "baz"]
145              }
146            ]
147          }
148        ]
149      },
150      {
151        "name": "returnsEnumAsType",
152        "type": "function",
153        "description": "Returns an enum through the callback",
154        "parameters": [
155          {
156            "name": "callback",
157            "type": "function",
158            "parameters": [
159              {
160                "name": "enumeration",
161                "$ref": "Enumeration"
162              }
163            ]
164          }
165        ]
166      },
167      {
168        "name": "returnsTwoEnums",
169        "type": "function",
170        "description": "Returns two enums through the callback",
171        "parameters": [
172          {
173            "name": "callback",
174            "type": "function",
175            "parameters": [
176              {
177                "name": "firstState",
178                "type": "string",
179                "enum": ["foo", "bar", "baz"]
180              },
181              {
182                "name": "secondState",
183                "type": "string",
184                "enum": ["spam", "ham", "eggs"]
185              }
186            ]
187          }
188        ]
189      },
190      {
191        "name": "takesOptionalEnum",
192        "type": "function",
193        "description": "Takes an enum as its parameter.",
194        "parameters": [
195          {
196            "name": "state",
197            "type": "string",
198            "enum": ["foo", "bar", "baz"],
199            "optional": true
200          },
201          {
202            "name": "callback",
203            "type": "function",
204            "parameters": []
205          }
206        ]
207      },
208      {
209        "name": "takesMultipleOptionalEnums",
210        "type": "function",
211        "description": "Takes two enums as parameters.",
212        "parameters": [
213          {
214            "name": "state",
215            "type": "string",
216            "enum": ["foo", "bar", "baz"],
217            "optional": true
218          },
219          {
220            "name": "type",
221            "type": "string",
222            "enum": ["foo", "ding", "dong"],
223            "optional": true
224          },
225          {
226            "name": "callback",
227            "type": "function",
228            "parameters": []
229          }
230        ]
231      }
232    ],
233    "events": [
234      {
235        "name": "onEnumFired",
236        "type": "function",
237        "description": "Fired when an enum is ready.",
238        "parameters": [
239          {
240            "name": "someEnum",
241            "type": "string",
242            "enum": ["foo", "bar", "baz"]
243          }
244        ]
245      },
246      {
247        "name": "onTwoEnumsFired",
248        "type": "function",
249        "description": "Fired when two enums are ready.",
250        "parameters": [
251          {
252            "name": "firstEnum",
253            "type": "string",
254            "enum": ["foo", "bar", "baz"]
255          },
256          {
257            "name": "secondEnum",
258            "type": "string",
259            "enum": ["spam", "ham", "eggs"]
260          }
261        ]
262      }
263    ]
264  }
265]
266