asterisk/rest-api/api-docs/asterisk.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."
}
}
}
}
}