mirror of
				https://github.com/asterisk/asterisk.git
				synced 2025-11-03 20:38:59 +00:00 
			
		
		
		
	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
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			192 lines
		
	
	
		
			4.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
/*
 | 
						|
 * 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 */
 |