Bug 32030: ERM - related agreement - REST API
[srvgit] / 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   put:
196     x-mojo-to: ERM::Agreements#update
197     operationId: updateErmAgreements
198     tags:
199       - agreement
200     summary: Update agreement
201     consumes:
202       - application/json
203     produces:
204       - application/json
205     parameters:
206       - $ref: "../swagger.yaml#/parameters/agreement_id_pp"
207       - name: body
208         in: body
209         description: A JSON object containing new information about existing agreement
210         required: true
211         schema:
212           $ref: "../swagger.yaml#/definitions/erm_agreement"
213
214     responses:
215       200:
216         description: A successfully updated agreement
217         schema:
218           items:
219             $ref: "../swagger.yaml#/definitions/erm_agreement"
220       400:
221         description: Bad parameter
222         schema:
223           $ref: "../swagger.yaml#/definitions/error"
224       403:
225         description: Access forbidden
226         schema:
227           $ref: "../swagger.yaml#/definitions/error"
228       404:
229         description: Ressource not found
230         schema:
231           $ref: "../swagger.yaml#/definitions/error"
232       409:
233         description: Conflict in updating resource
234         schema:
235           $ref: "../swagger.yaml#/definitions/error"
236       500:
237         description: |-
238           Internal server error. Possible `error_code` attribute values:
239           * `internal_server_error`
240         schema:
241           $ref: "../swagger.yaml#/definitions/error"
242       503:
243         description: Under maintenance
244         schema:
245           $ref: "../swagger.yaml#/definitions/error"
246     x-koha-authorization:
247       permissions:
248         erm: 1
249     x-koha-embed:
250       - periods
251       - user_roles
252       - agreement_licenses
253       - agreement_relationships
254   delete:
255     x-mojo-to: ERM::Agreements#delete
256     operationId: deleteErmAgreements
257     tags:
258       - agreement
259     summary: Delete agreement
260     produces:
261       - application/json
262     parameters:
263       - $ref: "../swagger.yaml#/parameters/agreement_id_pp"
264     responses:
265       204:
266         description: Agreement deleted
267       400:
268         description: Agreement deletion failed
269         schema:
270           $ref: "../swagger.yaml#/definitions/error"
271       401:
272         description: Authentication required
273         schema:
274           $ref: "../swagger.yaml#/definitions/error"
275       403:
276         description: Access forbidden
277         schema:
278           $ref: "../swagger.yaml#/definitions/error"
279       404:
280         description: Ressource not found
281         schema:
282           $ref: "../swagger.yaml#/definitions/error"
283       409:
284         description: Conflict in deleting resource
285         schema:
286           $ref: "../swagger.yaml#/definitions/error"
287       500:
288         description: |-
289           Internal server error. Possible `error_code` attribute values:
290           * `internal_server_error`
291         schema:
292           $ref: "../swagger.yaml#/definitions/error"
293       503:
294         description: Under maintenance
295         schema:
296           $ref: "../swagger.yaml#/definitions/error"
297     x-koha-authorization:
298       permissions:
299         erm: 1