ARI: Add subscription support
[asterisk/asterisk.git] / res / ari / resource_applications.h
1 /*
2  * Asterisk -- An open source telephony toolkit.
3  *
4  * Copyright (C) 2013, Digium, Inc.
5  *
6  * David M. Lee, II <dlee@digium.com>
7  *
8  * See http://www.asterisk.org for more information about
9  * the Asterisk project. Please do not directly contact
10  * any of the maintainers of this project for assistance;
11  * the project provides a web site, mailing lists and IRC
12  * channels for your use.
13  *
14  * This program is free software, distributed under the terms of
15  * the GNU General Public License Version 2. See the LICENSE file
16  * at the top of the source tree.
17  */
18
19 /*! \file
20  *
21  * \brief Generated file - declares stubs to be implemented in
22  * res/ari/resource_applications.c
23  *
24  * Stasis application resources
25  *
26  * \author David M. Lee, II <dlee@digium.com>
27  */
28
29 /*
30  * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
31  * !!!!!                               DO NOT EDIT                        !!!!!
32  * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
33  * This file is generated by a mustache template. Please see the original
34  * template in rest-api-templates/ari_resource.h.mustache
35  */
36
37 #ifndef _ASTERISK_RESOURCE_APPLICATIONS_H
38 #define _ASTERISK_RESOURCE_APPLICATIONS_H
39
40 #include "asterisk/ari.h"
41
42 /*! \brief Argument struct for ast_ari_get_applications() */
43 struct ast_get_applications_args {
44 };
45 /*!
46  * \brief List all applications.
47  *
48  * \param headers HTTP headers
49  * \param args Swagger parameters
50  * \param[out] response HTTP response
51  */
52 void ast_ari_get_applications(struct ast_variable *headers, struct ast_get_applications_args *args, struct ast_ari_response *response);
53 /*! \brief Argument struct for ast_ari_get_application() */
54 struct ast_get_application_args {
55         /*! \brief Application's name */
56         const char *application_name;
57 };
58 /*!
59  * \brief Get details of an application.
60  *
61  * \param headers HTTP headers
62  * \param args Swagger parameters
63  * \param[out] response HTTP response
64  */
65 void ast_ari_get_application(struct ast_variable *headers, struct ast_get_application_args *args, struct ast_ari_response *response);
66 /*! \brief Argument struct for ast_ari_application_subscribe() */
67 struct ast_application_subscribe_args {
68         /*! \brief Application's name */
69         const char *application_name;
70         /*! \brief Array of URI for event source (channel:{channelId}, bridge:{bridgeId}, endpoint:{tech}/{resource} */
71         const char **event_source;
72         /*! \brief Length of event_source array. */
73         size_t event_source_count;
74         /*! \brief Parsing context for event_source. */
75         char *event_source_parse;
76 };
77 /*!
78  * \brief Subscribe an application to a event source.
79  *
80  * Returns the state of the application after the subscriptions have changed
81  *
82  * \param headers HTTP headers
83  * \param args Swagger parameters
84  * \param[out] response HTTP response
85  */
86 void ast_ari_application_subscribe(struct ast_variable *headers, struct ast_application_subscribe_args *args, struct ast_ari_response *response);
87 /*! \brief Argument struct for ast_ari_application_unsubscribe() */
88 struct ast_application_unsubscribe_args {
89         /*! \brief Application's name */
90         const char *application_name;
91         /*! \brief Array of URI for event source (channel:{channelId}, bridge:{bridgeId}, endpoint:{tech}/{resource} */
92         const char **event_source;
93         /*! \brief Length of event_source array. */
94         size_t event_source_count;
95         /*! \brief Parsing context for event_source. */
96         char *event_source_parse;
97 };
98 /*!
99  * \brief Unsubscribe an application from an event source.
100  *
101  * Returns the state of the application after the subscriptions have changed
102  *
103  * \param headers HTTP headers
104  * \param args Swagger parameters
105  * \param[out] response HTTP response
106  */
107 void ast_ari_application_unsubscribe(struct ast_variable *headers, struct ast_application_unsubscribe_args *args, struct ast_ari_response *response);
108
109 #endif /* _ASTERISK_RESOURCE_APPLICATIONS_H */