[
{
"namespace": "simple_api",
"description": "This is a simple API.",
"types": [
{
"id": "TestEnum",
"type": "string",
"enum": ["one", "two", "three"]
},
{
"id": "3D",
"type": "string",
"enum": ["yes", "no"]
},
{
"id": "TestType",
"type": "object",
"properties": {
"string": {
"type": "string",
"description": "Some string."
},
"boolean": {
"type": "boolean",
"description": "Some boolean."
},
"number": {
"type": "number",
"description": "Some double."
},
"integer": {
"type": "integer",
"description": "Some integer."
},
"object": {
"type": "object",
"optional": true,
"properties": {
"foo": {
"type": "integer"
}
}
},
"array": {
"type": "array",
"optional": true,
"items": {
"type": "string"
}
},
"opt_external_enum": {
"optional": true,
"$ref": "enums.Enumeration"
}
}
}
],
"manifest_keys": {
"key_string": {
"type": "string",
"description": "String key."
},
"key_ref": {
"$ref": "TestType",
"description": "Reference key"
},
"key_obj": {
"type": "object",
"optional": true,
"properties": {
"obj_string": {
"type": "string"
},
"obj_bool": {
"type": "boolean"
},
"obj_optional_enum_array": {
"optional": true,
"type": "array",
"items": {
"$ref": "enums.Enumeration"
}
}
}
},
"key_enum": {
"$ref": "TestEnum"
},
"key_enum_array": {
"type": "array",
"items": {
"$ref": "TestEnum"
}
},
"3d_key": {
"optional": true,
"$ref": "3D"
}
},
"functions": [
{
"name": "incrementInteger",
"type": "function",
"description": "Increments the given integer.",
"parameters": [
{
"name": "num",
"type": "integer"
}
],
"returns_async": {
"name": "callback",
"parameters": [
{
"name": "result",
"type": "integer",
"description": "The incremented value."
}
]
}
},
{
"name": "optionalString",
"type": "function",
"description": "Takes a string. Or not.",
"parameters": [
{
"name": "str",
"type": "string",
"optional": true
}
],
"returns_async": {
"name": "callback",
"parameters": []
}
},
{
"name": "optionalBeforeRequired",
"type": "function",
"description": "Takes an optional parameter followed by a required one.",
"parameters": [
{
"name": "first",
"type": "string",
"optional": true
},
{
"name": "second",
"type": "string"
}
],
"returns_async": {
"name": "callback",
"parameters": []
}
},
{
"name": "requiredFunctionParameter",
"type": "function",
"description": "Takes a required function parameter which is not a trailing callback.",
"parameters": [
{
"name": "functionParameter",
"type": "function",
"parameters": []
},
{
"name": "second",
"type": "string"
}
]
},
{
"name": "optionalCallbackParams",
"type": "function",
"description": "Gives back a string. Or not.",
"parameters": [],
"returns_async": {
"name": "callback",
"parameters": [
{
"name": "result",
"$ref": "TestType",
"description": "True if the extension has the specified permissions."
}
]
}
},
{
"name": "getTestType",
"type": "function",
"description": "Return a TestType.",
"parameters": [],
"returns_async": {
"name": "callback",
"parameters": [
{
"name": "result",
"$ref": "TestType",
"description": "A TestType."
}
]
}
}
],
"events": [
{
"name": "onIntegerFired",
"type": "function",
"description": "Fired when an integer is ready.",
"parameters": [
{
"name": "someInteger",
"type": "integer"
}
]
},
{
"name": "onStringFired",
"type": "function",
"description": "Fired when a string is ready.",
"parameters": [
{
"name": "someString",
"type": "string"
}
]
},
{
"name": "onTestTypeFired",
"type": "function",
"description": "Fired when a TestType is ready.",
"parameters": [
{
"name": "someTestType",
"$ref": "TestType"
}
]
}
]
}
]