8d7873b836
This patch adds an /applications API to ARI, allowing explicit management of Stasis applications. * GET /applications - list current applications * GET /applications/{applicationName} - get details of a specific application * POST /applications/{applicationName}/subscription - explicitly subscribe to a channel, bridge or endpoint * DELETE /applications/{applicationName}/subscription - explicitly unsubscribe from a channel, bridge or endpoint Subscriptions work by a reference counting mechanism: if you subscript to an event source X number of times, you must unsubscribe X number of times to stop receiveing events for that event source. Review: https://reviewboard.asterisk.org/r/2862 (issue ASTERISK-22451) Reported by: Matt Jordan ........ Merged revisions 400522 from http://svn.asterisk.org/svn/asterisk/branches/12 git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@400523 65c4cc65-6c06-0410-ace0-fbb531ad65f3
192 lines
4.9 KiB
Text
192 lines
4.9 KiB
Text
/*
|
|
* Asterisk -- An open source telephony toolkit.
|
|
*
|
|
* Copyright (C) 2013, Digium, Inc.
|
|
*
|
|
* 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 - Build validators for ARI model objects.
|
|
*
|
|
* In addition to the normal validation functions one would normally expect,
|
|
* each validator has a ast_ari_validate_{id}_fn() companion function that returns
|
|
* the validator's function pointer.
|
|
*
|
|
* The reason for this seamingly useless indirection is the way function
|
|
* pointers interfere with module loading. Asterisk attempts to dlopen() each
|
|
* module using \c RTLD_LAZY in order to read some metadata from the module.
|
|
* Unfortunately, if you take the address of a function, the function has to be
|
|
* resolvable at load time, even if \c RTLD_LAZY is specified. By moving the
|
|
* function-address-taking into this module, we can once again be lazy.
|
|
*/
|
|
|
|
/*
|
|
{{> do-not-edit}}
|
|
* This file is generated by a mustache template. Please see the original
|
|
* template in rest-api-templates/ari_model_validators.h.mustache
|
|
*/
|
|
|
|
#ifndef _ASTERISK_ARI_MODEL_H
|
|
#define _ASTERISK_ARI_MODEL_H
|
|
|
|
#include "asterisk/json.h"
|
|
|
|
/*! @{ */
|
|
|
|
/*!
|
|
* \brief Validator for native Swagger void.
|
|
*
|
|
* \param json JSON object to validate.
|
|
* \returns True (non-zero) if valid.
|
|
* \returns False (zero) if invalid.
|
|
*/
|
|
int ast_ari_validate_void(struct ast_json *json);
|
|
|
|
/*!
|
|
* \brief Validator for native Swagger object.
|
|
*
|
|
* \param json JSON object to validate.
|
|
* \returns True (non-zero) if valid.
|
|
* \returns False (zero) if invalid.
|
|
*/
|
|
int ast_ari_validate_object(struct ast_json *json);
|
|
|
|
/*!
|
|
* \brief Validator for native Swagger byte.
|
|
*
|
|
* \param json JSON object to validate.
|
|
* \returns True (non-zero) if valid.
|
|
* \returns False (zero) if invalid.
|
|
*/
|
|
int ast_ari_validate_byte(struct ast_json *json);
|
|
|
|
/*!
|
|
* \brief Validator for native Swagger boolean.
|
|
*
|
|
* \param json JSON object to validate.
|
|
* \returns True (non-zero) if valid.
|
|
* \returns False (zero) if invalid.
|
|
*/
|
|
int ast_ari_validate_boolean(struct ast_json *json);
|
|
|
|
/*!
|
|
* \brief Validator for native Swagger int.
|
|
*
|
|
* \param json JSON object to validate.
|
|
* \returns True (non-zero) if valid.
|
|
* \returns False (zero) if invalid.
|
|
*/
|
|
int ast_ari_validate_int(struct ast_json *json);
|
|
|
|
/*!
|
|
* \brief Validator for native Swagger long.
|
|
*
|
|
* \param json JSON object to validate.
|
|
* \returns True (non-zero) if valid.
|
|
* \returns False (zero) if invalid.
|
|
*/
|
|
int ast_ari_validate_long(struct ast_json *json);
|
|
|
|
/*!
|
|
* \brief Validator for native Swagger float.
|
|
*
|
|
* \param json JSON object to validate.
|
|
* \returns True (non-zero) if valid.
|
|
* \returns False (zero) if invalid.
|
|
*/
|
|
int ast_ari_validate_float(struct ast_json *json);
|
|
|
|
/*!
|
|
* \brief Validator for native Swagger double.
|
|
*
|
|
* \param json JSON object to validate.
|
|
* \returns True (non-zero) if valid.
|
|
* \returns False (zero) if invalid.
|
|
*/
|
|
int ast_ari_validate_double(struct ast_json *json);
|
|
|
|
/*!
|
|
* \brief Validator for native Swagger string.
|
|
*
|
|
* \param json JSON object to validate.
|
|
* \returns True (non-zero) if valid.
|
|
* \returns False (zero) if invalid.
|
|
*/
|
|
int ast_ari_validate_string(struct ast_json *json);
|
|
|
|
/*!
|
|
* \brief Validator for native Swagger date.
|
|
*
|
|
* \param json JSON object to validate.
|
|
* \returns True (non-zero) if valid.
|
|
* \returns False (zero) if invalid.
|
|
*/
|
|
int ast_ari_validate_date(struct ast_json *json);
|
|
|
|
/*!
|
|
* \brief Validator for a Swagger List[]/JSON array.
|
|
*
|
|
* \param json JSON object to validate.
|
|
* \param fn Validator to call on every element in the array.
|
|
* \returns True (non-zero) if valid.
|
|
* \returns False (zero) if invalid.
|
|
*/
|
|
int ast_ari_validate_list(struct ast_json *json, int (*fn)(struct ast_json *));
|
|
|
|
/*! @} */
|
|
|
|
/*!
|
|
* \brief Function type for validator functions. Allows for
|
|
*/
|
|
typedef int (*ari_validator)(struct ast_json *json);
|
|
{{#apis}}
|
|
{{#api_declaration}}
|
|
{{#models}}
|
|
|
|
/*!
|
|
* \brief Validator for {{id}}.
|
|
*
|
|
* {{{description_dox}}}
|
|
*
|
|
* \param json JSON object to validate.
|
|
* \returns True (non-zero) if valid.
|
|
* \returns False (zero) if invalid.
|
|
*/
|
|
int ast_ari_validate_{{c_id}}(struct ast_json *json);
|
|
|
|
/*!
|
|
* \brief Function pointer to ast_ari_validate_{{c_id}}().
|
|
*
|
|
* See \ref ast_ari_model_validators.h for more details.
|
|
*/
|
|
ari_validator ast_ari_validate_{{c_id}}_fn(void);
|
|
{{/models}}
|
|
{{/api_declaration}}
|
|
{{/apis}}
|
|
|
|
/*
|
|
* JSON models
|
|
*
|
|
{{#apis}}
|
|
{{#api_declaration}}
|
|
{{#models}}
|
|
* {{id}}
|
|
{{#properties}}
|
|
* - {{name}}: {{type.name}}{{#required}} (required){{/required}}
|
|
{{/properties}}
|
|
{{/models}}
|
|
{{/api_declaration}}
|
|
{{/apis}} */
|
|
|
|
#endif /* _ASTERISK_ARI_MODEL_H */
|