res_stasis_recording: Add a "target_uri" field to recording events.
[asterisk/asterisk.git] / rest-api / api-docs / recordings.json
1 {
2         "_copyright": "Copyright (C) 2012 - 2013, Digium, Inc.",
3         "_author": "David M. Lee, II <dlee@digium.com>",
4         "_svn_revision": "$Revision$",
5         "apiVersion": "1.1.0",
6         "swaggerVersion": "1.1",
7         "basePath": "http://localhost:8088/stasis",
8         "resourcePath": "/api-docs/recordings.{format}",
9         "apis": [
10                 {
11                         "path": "/recordings/stored",
12                         "description": "Recordings",
13                         "operations": [
14                                 {
15                                         "httpMethod": "GET",
16                                         "summary": "List recordings that are complete.",
17                                         "nickname": "listStored",
18                                         "responseClass": "List[StoredRecording]"
19                                 }
20                         ]
21                 },
22                 {
23                         "path": "/recordings/stored/{recordingName}",
24                         "description": "Individual recording",
25                         "operations": [
26                                 {
27                                         "httpMethod": "GET",
28                                         "summary": "Get a stored recording's details.",
29                                         "nickname": "getStored",
30                                         "responseClass": "StoredRecording",
31                                         "parameters": [
32                                                 {
33                                                         "name": "recordingName",
34                                                         "description": "The name of the recording",
35                                                         "paramType": "path",
36                                                         "required": true,
37                                                         "allowMultiple": false,
38                                                         "dataType": "string"
39                                                 }
40                                         ],
41                                         "errorResponses": [
42                                                 {
43                                                         "code": 404,
44                                                         "reason": "Recording not found"
45                                                 }
46                                         ]
47                                 },
48                                 {
49                                         "httpMethod": "DELETE",
50                                         "summary": "Delete a stored recording.",
51                                         "nickname": "deleteStored",
52                                         "responseClass": "void",
53                                         "parameters": [
54                                                 {
55                                                         "name": "recordingName",
56                                                         "description": "The name of the recording",
57                                                         "paramType": "path",
58                                                         "required": true,
59                                                         "allowMultiple": false,
60                                                         "dataType": "string"
61                                                 }
62                                         ],
63                                         "errorResponses": [
64                                                 {
65                                                         "code": 404,
66                                                         "reason": "Recording not found"
67                                                 }
68                                         ]
69                                 }
70                         ]
71                 },
72                 {
73                         "path": "/recordings/live/{recordingName}",
74                         "description": "A recording that is in progress",
75                         "operations": [
76                                 {
77                                         "httpMethod": "GET",
78                                         "summary": "List live recordings.",
79                                         "nickname": "getLive",
80                                         "responseClass": "LiveRecording",
81                                         "parameters": [
82                                                 {
83                                                         "name": "recordingName",
84                                                         "description": "The name of the recording",
85                                                         "paramType": "path",
86                                                         "required": true,
87                                                         "allowMultiple": false,
88                                                         "dataType": "string"
89                                                 }
90                                         ],
91                                         "errorResponses": [
92                                                 {
93                                                         "code": 404,
94                                                         "reason": "Recording not found"
95                                                 }
96                                         ]
97                                 },
98                                 {
99                                         "httpMethod": "DELETE",
100                                         "summary": "Stop a live recording and discard it.",
101                                         "nickname": "cancel",
102                                         "responseClass": "void",
103                                         "parameters": [
104                                                 {
105                                                         "name": "recordingName",
106                                                         "description": "The name of the recording",
107                                                         "paramType": "path",
108                                                         "required": true,
109                                                         "allowMultiple": false,
110                                                         "dataType": "string"
111                                                 }
112                                         ],
113                                         "errorResponses": [
114                                                 {
115                                                         "code": 404,
116                                                         "reason": "Recording not found"
117                                                 }
118                                         ]
119                                 }
120                         ]
121                 },
122                 {
123                         "path": "/recordings/live/{recordingName}/stop",
124                         "operations": [
125                                 {
126                                         "httpMethod": "POST",
127                                         "summary": "Stop a live recording and store it.",
128                                         "nickname": "stop",
129                                         "responseClass": "void",
130                                         "parameters": [
131                                                 {
132                                                         "name": "recordingName",
133                                                         "description": "The name of the recording",
134                                                         "paramType": "path",
135                                                         "required": true,
136                                                         "allowMultiple": false,
137                                                         "dataType": "string"
138                                                 }
139                                         ],
140                                         "errorResponses": [
141                                                 {
142                                                         "code": 404,
143                                                         "reason": "Recording not found"
144                                                 }
145                                         ]
146                                 }
147                         ]
148                 },
149                 {
150                         "path": "/recordings/live/{recordingName}/pause",
151                         "operations": [
152                                 {
153                                         "httpMethod": "POST",
154                                         "summary": "Pause a live recording.",
155                                         "notes": "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.",
156                                         "nickname": "pause",
157                                         "responseClass": "void",
158                                         "parameters": [
159                                                 {
160                                                         "name": "recordingName",
161                                                         "description": "The name of the recording",
162                                                         "paramType": "path",
163                                                         "required": true,
164                                                         "allowMultiple": false,
165                                                         "dataType": "string"
166                                                 }
167                                         ],
168                                         "errorResponses": [
169                                                 {
170                                                         "code": 404,
171                                                         "reason": "Recording not found"
172                                                 },
173                                                 {
174                                                         "code": 409,
175                                                         "reason": "Recording not in session"
176                                                 }
177                                         ]
178                                 },
179                                 {
180                                         "httpMethod": "DELETE",
181                                         "summary": "Unpause a live recording.",
182                                         "nickname": "unpause",
183                                         "responseClass": "void",
184                                         "parameters": [
185                                                 {
186                                                         "name": "recordingName",
187                                                         "description": "The name of the recording",
188                                                         "paramType": "path",
189                                                         "required": true,
190                                                         "allowMultiple": false,
191                                                         "dataType": "string"
192                                                 }
193                                         ],
194                                         "errorResponses": [
195                                                 {
196                                                         "code": 404,
197                                                         "reason": "Recording not found"
198                                                 },
199                                                 {
200                                                         "code": 409,
201                                                         "reason": "Recording not in session"
202                                                 }
203                                         ]
204                                 }
205                         ]
206                 },
207                 {
208                         "path": "/recordings/live/{recordingName}/mute",
209                         "operations": [
210                                 {
211                                         "httpMethod": "POST",
212                                         "summary": "Mute a live recording.",
213                                         "notes": "Muting a recording suspends silence detection, which will be restarted when the recording is unmuted.",
214                                         "nickname": "mute",
215                                         "responseClass": "void",
216                                         "parameters": [
217                                                 {
218                                                         "name": "recordingName",
219                                                         "description": "The name of the recording",
220                                                         "paramType": "path",
221                                                         "required": true,
222                                                         "allowMultiple": false,
223                                                         "dataType": "string"
224                                                 }
225                                         ],
226                                         "errorResponses": [
227                                                 {
228                                                         "code": 404,
229                                                         "reason": "Recording not found"
230                                                 },
231                                                 {
232                                                         "code": 409,
233                                                         "reason": "Recording not in session"
234                                                 }
235                                         ]
236                                 },
237                                 {
238                                         "httpMethod": "DELETE",
239                                         "summary": "Unmute a live recording.",
240                                         "nickname": "unmute",
241                                         "responseClass": "void",
242                                         "parameters": [
243                                                 {
244                                                         "name": "recordingName",
245                                                         "description": "The name of the recording",
246                                                         "paramType": "path",
247                                                         "required": true,
248                                                         "allowMultiple": false,
249                                                         "dataType": "string"
250                                                 }
251                                         ],
252                                         "errorResponses": [
253                                                 {
254                                                         "code": 404,
255                                                         "reason": "Recording not found"
256                                                 },
257                                                 {
258                                                         "code": 409,
259                                                         "reason": "Recording not in session"
260                                                 }
261                                         ]
262                                 }
263                         ]
264                 }
265         ],
266         "models": {
267                 "StoredRecording": {
268                         "id": "StoredRecording",
269                         "description": "A past recording that may be played back.",
270                         "properties": {
271                                 "name": {
272                                         "required": true,
273                                         "type": "string"
274                                 },
275                                 "format": {
276                                         "required": true,
277                                         "type": "string"
278                                 }
279                         }
280                 },
281                 "LiveRecording": {
282                         "id": "LiveRecording",
283                         "description": "A recording that is in progress",
284                         "properties": {
285                                 "name": {
286                                         "required": true,
287                                         "type": "string",
288                                         "description": "Base name for the recording"
289                                 },
290                                 "format": {
291                                         "required": true,
292                                         "type": "string",
293                                         "description": "Recording format (wav, gsm, etc.)"
294                                 },
295                                 "target_uri": {
296                                         "required": true,
297                                         "type": "string",
298                                         "description": "URI for the channel or bridge being recorded"
299                                 },
300                                 "state": {
301                                         "required": false,
302                                         "type": "string",
303                                         "allowableValues": {
304                                                 "valueType": "LIST",
305                                                 "values": [
306                                                         "queued",
307                                                         "recording",
308                                                         "paused",
309                                                         "done",
310                                                         "failed",
311                                                         "canceled"
312                                                 ]
313                                         }
314                                 },
315                                 "cause": {
316                                         "required": false,
317                                         "type": "string",
318                                         "description": "Cause for recording failure if failed"
319                                 },
320                                 "state": {
321                                         "required": true,
322                                         "type": "string"
323                                 },
324                                 "format": {
325                                         "required": true,
326                                         "type": "string"
327                                 }
328                         }
329                 }
330         }
331 }