[
{
"namespace": "choices",
"description": "The choices API.",
"types": [
{
"id": "ChoiceType",
"type": "object",
"properties": {
"integers": {
"choices": [
{"type": "array", "items": {"type": "integer", "minimum": 0}},
{"type": "integer"}
]
},
"strings": {
"choices": [
{"type": "array", "items": {"type": "string", "minimum": 0}},
{"type": "string"}
],
"optional": true
}
}
},
{
"id": "NestedChoice",
"description": "Tests when some of the choices are choices themselves",
"choices": [
{"type": "integer"},
{"choices": [
{"type": "string"},
{"type": "boolean"}
]},
{"choices": [
{"type": "double"},
{"$ref": "ChoiceType"},
{"type": "array", "items": {"$ref": "ChoiceType"}}
]}
]
}
],
"functions": [
{
"name": "takesIntegers",
"type": "function",
"description": "Takes one or more integers.",
"parameters": [
{
"name": "nums",
"choices": [
{"type": "array", "items": {"type": "integer", "minimum": 0}},
{"type": "integer"}
]
}
],
"returns_async": {
"name": "callback",
"parameters": []
}
},
{
"name": "takesIntegersOptional",
"type": "function",
"description": "Takes one or more integers.",
"parameters": [
{
"name": "nums",
"choices": [
{"type": "array", "items": {"type": "integer", "minimum": 0}},
{"type": "integer"}
],
"optional": true
}
],
"returns_async": {
"name": "callback",
"parameters": []
}
},
{
"name": "objectWithChoices",
"type": "function",
"description": "Takes an object with one or more strings and optional integer(s).",
"parameters": [
{
"type": "object",
"name": "stringInfo",
"properties": {
"strings": {
"description": "One or more tab indices to highlight.",
"choices": [
{"type": "array", "items": {"type": "string", "minimum": 0}},
{"type": "string"}
]
},
"integers": {
"description": "One or more tab indices to highlight.",
"choices": [
{"type": "array", "items": {"type": "integer", "minimum": 0}},
{"type": "integer"}
],
"optional": true
}
}
}
],
"returns_async": {
"name": "callback",
"parameters": []
}
},
{
"name": "returnChoices",
"type": "function",
"description": "Gives back a string. Or not.",
"parameters": [],
"returns_async": {
"name": "callback",
"parameters": [
{
"name": "result",
"choices": [
{"type": "array", "items": {"type": "integer", "minimum": 0}},
{"type": "integer"}
],
"description": "Some integers."
}
]
}
},
{
"name": "returnMultipleChoices",
"type": "function",
"description": "Gives back two values where each is an integer or a list of integers.",
"parameters": [],
"returns_async": {
"name": "callback",
"does_not_support_promises": "Multi-parameter callback for test",
"parameters": [
{
"name": "firstResult",
"choices": [
{"type": "array", "items": {"type": "integer", "minimum": 0}},
{"type": "integer"}
],
"description": "Some integers."
},
{
"name": "secondResult",
"choices": [
{"type": "array", "items": {"type": "integer", "minimum": 0}},
{"type": "integer"}
],
"description": "Some integers."
}
]
}
}
]
}
]