Bug 22343: API routes for SMTP servers CRUD
[koha.git] / api / v1 / swagger / paths / config_smtp_servers.json
1 {
2   "/config/smtp_servers": {
3     "get": {
4       "x-mojo-to": "Config::SMTP::Servers#list",
5       "operationId": "listSMTPServers",
6       "tags": [
7         "config",
8         "smtp"
9       ],
10       "produces": [
11         "application/json"
12       ],
13       "parameters": [
14         {
15           "$ref": "../parameters.json#/match"
16         },
17         {
18           "$ref": "../parameters.json#/order_by"
19         },
20         {
21           "$ref": "../parameters.json#/page"
22         },
23         {
24           "$ref": "../parameters.json#/per_page"
25         },
26         {
27           "$ref": "../parameters.json#/q_param"
28         },
29         {
30           "$ref": "../parameters.json#/q_body"
31         },
32         {
33           "$ref": "../parameters.json#/q_header"
34         }
35       ],
36       "responses": {
37         "200": {
38           "description": "A list of SMTP servers",
39           "schema": {
40             "type": "array",
41             "items": {
42               "$ref": "../definitions.json#/smtp_server"
43             }
44           }
45         },
46         "403": {
47           "description": "Access forbidden",
48           "schema": {
49             "$ref": "../definitions.json#/error"
50           }
51         },
52         "500": {
53           "description": "Internal error",
54           "schema": {
55             "$ref": "../definitions.json#/error"
56           }
57         },
58         "503": {
59           "description": "Under maintenance",
60           "schema": {
61             "$ref": "../definitions.json#/error"
62           }
63         }
64       },
65       "x-koha-authorization": {
66         "permissions": {
67           "parameters": "manage_smtp_servers"
68         }
69       }
70     },
71     "post": {
72       "x-mojo-to": "Config::SMTP::Servers#add",
73       "operationId": "addSMTPServer",
74       "tags": [
75         "config",
76         "smtp"
77       ],
78       "parameters": [
79         {
80           "name": "body",
81           "in": "body",
82           "description": "A JSON object representing a new SMTP server configuration",
83           "required": true,
84           "schema": {
85             "$ref": "../definitions.json#/smtp_server"
86           }
87         }
88       ],
89       "produces": [
90         "application/json"
91       ],
92       "responses": {
93         "201": {
94           "description": "An SMTP server object",
95           "schema": {
96             "$ref": "../definitions.json#/smtp_server"
97           }
98         },
99         "401": {
100           "description": "Authentication required",
101           "schema": {
102             "$ref": "../definitions.json#/error"
103           }
104         },
105         "403": {
106           "description": "Access forbidden",
107           "schema": {
108             "$ref": "../definitions.json#/error"
109           }
110         },
111         "409": {
112           "description": "Conflict in creating resource",
113           "schema": {
114             "$ref": "../definitions.json#/error"
115           }
116         },
117         "500": {
118           "description": "Internal error",
119           "schema": {
120             "$ref": "../definitions.json#/error"
121           }
122         },
123         "503": {
124           "description": "Under maintenance",
125           "schema": {
126             "$ref": "../definitions.json#/error"
127           }
128         }
129       },
130       "x-koha-authorization": {
131         "permissions": {
132           "parameters": "manage_smtp_servers"
133         }
134       }
135     }
136   },
137   "/config/smtp_servers/{smtp_server_id}": {
138     "get": {
139       "x-mojo-to": "Config::SMTP::Servers#get",
140       "operationId": "getSMTPServer",
141       "tags": [
142         "config",
143         "smtp"
144       ],
145       "parameters": [
146         {
147           "$ref": "../parameters.json#/smtp_server_id_pp"
148         }
149       ],
150       "produces": [
151         "application/json"
152       ],
153       "responses": {
154         "200": {
155           "description": "An SMTP server object",
156           "schema": {
157             "$ref": "../definitions.json#/smtp_server"
158           }
159         },
160         "404": {
161           "description": "Object not found",
162           "schema": {
163             "$ref": "../definitions.json#/error"
164           }
165         },
166         "409": {
167           "description": "Conflict updating resource",
168           "schema": {
169             "$ref": "../definitions.json#/error"
170           }
171         },
172         "500": {
173           "description": "Internal error",
174           "schema": {
175             "$ref": "../definitions.json#/error"
176           }
177         },
178         "503": {
179           "description": "Under maintenance",
180           "schema": {
181             "$ref": "../definitions.json#/error"
182           }
183         }
184       },
185       "x-koha-authorization": {
186         "permissions": {
187           "parameters": "manage_smtp_servers"
188         }
189       }
190     },
191     "put": {
192       "x-mojo-to": "Config::SMTP::Servers#update",
193       "operationId": "updateSMTPServer",
194       "tags": [
195         "config",
196         "smtp"
197       ],
198       "parameters": [
199         {
200           "$ref": "../parameters.json#/smtp_server_id_pp"
201         },
202         {
203           "name": "body",
204           "in": "body",
205           "description": "An SMTP server object",
206           "required": true,
207           "schema": {
208             "$ref": "../definitions.json#/smtp_server"
209           }
210         }
211       ],
212       "produces": [
213         "application/json"
214       ],
215       "responses": {
216         "200": {
217           "description": "An SMTP server object",
218           "schema": {
219             "$ref": "../definitions.json#/smtp_server"
220           }
221         },
222         "401": {
223           "description": "Authentication required",
224           "schema": {
225             "$ref": "../definitions.json#/error"
226           }
227         },
228         "403": {
229           "description": "Access forbidden",
230           "schema": {
231             "$ref": "../definitions.json#/error"
232           }
233         },
234         "404": {
235           "description": "Object not found",
236           "schema": {
237             "$ref": "../definitions.json#/error"
238           }
239         },
240         "500": {
241           "description": "Internal error",
242           "schema": {
243             "$ref": "../definitions.json#/error"
244           }
245         },
246         "503": {
247           "description": "Under maintenance",
248           "schema": {
249             "$ref": "../definitions.json#/error"
250           }
251         }
252       },
253       "x-koha-authorization": {
254         "permissions": {
255           "parameters": "manage_smtp_servers"
256         }
257       }
258     },
259     "delete": {
260       "x-mojo-to": "Config::SMTP::Servers#delete",
261       "operationId": "deleteSMTPServer",
262       "tags": [
263         "config",
264         "smtp"
265       ],
266       "parameters": [
267         {
268           "$ref": "../parameters.json#/smtp_server_id_pp"
269         }
270       ],
271       "produces": [
272         "application/json"
273       ],
274       "responses": {
275         "204": {
276           "description": "SMTP server deleted"
277         },
278         "401": {
279           "description": "Authentication required",
280           "schema": {
281             "$ref": "../definitions.json#/error"
282           }
283         },
284         "403": {
285           "description": "Access forbidden",
286           "schema": {
287             "$ref": "../definitions.json#/error"
288           }
289         },
290         "404": {
291           "description": "Object not found",
292           "schema": {
293             "$ref": "../definitions.json#/error"
294           }
295         },
296         "500": {
297           "description": "Internal error",
298           "schema": {
299             "$ref": "../definitions.json#/error"
300           }
301         },
302         "503": {
303           "description": "Under maintenance",
304           "schema": {
305             "$ref": "../definitions.json#/error"
306           }
307         }
308       },
309       "x-koha-authorization": {
310         "permissions": {
311           "parameters": "manage_smtp_servers"
312         }
313       }
314     }
315   }
316 }