mirror of
https://github.com/asterisk/asterisk.git
synced 2025-10-05 12:42:49 +00:00
This patch adds support for push configuration of dynamic, i.e., sorcery, objects in Asterisk. It adds three new REST API calls to the 'asterisk' resource: * GET /asterisk/{configClass}/{objectType}/{id}: retrieve the current object given its ID. This returns back a list of ConfigTuples, which define the fields and their present values that make up the object. * PUT /asterisk/{configClass}/{objectType}/{id}: create or update an object. A body may be passed with the request that contains fields to populate in the object. The same format as what is retrieved using the GET operation is used for the body, save that we specify that the list of fields to update are contained in the "fields" attribute. * DELETE /asterisk/{configClass}/{objectType}/{id}: remove a dynamic object from its backing storage. Note that the success/failure of these operations is somewhat configuration dependent, i.e., you must be using a sorcery wizard that supports the operation in question. If a sorcery wizard does not support the create or delete mechanisms, then the REST API call will fail with a 403 forbidden. ASTERISK-25238 #close Change-Id: I28cd5c7bf6f67f8e9e437ff097f8fd171d30ff5c
249 lines
8.6 KiB
C
249 lines
8.6 KiB
C
/*
|
|
* Asterisk -- An open source telephony toolkit.
|
|
*
|
|
* Copyright (C) 2012 - 2013, Digium, Inc.
|
|
*
|
|
* David M. Lee, II <dlee@digium.com>
|
|
*
|
|
* See http://www.asterisk.org for more information about
|
|
* the Asterisk project. Please do not directly contact
|
|
* any of the maintainers of this project for assistance;
|
|
* the project provides a web site, mailing lists and IRC
|
|
* channels for your use.
|
|
*
|
|
* This program is free software, distributed under the terms of
|
|
* the GNU General Public License Version 2. See the LICENSE file
|
|
* at the top of the source tree.
|
|
*/
|
|
|
|
/*! \file
|
|
*
|
|
* \brief Generated file - declares stubs to be implemented in
|
|
* res/ari/resource_asterisk.c
|
|
*
|
|
* Asterisk resources
|
|
*
|
|
* \author David M. Lee, II <dlee@digium.com>
|
|
*/
|
|
|
|
/*
|
|
* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
* !!!!! DO NOT EDIT !!!!!
|
|
* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
* This file is generated by a mustache template. Please see the original
|
|
* template in rest-api-templates/ari_resource.h.mustache
|
|
*/
|
|
|
|
#ifndef _ASTERISK_RESOURCE_ASTERISK_H
|
|
#define _ASTERISK_RESOURCE_ASTERISK_H
|
|
|
|
#include "asterisk/ari.h"
|
|
|
|
/*! Argument struct for ast_ari_asterisk_get_object() */
|
|
struct ast_ari_asterisk_get_object_args {
|
|
/*! The configuration class containing dynamic configuration objects. */
|
|
const char *config_class;
|
|
/*! The type of configuration object to retrieve. */
|
|
const char *object_type;
|
|
/*! The unique identifier of the object to retrieve. */
|
|
const char *id;
|
|
};
|
|
/*!
|
|
* \brief Retrieve a dynamic configuration object.
|
|
*
|
|
* \param headers HTTP headers
|
|
* \param args Swagger parameters
|
|
* \param[out] response HTTP response
|
|
*/
|
|
void ast_ari_asterisk_get_object(struct ast_variable *headers, struct ast_ari_asterisk_get_object_args *args, struct ast_ari_response *response);
|
|
/*! Argument struct for ast_ari_asterisk_update_object() */
|
|
struct ast_ari_asterisk_update_object_args {
|
|
/*! The configuration class containing dynamic configuration objects. */
|
|
const char *config_class;
|
|
/*! The type of configuration object to create or update. */
|
|
const char *object_type;
|
|
/*! The unique identifier of the object to create or update. */
|
|
const char *id;
|
|
/*! The body object should have a value that is a list of ConfigTuples, which provide the fields to update. Ex. [ { "attribute": "directmedia", "value": "false" } ] */
|
|
struct ast_json *fields;
|
|
};
|
|
/*!
|
|
* \brief Body parsing function for /asterisk/config/dynamic/{configClass}/{objectType}/{id}.
|
|
* \param body The JSON body from which to parse parameters.
|
|
* \param[out] args The args structure to parse into.
|
|
* \retval zero on success
|
|
* \retval non-zero on failure
|
|
*/
|
|
int ast_ari_asterisk_update_object_parse_body(
|
|
struct ast_json *body,
|
|
struct ast_ari_asterisk_update_object_args *args);
|
|
|
|
/*!
|
|
* \brief Create or update a dynamic configuration object.
|
|
*
|
|
* \param headers HTTP headers
|
|
* \param args Swagger parameters
|
|
* \param[out] response HTTP response
|
|
*/
|
|
void ast_ari_asterisk_update_object(struct ast_variable *headers, struct ast_ari_asterisk_update_object_args *args, struct ast_ari_response *response);
|
|
/*! Argument struct for ast_ari_asterisk_delete_object() */
|
|
struct ast_ari_asterisk_delete_object_args {
|
|
/*! The configuration class containing dynamic configuration objects. */
|
|
const char *config_class;
|
|
/*! The type of configuration object to delete. */
|
|
const char *object_type;
|
|
/*! The unique identifier of the object to delete. */
|
|
const char *id;
|
|
};
|
|
/*!
|
|
* \brief Delete a dynamic configuration object.
|
|
*
|
|
* \param headers HTTP headers
|
|
* \param args Swagger parameters
|
|
* \param[out] response HTTP response
|
|
*/
|
|
void ast_ari_asterisk_delete_object(struct ast_variable *headers, struct ast_ari_asterisk_delete_object_args *args, struct ast_ari_response *response);
|
|
/*! Argument struct for ast_ari_asterisk_get_info() */
|
|
struct ast_ari_asterisk_get_info_args {
|
|
/*! Array of Filter information returned */
|
|
const char **only;
|
|
/*! Length of only array. */
|
|
size_t only_count;
|
|
/*! Parsing context for only. */
|
|
char *only_parse;
|
|
};
|
|
/*!
|
|
* \brief Body parsing function for /asterisk/info.
|
|
* \param body The JSON body from which to parse parameters.
|
|
* \param[out] args The args structure to parse into.
|
|
* \retval zero on success
|
|
* \retval non-zero on failure
|
|
*/
|
|
int ast_ari_asterisk_get_info_parse_body(
|
|
struct ast_json *body,
|
|
struct ast_ari_asterisk_get_info_args *args);
|
|
|
|
/*!
|
|
* \brief Gets Asterisk system information.
|
|
*
|
|
* \param headers HTTP headers
|
|
* \param args Swagger parameters
|
|
* \param[out] response HTTP response
|
|
*/
|
|
void ast_ari_asterisk_get_info(struct ast_variable *headers, struct ast_ari_asterisk_get_info_args *args, struct ast_ari_response *response);
|
|
/*! Argument struct for ast_ari_asterisk_list_modules() */
|
|
struct ast_ari_asterisk_list_modules_args {
|
|
};
|
|
/*!
|
|
* \brief List Asterisk modules.
|
|
*
|
|
* \param headers HTTP headers
|
|
* \param args Swagger parameters
|
|
* \param[out] response HTTP response
|
|
*/
|
|
void ast_ari_asterisk_list_modules(struct ast_variable *headers, struct ast_ari_asterisk_list_modules_args *args, struct ast_ari_response *response);
|
|
/*! Argument struct for ast_ari_asterisk_get_module() */
|
|
struct ast_ari_asterisk_get_module_args {
|
|
/*! Module's name */
|
|
const char *module_name;
|
|
};
|
|
/*!
|
|
* \brief Get Asterisk module information.
|
|
*
|
|
* \param headers HTTP headers
|
|
* \param args Swagger parameters
|
|
* \param[out] response HTTP response
|
|
*/
|
|
void ast_ari_asterisk_get_module(struct ast_variable *headers, struct ast_ari_asterisk_get_module_args *args, struct ast_ari_response *response);
|
|
/*! Argument struct for ast_ari_asterisk_load_module() */
|
|
struct ast_ari_asterisk_load_module_args {
|
|
/*! Module's name */
|
|
const char *module_name;
|
|
};
|
|
/*!
|
|
* \brief Load an Asterisk module.
|
|
*
|
|
* \param headers HTTP headers
|
|
* \param args Swagger parameters
|
|
* \param[out] response HTTP response
|
|
*/
|
|
void ast_ari_asterisk_load_module(struct ast_variable *headers, struct ast_ari_asterisk_load_module_args *args, struct ast_ari_response *response);
|
|
/*! Argument struct for ast_ari_asterisk_unload_module() */
|
|
struct ast_ari_asterisk_unload_module_args {
|
|
/*! Module's name */
|
|
const char *module_name;
|
|
};
|
|
/*!
|
|
* \brief Unload an Asterisk module.
|
|
*
|
|
* \param headers HTTP headers
|
|
* \param args Swagger parameters
|
|
* \param[out] response HTTP response
|
|
*/
|
|
void ast_ari_asterisk_unload_module(struct ast_variable *headers, struct ast_ari_asterisk_unload_module_args *args, struct ast_ari_response *response);
|
|
/*! Argument struct for ast_ari_asterisk_reload_module() */
|
|
struct ast_ari_asterisk_reload_module_args {
|
|
/*! Module's name */
|
|
const char *module_name;
|
|
};
|
|
/*!
|
|
* \brief Reload an Asterisk module.
|
|
*
|
|
* \param headers HTTP headers
|
|
* \param args Swagger parameters
|
|
* \param[out] response HTTP response
|
|
*/
|
|
void ast_ari_asterisk_reload_module(struct ast_variable *headers, struct ast_ari_asterisk_reload_module_args *args, struct ast_ari_response *response);
|
|
/*! Argument struct for ast_ari_asterisk_get_global_var() */
|
|
struct ast_ari_asterisk_get_global_var_args {
|
|
/*! The variable to get */
|
|
const char *variable;
|
|
};
|
|
/*!
|
|
* \brief Body parsing function for /asterisk/variable.
|
|
* \param body The JSON body from which to parse parameters.
|
|
* \param[out] args The args structure to parse into.
|
|
* \retval zero on success
|
|
* \retval non-zero on failure
|
|
*/
|
|
int ast_ari_asterisk_get_global_var_parse_body(
|
|
struct ast_json *body,
|
|
struct ast_ari_asterisk_get_global_var_args *args);
|
|
|
|
/*!
|
|
* \brief Get the value of a global variable.
|
|
*
|
|
* \param headers HTTP headers
|
|
* \param args Swagger parameters
|
|
* \param[out] response HTTP response
|
|
*/
|
|
void ast_ari_asterisk_get_global_var(struct ast_variable *headers, struct ast_ari_asterisk_get_global_var_args *args, struct ast_ari_response *response);
|
|
/*! Argument struct for ast_ari_asterisk_set_global_var() */
|
|
struct ast_ari_asterisk_set_global_var_args {
|
|
/*! The variable to set */
|
|
const char *variable;
|
|
/*! The value to set the variable to */
|
|
const char *value;
|
|
};
|
|
/*!
|
|
* \brief Body parsing function for /asterisk/variable.
|
|
* \param body The JSON body from which to parse parameters.
|
|
* \param[out] args The args structure to parse into.
|
|
* \retval zero on success
|
|
* \retval non-zero on failure
|
|
*/
|
|
int ast_ari_asterisk_set_global_var_parse_body(
|
|
struct ast_json *body,
|
|
struct ast_ari_asterisk_set_global_var_args *args);
|
|
|
|
/*!
|
|
* \brief Set the value of a global variable.
|
|
*
|
|
* \param headers HTTP headers
|
|
* \param args Swagger parameters
|
|
* \param[out] response HTTP response
|
|
*/
|
|
void ast_ari_asterisk_set_global_var(struct ast_variable *headers, struct ast_ari_asterisk_set_global_var_args *args, struct ast_ari_response *response);
|
|
|
|
#endif /* _ASTERISK_RESOURCE_ASTERISK_H */
|