Files
asterisk/rest-api/api-docs/asterisk.json
Matt Jordan f78a4b52b8 Bump the ARI version to 1.8.0
Due to backwards compatible changes, the ARI version should be bumped to
1.8.0 prior to the release of 13.5.0. Note that a previous patch already
bumped the version of AMI for this release.

Change-Id: I419033bfbbc0d3533a29ccb32b2981f39e0883e7
2015-07-24 13:04:41 -05:00

565 lines
13 KiB
JSON

{
"_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.",
"_author": "David M. Lee, II <dlee@digium.com>",
"_svn_revision": "$Revision$",
"apiVersion": "1.8.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/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
}
}
},
"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."
}
}
}
}
}