Files
asterisk/rest-api/api-docs/asterisk.json
Benjamin Ford f64f1c2772 ARI: Added new functionality to unload a single module.
An http request can be sent to unload an Asterisk module. If the
module can not be unloaded or is already unloaded, an error response
will be returned.

The command "curl -v -u user:pass -X DELETE 'http://localhost:8088
/ari/asterisk/modules/{moduleName}'" (or something similar, depending
on configuration) can be run in the terminal to access this new
functionality.

For more information, see:
https://wiki.asterisk.org/wiki.display/~bford/Asterisk+ARI+Resource

* Added new ARI functionality
* Asterisk modules can be unloaded through http requests

ASTERISK-25173

Change-Id: I535a95f5676deb02651522761ecbdc0b00b5ac57
2015-07-14 08:59:27 -05:00

383 lines
8.6 KiB
JSON

{
"_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.",
"_author": "David M. Lee, II <dlee@digium.com>",
"_svn_revision": "$Revision$",
"apiVersion": "1.7.0",
"swaggerVersion": "1.1",
"basePath": "http://localhost:8088/ari",
"resourcePath": "/api-docs/asterisk.{format}",
"apis": [
{
"path": "/asterisk/info",
"description": "Asterisk system information (similar to core show settings)",
"operations": [
{
"httpMethod": "GET",
"summary": "Gets Asterisk system information.",
"nickname": "getInfo",
"responseClass": "AsteriskInfo",
"parameters": [
{
"name": "only",
"description": "Filter information returned",
"paramType": "query",
"required": false,
"allowMultiple": true,
"dataType": "string",
"allowableValues": {
"valueType": "LIST",
"values": [
"build",
"system",
"config",
"status"
]
}
}
]
}
]
},
{
"path": "/asterisk/modules",
"description": "Asterisk modules",
"operations": [
{
"httpMethod": "GET",
"summary": "List Asterisk modules.",
"nickname": "listModules",
"responseClass": "List[Module]"
}
]
},
{
"path": "/asterisk/modules/{moduleName}",
"description": "Asterisk module",
"operations": [
{
"httpMethod": "GET",
"summary": "Get Asterisk module information.",
"nickname": "getModule",
"responseClass": "Module",
"parameters": [
{
"name": "moduleName",
"description": "Module's name",
"paramType": "path",
"required": true,
"allowMultiple": false,
"dataType": "string"
}
],
"errorResponses": [
{
"code": 404,
"reason": "Module could not be found in running modules."
},
{
"code": 409,
"reason": "Module information could not be retrieved."
}
]
},
{
"httpMethod": "POST",
"summary": "Load an Asterisk module.",
"nickname": "loadModule",
"responseClass": "void",
"parameters": [
{
"name": "moduleName",
"description": "Module's name",
"paramType": "path",
"required": true,
"allowMultiple": false,
"dataType": "string"
}
],
"errorResponses": [
{
"code": 409,
"reason": "Module could not be loaded."
}
]
},
{
"httpMethod": "DELETE",
"summary": "Unload an Asterisk module.",
"nickname": "unloadModule",
"responseClass": "void",
"parameters": [
{
"name": "moduleName",
"description": "Module's name",
"paramType": "path",
"required": true,
"allowMultiple": false,
"dataType": "string"
}
],
"errorResponses": [
{
"code": 404,
"reason": "Module not found in running modules."
},
{
"code": 409,
"reason": "Module could not be unloaded."
}
]
}
]
},
{
"path": "/asterisk/variable",
"description": "Global variables",
"operations": [
{
"httpMethod": "GET",
"summary": "Get the value of a global variable.",
"nickname": "getGlobalVar",
"responseClass": "Variable",
"parameters": [
{
"name": "variable",
"description": "The variable to get",
"paramType": "query",
"required": true,
"allowMultiple": false,
"dataType": "string"
}
],
"errorResponses": [
{
"code": 400,
"reason": "Missing variable parameter."
}
]
},
{
"httpMethod": "POST",
"summary": "Set the value of a global variable.",
"nickname": "setGlobalVar",
"responseClass": "void",
"parameters": [
{
"name": "variable",
"description": "The variable to set",
"paramType": "query",
"required": true,
"allowMultiple": false,
"dataType": "string"
},
{
"name": "value",
"description": "The value to set the variable to",
"paramType": "query",
"required": false,
"allowMultiple": false,
"dataType": "string"
}
],
"errorResponses": [
{
"code": 400,
"reason": "Missing variable parameter."
}
]
}
]
}
],
"models": {
"BuildInfo": {
"id": "BuildInfo",
"description": "Info about how Asterisk was built",
"properties": {
"os": {
"required": true,
"type": "string",
"description": "OS Asterisk was built on."
},
"kernel": {
"required": true,
"type": "string",
"description": "Kernel version Asterisk was built on."
},
"options": {
"required": true,
"type": "string",
"description": "Compile time options, or empty string if default."
},
"machine": {
"required": true,
"type": "string",
"description": "Machine architecture (x86_64, i686, ppc, etc.)"
},
"date": {
"required": true,
"type": "string",
"description": "Date and time when Asterisk was built."
},
"user": {
"required": true,
"type": "string",
"description": "Username that build Asterisk"
}
}
},
"SystemInfo": {
"id": "SystemInfo",
"description": "Info about Asterisk",
"properties": {
"version": {
"required": true,
"type": "string",
"description": "Asterisk version."
},
"entity_id": {
"required": true,
"type": "string",
"description": ""
}
}
},
"SetId": {
"id": "SetId",
"description": "Effective user/group id",
"properties": {
"user": {
"required": true,
"type": "string",
"description": "Effective user id."
},
"group": {
"required": true,
"type": "string",
"description": "Effective group id."
}
}
},
"ConfigInfo": {
"id": "ConfigInfo",
"description": "Info about Asterisk configuration",
"properties": {
"name": {
"required": true,
"type": "string",
"description": "Asterisk system name."
},
"default_language": {
"required": true,
"type": "string",
"description": "Default language for media playback."
},
"max_channels": {
"required": false,
"type": "int",
"description": "Maximum number of simultaneous channels."
},
"max_open_files": {
"required": false,
"type": "int",
"description": "Maximum number of open file handles (files, sockets)."
},
"max_load": {
"required": false,
"type": "double",
"description": "Maximum load avg on system."
},
"setid": {
"required": true,
"type": "SetId",
"description": "Effective user/group id for running Asterisk."
}
}
},
"StatusInfo": {
"id": "StatusInfo",
"description": "Info about Asterisk status",
"properties": {
"startup_time": {
"required": true,
"type": "Date",
"description": "Time when Asterisk was started."
},
"last_reload_time": {
"required": true,
"type": "Date",
"description": "Time when Asterisk was last reloaded."
}
}
},
"AsteriskInfo": {
"id": "AsteriskInfo",
"description": "Asterisk system information",
"properties": {
"build": {
"required": false,
"type": "BuildInfo",
"description": "Info about how Asterisk was built"
},
"system": {
"required": false,
"type": "SystemInfo",
"description": "Info about the system running Asterisk"
},
"config": {
"required": false,
"type": "ConfigInfo",
"description": "Info about Asterisk configuration"
},
"status": {
"required": false,
"type": "StatusInfo",
"description": "Info about Asterisk status"
}
}
},
"Module": {
"id": "Module",
"description": "Details of an Asterisk module",
"properties": {
"name": {
"type": "string",
"description": "The name of this module",
"required": true
},
"description": {
"type": "string",
"description": "The description of this module",
"required": true
},
"use_count": {
"type": "int",
"description": "The number of times this module is being used",
"required": true
},
"status": {
"type": "string",
"description": "The running status of this module",
"required": true
},
"support_level": {
"type": "string",
"description": "The support state of this module",
"required": true
}
}
},
"Variable": {
"id": "Variable",
"description": "The value of a channel variable",
"properties": {
"value": {
"required": true,
"type": "string",
"description": "The value of the variable requested"
}
}
}
}
}