{ "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.", "_author": "David M. Lee, II ", "_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/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." } } } } }