ARI: Add the ability to download the media associated with a stored recording
[asterisk/asterisk.git] / res / ari / resource_recordings.h
1 /*
2  * Asterisk -- An open source telephony toolkit.
3  *
4  * Copyright (C) 2012 - 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_recordings.c
23  *
24  * Recording 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_RECORDINGS_H
38 #define _ASTERISK_RESOURCE_RECORDINGS_H
39
40 #include "asterisk/ari.h"
41
42 /*! Argument struct for ast_ari_recordings_list_stored() */
43 struct ast_ari_recordings_list_stored_args {
44 };
45 /*!
46  * \brief List recordings that are complete.
47  *
48  * \param headers HTTP headers
49  * \param args Swagger parameters
50  * \param[out] response HTTP response
51  */
52 void ast_ari_recordings_list_stored(struct ast_variable *headers, struct ast_ari_recordings_list_stored_args *args, struct ast_ari_response *response);
53 /*! Argument struct for ast_ari_recordings_get_stored() */
54 struct ast_ari_recordings_get_stored_args {
55         /*! The name of the recording */
56         const char *recording_name;
57 };
58 /*!
59  * \brief Get a stored recording's details.
60  *
61  * \param headers HTTP headers
62  * \param args Swagger parameters
63  * \param[out] response HTTP response
64  */
65 void ast_ari_recordings_get_stored(struct ast_variable *headers, struct ast_ari_recordings_get_stored_args *args, struct ast_ari_response *response);
66 /*! Argument struct for ast_ari_recordings_delete_stored() */
67 struct ast_ari_recordings_delete_stored_args {
68         /*! The name of the recording */
69         const char *recording_name;
70 };
71 /*!
72  * \brief Delete a stored recording.
73  *
74  * \param headers HTTP headers
75  * \param args Swagger parameters
76  * \param[out] response HTTP response
77  */
78 void ast_ari_recordings_delete_stored(struct ast_variable *headers, struct ast_ari_recordings_delete_stored_args *args, struct ast_ari_response *response);
79 /*! Argument struct for ast_ari_recordings_get_stored_file() */
80 struct ast_ari_recordings_get_stored_file_args {
81         /*! The name of the recording */
82         const char *recording_name;
83 };
84 /*!
85  * \brief Get the file associated with the stored recording.
86  *
87  * \param ser TCP/TLS session instance
88  * \param headers HTTP headers
89  * \param args Swagger parameters
90  * \param[out] response HTTP response
91  */
92 void ast_ari_recordings_get_stored_file(struct ast_tcptls_session_instance *ser, struct ast_variable *headers, struct ast_ari_recordings_get_stored_file_args *args, struct ast_ari_response *response);
93 /*! Argument struct for ast_ari_recordings_copy_stored() */
94 struct ast_ari_recordings_copy_stored_args {
95         /*! The name of the recording to copy */
96         const char *recording_name;
97         /*! The destination name of the recording */
98         const char *destination_recording_name;
99 };
100 /*!
101  * \brief Body parsing function for /recordings/stored/{recordingName}/copy.
102  * \param body The JSON body from which to parse parameters.
103  * \param[out] args The args structure to parse into.
104  * \retval zero on success
105  * \retval non-zero on failure
106  */
107 int ast_ari_recordings_copy_stored_parse_body(
108         struct ast_json *body,
109         struct ast_ari_recordings_copy_stored_args *args);
110
111 /*!
112  * \brief Copy a stored recording.
113  *
114  * \param headers HTTP headers
115  * \param args Swagger parameters
116  * \param[out] response HTTP response
117  */
118 void ast_ari_recordings_copy_stored(struct ast_variable *headers, struct ast_ari_recordings_copy_stored_args *args, struct ast_ari_response *response);
119 /*! Argument struct for ast_ari_recordings_get_live() */
120 struct ast_ari_recordings_get_live_args {
121         /*! The name of the recording */
122         const char *recording_name;
123 };
124 /*!
125  * \brief List live recordings.
126  *
127  * \param headers HTTP headers
128  * \param args Swagger parameters
129  * \param[out] response HTTP response
130  */
131 void ast_ari_recordings_get_live(struct ast_variable *headers, struct ast_ari_recordings_get_live_args *args, struct ast_ari_response *response);
132 /*! Argument struct for ast_ari_recordings_cancel() */
133 struct ast_ari_recordings_cancel_args {
134         /*! The name of the recording */
135         const char *recording_name;
136 };
137 /*!
138  * \brief Stop a live recording and discard it.
139  *
140  * \param headers HTTP headers
141  * \param args Swagger parameters
142  * \param[out] response HTTP response
143  */
144 void ast_ari_recordings_cancel(struct ast_variable *headers, struct ast_ari_recordings_cancel_args *args, struct ast_ari_response *response);
145 /*! Argument struct for ast_ari_recordings_stop() */
146 struct ast_ari_recordings_stop_args {
147         /*! The name of the recording */
148         const char *recording_name;
149 };
150 /*!
151  * \brief Stop a live recording and store it.
152  *
153  * \param headers HTTP headers
154  * \param args Swagger parameters
155  * \param[out] response HTTP response
156  */
157 void ast_ari_recordings_stop(struct ast_variable *headers, struct ast_ari_recordings_stop_args *args, struct ast_ari_response *response);
158 /*! Argument struct for ast_ari_recordings_pause() */
159 struct ast_ari_recordings_pause_args {
160         /*! The name of the recording */
161         const char *recording_name;
162 };
163 /*!
164  * \brief Pause a live recording.
165  *
166  * Pausing a recording suspends silence detection, which will be restarted when the recording is unpaused. Paused time is not included in the accounting for maxDurationSeconds.
167  *
168  * \param headers HTTP headers
169  * \param args Swagger parameters
170  * \param[out] response HTTP response
171  */
172 void ast_ari_recordings_pause(struct ast_variable *headers, struct ast_ari_recordings_pause_args *args, struct ast_ari_response *response);
173 /*! Argument struct for ast_ari_recordings_unpause() */
174 struct ast_ari_recordings_unpause_args {
175         /*! The name of the recording */
176         const char *recording_name;
177 };
178 /*!
179  * \brief Unpause a live recording.
180  *
181  * \param headers HTTP headers
182  * \param args Swagger parameters
183  * \param[out] response HTTP response
184  */
185 void ast_ari_recordings_unpause(struct ast_variable *headers, struct ast_ari_recordings_unpause_args *args, struct ast_ari_response *response);
186 /*! Argument struct for ast_ari_recordings_mute() */
187 struct ast_ari_recordings_mute_args {
188         /*! The name of the recording */
189         const char *recording_name;
190 };
191 /*!
192  * \brief Mute a live recording.
193  *
194  * Muting a recording suspends silence detection, which will be restarted when the recording is unmuted.
195  *
196  * \param headers HTTP headers
197  * \param args Swagger parameters
198  * \param[out] response HTTP response
199  */
200 void ast_ari_recordings_mute(struct ast_variable *headers, struct ast_ari_recordings_mute_args *args, struct ast_ari_response *response);
201 /*! Argument struct for ast_ari_recordings_unmute() */
202 struct ast_ari_recordings_unmute_args {
203         /*! The name of the recording */
204         const char *recording_name;
205 };
206 /*!
207  * \brief Unmute a live recording.
208  *
209  * \param headers HTTP headers
210  * \param args Swagger parameters
211  * \param[out] response HTTP response
212  */
213 void ast_ari_recordings_unmute(struct ast_variable *headers, struct ast_ari_recordings_unmute_args *args, struct ast_ari_response *response);
214
215 #endif /* _ASTERISK_RESOURCE_RECORDINGS_H */