forked from SimplesIP/pabx-app
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
692 lines
26 KiB
692 lines
26 KiB
{ |
|
"_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", |
|
"_author": "David M. Lee, II <dlee@digium.com>", |
|
"_svn_revision": "$Revision$", |
|
"apiVersion": "1.10.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/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" |
|
} |
|
} |
|
}, |
|
"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." |
|
} |
|
} |
|
} |
|
} |
|
}
|
|
|