"_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.",
"_author": "David M. Lee, II <dlee@digium.com>",
"_svn_revision": "$Revision$",
- "apiVersion": "0.0.1",
+ "apiVersion": "1.7.0",
"swaggerVersion": "1.1",
- "basePath": "http://localhost:8088/stasis",
+ "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": "getAsteriskInfo",
+ "nickname": "getInfo",
"responseClass": "AsteriskInfo",
"parameters": [
{
"allowableValues": {
"valueType": "LIST",
"values": [
- "version",
- "modules",
- "uptime"
+ "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/{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": [
"allowMultiple": false,
"dataType": "string"
}
+ ],
+ "errorResponses": [
+ {
+ "code": 400,
+ "reason": "Missing variable parameter."
+ }
]
},
{
"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": {}
+ "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": {
+ "name": {
+ "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": {
- "variable": {
+ "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."
+ }
+ }
}
}
}