rest-api-templates: Wikify error code response reasons
[asterisk/asterisk.git] / rest-api-templates / ari_resource.h.mustache
1 {{#api_declaration}}
2 /*
3  * Asterisk -- An open source telephony toolkit.
4  *
5  * {{{copyright}}}
6  *
7  * {{{author}}}
8  *
9  * See http://www.asterisk.org for more information about
10  * the Asterisk project. Please do not directly contact
11  * any of the maintainers of this project for assistance;
12  * the project provides a web site, mailing lists and IRC
13  * channels for your use.
14  *
15  * This program is free software, distributed under the terms of
16  * the GNU General Public License Version 2. See the LICENSE file
17  * at the top of the source tree.
18  */
19
20 /*! \file
21  *
22  * \brief Generated file - declares stubs to be implemented in
23  * res/ari/resource_{{name}}.c
24  *
25  * {{{description}}}
26  *
27  * \author {{{author}}}
28  */
29
30 /*
31 {{> do-not-edit}}
32  * This file is generated by a mustache template. Please see the original
33  * template in rest-api-templates/ari_resource.h.mustache
34  */
35
36 #ifndef _ASTERISK_RESOURCE_{{name_caps}}_H
37 #define _ASTERISK_RESOURCE_{{name_caps}}_H
38
39 #include "asterisk/ari.h"
40
41 {{#apis}}
42 {{#operations}}
43 /*! Argument struct for ast_ari_{{c_name}}_{{c_nickname}}() */
44 struct ast_ari_{{c_name}}_{{c_nickname}}_args {
45 {{#parameters}}
46 {{#description}}
47 {{/description}}
48 {{^allow_multiple}}
49 {{#description}}
50         /*! {{{description}}} */
51 {{/description}}
52         {{c_data_type}}{{c_space}}{{c_name}};
53 {{/allow_multiple}}
54 {{#allow_multiple}}
55         /*! Array of {{{description}}} */
56         {{c_data_type}}{{c_space}}*{{c_name}};
57         /*! Length of {{c_name}} array. */
58         size_t {{c_name}}_count;
59         /*! Parsing context for {{c_name}}. */
60         char *{{c_name}}_parse;
61 {{/allow_multiple}}
62 {{/parameters}}
63 };
64 {{#is_req}}
65 {{#parse_body}}
66 /*!
67  * \brief Body parsing function for {{path}}.
68  * \param body The JSON body from which to parse parameters.
69  * \param[out] args The args structure to parse into.
70  * \retval zero on success
71  * \retval non-zero on failure
72  */
73 int ast_ari_{{c_name}}_{{c_nickname}}_parse_body(
74         struct ast_json *body,
75         struct ast_ari_{{c_name}}_{{c_nickname}}_args *args);
76
77 {{/parse_body}}
78 /*!
79  * \brief {{summary}}
80 {{#notes}}
81  *
82  * {{{notes}}}
83 {{/notes}}
84  *
85  * \param headers HTTP headers
86  * \param args Swagger parameters
87  * \param[out] response HTTP response
88  */
89 void ast_ari_{{c_name}}_{{c_nickname}}(struct ast_variable *headers, struct ast_ari_{{c_name}}_{{c_nickname}}_args *args, struct ast_ari_response *response);
90 {{/is_req}}
91 {{#is_websocket}}
92
93 /*!
94  * \brief {{summary}}
95 {{#notes}}
96  *
97  * {{{notes}}}
98 {{/notes}}
99  *
100  * \retval  0 success
101  * \retval -1 error
102  */
103 int ast_ari_websocket_{{c_name}}_{{c_nickname}}_init(void);
104
105 /*!
106  * \brief {{summary}}
107 {{#notes}}
108  *
109  * {{{notes}}}
110 {{/notes}}
111  *
112  * \return Nothing
113  */
114 void ast_ari_websocket_{{c_name}}_{{c_nickname}}_dtor(void);
115
116 /*!
117  * \brief {{summary}}
118 {{#notes}}
119  *
120  * {{{notes}}}
121 {{/notes}}
122  *
123  * \param ser HTTP TCP/TLS Server Session
124  * \param headers HTTP headers
125  * \param args Swagger parameters
126  * \param session_id The id of the current session.
127  *
128  * \retval 0 success
129  * \retval non-zero error
130  */
131 int ast_ari_websocket_{{c_name}}_{{c_nickname}}_attempted(struct ast_tcptls_session_instance *ser,
132         struct ast_variable *headers, struct ast_ari_{{c_name}}_{{c_nickname}}_args *args, const char *session_id);
133
134 /*!
135  * \brief {{summary}}
136 {{#notes}}
137  *
138  * {{{notes}}}
139 {{/notes}}
140  *
141  * \param session ARI WebSocket.
142  * \param headers HTTP headers.
143  * \param args Swagger parameters.
144  * \param session_id The id of the current session.
145  */
146 void ast_ari_websocket_{{c_name}}_{{c_nickname}}_established(struct ast_ari_websocket_session *session,
147         struct ast_variable *headers, struct ast_ari_{{c_name}}_{{c_nickname}}_args *args);
148 {{/is_websocket}}
149 {{/operations}}
150 {{/apis}}
151
152 #endif /* _ASTERISK_RESOURCE_{{name_caps}}_H */
153 {{/api_declaration}}