Bug 32030: ERM - Agreement documents - REST API
[koha.git] / api / v1 / swagger / paths / erm_agreements.yaml
1 ---
2 /erm/agreements:
3   get:
4     x-mojo-to: ERM::Agreements#list
5     operationId: listErmAgreements
6     tags:
7       - agreement
8     summary: List agreements
9     produces:
10       - application/json
11     parameters:
12       - description: Case insensitive search on agreement agreement_id
13         in: query
14         name: agreement_id
15         required: false
16         type: integer
17       - description: Case insensitive search on agreement vendor_id
18         in: query
19         name: vendor_id
20         required: false
21         type: integer
22       - description: Case insensitive search on agreement name
23         in: query
24         name: name
25         required: false
26         type: string
27       - description: Case insensitive search on agreement description
28         in: query
29         name: description
30         required: false
31         type: string
32       - description: Case insensitive search on agreement status
33         in: query
34         name: status
35         required: false
36         type: string
37       - description: Case insensitive search on agreement closure_reason
38         in: query
39         name: closure_reason
40         required: false
41         type: string
42       - description: Case insensitive search on agreement is_perpetual
43         in: query
44         name: is_perpetual
45         required: false
46         type: boolean
47       - description: Case insensitive search on agreement renewal_priority
48         in: query
49         name: renewal_priority
50         required: false
51         type: string
52       - description: Case insensitive search on agreement license_info
53         in: query
54         name: license_info
55         required: false
56         type: string
57       - $ref: "../swagger.yaml#/parameters/match"
58       - $ref: "../swagger.yaml#/parameters/order_by"
59       - $ref: "../swagger.yaml#/parameters/page"
60       - $ref: "../swagger.yaml#/parameters/per_page"
61       - $ref: "../swagger.yaml#/parameters/q_param"
62       - $ref: "../swagger.yaml#/parameters/q_body"
63       - $ref: "../swagger.yaml#/parameters/q_header"
64     responses:
65       200:
66         description: A list of agreement
67         schema:
68           items:
69             $ref: "../swagger.yaml#/definitions/erm_agreement"
70           type: array
71       403:
72         description: Access forbidden
73         schema:
74           $ref: "../swagger.yaml#/definitions/error"
75       500:
76         description: |-
77           Internal server error. Possible `error_code` attribute values:
78           * `internal_server_error`
79         schema:
80           $ref: "../swagger.yaml#/definitions/error"
81       503:
82         description: Under maintenance
83         schema:
84           $ref: "../swagger.yaml#/definitions/error"
85     x-koha-authorization:
86       permissions:
87         erm: 1
88   post:
89     x-mojo-to: ERM::Agreements#add
90     operationId: addErmAgreements
91     tags:
92       - agreement
93     summary: Add agreement
94     consumes:
95       - application/json
96     produces:
97       - application/json
98     parameters:
99       - description: A JSON object containing information about the new agreement
100         in: body
101         name: body
102         required: true
103         schema:
104             $ref: "../swagger.yaml#/definitions/erm_agreement"
105     responses:
106       201:
107         description: A successfully created agreement
108         schema:
109           items:
110             $ref: "../swagger.yaml#/definitions/erm_agreement"
111       400:
112         description: Bad parameter
113         schema:
114           $ref: "../swagger.yaml#/definitions/error"
115       401:
116         description: Authentication required
117         schema:
118           $ref: "../swagger.yaml#/definitions/error"
119       403:
120         description: Access forbidden
121         schema:
122           $ref: "../swagger.yaml#/definitions/error"
123       404:
124         description: Ressource not found
125         schema:
126           $ref: "../swagger.yaml#/definitions/error"
127       409:
128         description: Conflict in creating resource
129         schema:
130           $ref: "../swagger.yaml#/definitions/error"
131       500:
132         description: |-
133           Internal server error. Possible `error_code` attribute values:
134           * `internal_server_error`
135         schema:
136           $ref: "../swagger.yaml#/definitions/error"
137       503:
138         description: Under maintenance
139         schema:
140           $ref: "../swagger.yaml#/definitions/error"
141     x-koha-authorization:
142       permissions:
143         erm: 1
144 "/erm/agreements/{agreement_id}":
145   get:
146     x-mojo-to: ERM::Agreements#get
147     operationId: getErmAgreements
148     tags:
149       - agreement
150     summary: Get agreement
151     produces:
152       - application/json
153     parameters:
154       - $ref: "../swagger.yaml#/parameters/agreement_id_pp"
155     responses:
156       200:
157         description: An agreement
158         schema:
159           items:
160             $ref: "../swagger.yaml#/definitions/erm_agreement"
161       401:
162         description: Authentication required
163         schema:
164           $ref: "../swagger.yaml#/definitions/error"
165       403:
166         description: Access forbidden
167         schema:
168           $ref: "../swagger.yaml#/definitions/error"
169       404:
170         description: Ressource not found
171         schema:
172           $ref: "../swagger.yaml#/definitions/error"
173       500:
174         description: |-
175           Internal server error. Possible `error_code` attribute values:
176           * `internal_server_error`
177         schema:
178           $ref: "../swagger.yaml#/definitions/error"
179       503:
180         description: Under maintenance
181         schema:
182           $ref: "../swagger.yaml#/definitions/error"
183     x-koha-authorization:
184       permissions:
185         erm: 1
186     x-koha-embed:
187       - periods
188       - user_roles
189       - user_roles.patron
190       - agreement_licenses
191       - agreement_licenses.license
192       - agreement_relationships
193       - agreement_relationships.agreement
194       - agreement_relationships.related_agreement
195       - documents
196   put:
197     x-mojo-to: ERM::Agreements#update
198     operationId: updateErmAgreements
199     tags:
200       - agreement
201     summary: Update agreement
202     consumes:
203       - application/json
204     produces:
205       - application/json
206     parameters:
207       - $ref: "../swagger.yaml#/parameters/agreement_id_pp"
208       - name: body
209         in: body
210         description: A JSON object containing new information about existing agreement
211         required: true
212         schema:
213           $ref: "../swagger.yaml#/definitions/erm_agreement"
214
215     responses:
216       200:
217         description: A successfully updated agreement
218         schema:
219           items:
220             $ref: "../swagger.yaml#/definitions/erm_agreement"
221       400:
222         description: Bad parameter
223         schema:
224           $ref: "../swagger.yaml#/definitions/error"
225       403:
226         description: Access forbidden
227         schema:
228           $ref: "../swagger.yaml#/definitions/error"
229       404:
230         description: Ressource not found
231         schema:
232           $ref: "../swagger.yaml#/definitions/error"
233       409:
234         description: Conflict in updating resource
235         schema:
236           $ref: "../swagger.yaml#/definitions/error"
237       500:
238         description: |-
239           Internal server error. Possible `error_code` attribute values:
240           * `internal_server_error`
241         schema:
242           $ref: "../swagger.yaml#/definitions/error"
243       503:
244         description: Under maintenance
245         schema:
246           $ref: "../swagger.yaml#/definitions/error"
247     x-koha-authorization:
248       permissions:
249         erm: 1
250     x-koha-embed:
251       - periods
252       - user_roles
253       - agreement_licenses
254       - agreement_relationships
255       - documents
256   delete:
257     x-mojo-to: ERM::Agreements#delete
258     operationId: deleteErmAgreements
259     tags:
260       - agreement
261     summary: Delete agreement
262     produces:
263       - application/json
264     parameters:
265       - $ref: "../swagger.yaml#/parameters/agreement_id_pp"
266     responses:
267       204:
268         description: Agreement deleted
269       400:
270         description: Agreement deletion failed
271         schema:
272           $ref: "../swagger.yaml#/definitions/error"
273       401:
274         description: Authentication required
275         schema:
276           $ref: "../swagger.yaml#/definitions/error"
277       403:
278         description: Access forbidden
279         schema:
280           $ref: "../swagger.yaml#/definitions/error"
281       404:
282         description: Ressource not found
283         schema:
284           $ref: "../swagger.yaml#/definitions/error"
285       409:
286         description: Conflict in deleting resource
287         schema:
288           $ref: "../swagger.yaml#/definitions/error"
289       500:
290         description: |-
291           Internal server error. Possible `error_code` attribute values:
292           * `internal_server_error`
293         schema:
294           $ref: "../swagger.yaml#/definitions/error"
295       503:
296         description: Under maintenance
297         schema:
298           $ref: "../swagger.yaml#/definitions/error"
299     x-koha-authorization:
300       permissions:
301         erm: 1