726 lines
17 KiB
JSON
726 lines
17 KiB
JSON
{
|
|
"_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.",
|
|
"_author": "David M. Lee, II <dlee@digium.com>",
|
|
"_svn_revision": "$Revision$",
|
|
"apiVersion": "2.0.0",
|
|
"swaggerVersion": "1.1",
|
|
"basePath": "http://localhost:8088/ari",
|
|
"resourcePath": "/api-docs/asterisk.{format}",
|
|
"apis": [
|
|
{
|
|
"path": "/asterisk/config/dynamic/{configClass}/{objectType}/{id}",
|
|
"description": "Asterisk dynamic configuration",
|
|
"operations": [
|
|
{
|
|
"httpMethod": "GET",
|
|
"summary": "Retrieve a dynamic configuration object.",
|
|
"nickname": "getObject",
|
|
"responseClass": "List[ConfigTuple]",
|
|
"parameters": [
|
|
{
|
|
"name": "configClass",
|
|
"description": "The configuration class containing dynamic configuration objects.",
|
|
"paramType": "path",
|
|
"required": true,
|
|
"allowMultiple": false,
|
|
"dataType": "string"
|
|
},
|
|
{
|
|
"name": "objectType",
|
|
"description": "The type of configuration object to retrieve.",
|
|
"paramType": "path",
|
|
"required": true,
|
|
"allowMultiple": false,
|
|
"dataType": "string"
|
|
},
|
|
{
|
|
"name": "id",
|
|
"description": "The unique identifier of the object to retrieve.",
|
|
"paramType": "path",
|
|
"required": true,
|
|
"allowMultiple": false,
|
|
"dataType": "string"
|
|
}
|
|
],
|
|
"errorResponses": [
|
|
{
|
|
"code": 404,
|
|
"reason": "{configClass|objectType|id} not found"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"httpMethod": "PUT",
|
|
"summary": "Create or update a dynamic configuration object.",
|
|
"nickname": "updateObject",
|
|
"responseClass": "List[ConfigTuple]",
|
|
"parameters": [
|
|
{
|
|
"name": "configClass",
|
|
"description": "The configuration class containing dynamic configuration objects.",
|
|
"paramType": "path",
|
|
"required": true,
|
|
"allowMultiple": false,
|
|
"dataType": "string"
|
|
},
|
|
{
|
|
"name": "objectType",
|
|
"description": "The type of configuration object to create or update.",
|
|
"paramType": "path",
|
|
"required": true,
|
|
"allowMultiple": false,
|
|
"dataType": "string"
|
|
},
|
|
{
|
|
"name": "id",
|
|
"description": "The unique identifier of the object to create or update.",
|
|
"paramType": "path",
|
|
"required": true,
|
|
"allowMultiple": false,
|
|
"dataType": "string"
|
|
},
|
|
{
|
|
"name": "fields",
|
|
"description": "The body object should have a value that is a list of ConfigTuples, which provide the fields to update. Ex. [ { \"attribute\": \"directmedia\", \"value\": \"false\" } ]",
|
|
"paramType": "body",
|
|
"required": false,
|
|
"dataType": "containers",
|
|
"allowMultiple": false
|
|
}
|
|
],
|
|
"errorResponses": [
|
|
{
|
|
"code": 400,
|
|
"reason": "Bad request body"
|
|
},
|
|
{
|
|
"code": 403,
|
|
"reason": "Could not create or update object"
|
|
},
|
|
{
|
|
"code": 404,
|
|
"reason": "{configClass|objectType} not found"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"httpMethod": "DELETE",
|
|
"summary": "Delete a dynamic configuration object.",
|
|
"nickname": "deleteObject",
|
|
"responseClass": "void",
|
|
"parameters": [
|
|
{
|
|
"name": "configClass",
|
|
"description": "The configuration class containing dynamic configuration objects.",
|
|
"paramType": "path",
|
|
"required": true,
|
|
"allowMultiple": false,
|
|
"dataType": "string"
|
|
},
|
|
{
|
|
"name": "objectType",
|
|
"description": "The type of configuration object to delete.",
|
|
"paramType": "path",
|
|
"required": true,
|
|
"allowMultiple": false,
|
|
"dataType": "string"
|
|
},
|
|
{
|
|
"name": "id",
|
|
"description": "The unique identifier of the object to delete.",
|
|
"paramType": "path",
|
|
"required": true,
|
|
"allowMultiple": false,
|
|
"dataType": "string"
|
|
}
|
|
],
|
|
"errorResponses": [
|
|
{
|
|
"code": 403,
|
|
"reason": "Could not delete object"
|
|
},
|
|
{
|
|
"code": 404,
|
|
"reason": "{configClass|objectType|id} not found"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"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/ping",
|
|
"description": "Asterisk ping",
|
|
"operations": [
|
|
{
|
|
"httpMethod": "GET",
|
|
"summary": "Response pong message.",
|
|
"nickname": "ping",
|
|
"responseClass": "AsteriskPing"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"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."
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"httpMethod": "PUT",
|
|
"summary": "Reload an Asterisk module.",
|
|
"nickname": "reloadModule",
|
|
"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 reloaded."
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"path": "/asterisk/logging",
|
|
"description": "Asterisk log channels",
|
|
"operations": [
|
|
{
|
|
"httpMethod": "GET",
|
|
"summary": "Gets Asterisk log channel information.",
|
|
"nickname": "listLogChannels",
|
|
"responseClass": "List[LogChannel]"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"path": "/asterisk/logging/{logChannelName}",
|
|
"description": "Asterisk log channel",
|
|
"operations": [
|
|
{
|
|
"httpMethod": "POST",
|
|
"summary": "Adds a log channel.",
|
|
"nickname": "addLog",
|
|
"responseClass": "void",
|
|
"parameters": [
|
|
{
|
|
"name": "logChannelName",
|
|
"description": "The log channel to add",
|
|
"paramType": "path",
|
|
"required": true,
|
|
"allowMultiple": false,
|
|
"dataType": "string"
|
|
},
|
|
{
|
|
"name": "configuration",
|
|
"description": "levels of the log channel",
|
|
"paramType": "query",
|
|
"required": true,
|
|
"allowMultiple": false,
|
|
"dataType": "string"
|
|
}
|
|
],
|
|
"errorResponses": [
|
|
{
|
|
"code": 400,
|
|
"reason": "Bad request body"
|
|
},
|
|
{
|
|
"code": 409,
|
|
"reason": "Log channel could not be created."
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"httpMethod": "DELETE",
|
|
"summary": "Deletes a log channel.",
|
|
"nickname": "deleteLog",
|
|
"responseClass": "void",
|
|
"parameters": [
|
|
{
|
|
"name": "logChannelName",
|
|
"description": "Log channels name",
|
|
"paramType": "path",
|
|
"required": true,
|
|
"allowMultiple": false,
|
|
"dataType": "string"
|
|
}
|
|
],
|
|
"errorResponses": [
|
|
{
|
|
"code": 404,
|
|
"reason": "Log channel does not exist."
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"path": "/asterisk/logging/{logChannelName}/rotate",
|
|
"description": "Asterisk log channel",
|
|
"operations": [
|
|
{
|
|
"httpMethod": "PUT",
|
|
"summary": "Rotates a log channel.",
|
|
"nickname": "rotateLog",
|
|
"responseClass": "void",
|
|
"parameters": [
|
|
{
|
|
"name": "logChannelName",
|
|
"description": "Log channel's name",
|
|
"paramType": "path",
|
|
"required": true,
|
|
"allowMultiple": false,
|
|
"dataType": "string"
|
|
}
|
|
],
|
|
"errorResponses": [
|
|
{
|
|
"code": 404,
|
|
"reason": "Log channel does not exist."
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"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"
|
|
}
|
|
}
|
|
},
|
|
"AsteriskPing": {
|
|
"id": "AsteriskPing",
|
|
"description": "Asterisk ping information",
|
|
"properties": {
|
|
"asterisk_id": {
|
|
"required": true,
|
|
"type": "string",
|
|
"description": "Asterisk id info"
|
|
},
|
|
"ping": {
|
|
"required": true,
|
|
"type": "string",
|
|
"description": "Always string value is pong"
|
|
},
|
|
"timestamp": {
|
|
"required": true,
|
|
"type": "string",
|
|
"description": "The timestamp string of request received time"
|
|
}
|
|
}
|
|
},
|
|
"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
|
|
}
|
|
}
|
|
},
|
|
"LogChannel": {
|
|
"id": "LogChannel",
|
|
"description": "Details of an Asterisk log channel",
|
|
"properties": {
|
|
"channel": {
|
|
"type": "string",
|
|
"description": "The log channel path",
|
|
"required": true
|
|
},
|
|
"type": {
|
|
"type": "string",
|
|
"description": "Types of logs for the log channel",
|
|
"required": true
|
|
},
|
|
"status": {
|
|
"type": "string",
|
|
"description": "Whether or not a log type is enabled",
|
|
"required": true
|
|
},
|
|
"configuration": {
|
|
"type": "string",
|
|
"description": "The various log levels",
|
|
"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"
|
|
}
|
|
}
|
|
},
|
|
"ConfigTuple": {
|
|
"id": "ConfigTuple",
|
|
"description": "A key/value pair that makes up part of a configuration object.",
|
|
"properties": {
|
|
"attribute": {
|
|
"required": true,
|
|
"type": "string",
|
|
"description": "A configuration object attribute."
|
|
},
|
|
"value": {
|
|
"required": true,
|
|
"type": "string",
|
|
"description": "The value for the attribute."
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|