Bug 30394: Add x-koha-request-id support on API routes
[koha.git] / api / v1 / swagger / paths / acquisitions_vendors.yaml
1 ---
2 /acquisitions/vendors:
3   get:
4     x-mojo-to: Acquisitions::Vendors#list
5     operationId: listVendors
6     tags:
7       - vendors
8     summary: List vendors
9     produces:
10       - application/json
11     parameters:
12       - name: name
13         in: query
14         description: Case insensitive search on vendor name
15         required: false
16         type: string
17       - name: accountnumber
18         in: query
19         description: Case insensitive search on vendor's account number
20         required: false
21         type: string
22       - $ref: "../swagger.yaml#/parameters/match"
23       - $ref: "../swagger.yaml#/parameters/order_by"
24       - $ref: "../swagger.yaml#/parameters/page"
25       - $ref: "../swagger.yaml#/parameters/per_page"
26       - $ref: "../swagger.yaml#/parameters/q_param"
27       - $ref: "../swagger.yaml#/parameters/q_body"
28       - $ref: "../swagger.yaml#/parameters/q_header"
29       - $ref: "../swagger.yaml#/parameters/request_id_header"
30     responses:
31       "200":
32         description: A list of vendors
33         schema:
34           type: array
35           items:
36             $ref: "../swagger.yaml#/definitions/vendor"
37       "401":
38         description: Authentication required
39         schema:
40           $ref: "../swagger.yaml#/definitions/error"
41       "403":
42         description: Access forbidden
43         schema:
44           $ref: "../swagger.yaml#/definitions/error"
45       "404":
46         description: Vendor not found
47         schema:
48           $ref: "../swagger.yaml#/definitions/error"
49       "500":
50         description: |
51           Internal server error. Possible `error_code` attribute values:
52
53           * `internal_server_error`
54         schema:
55           $ref: "../swagger.yaml#/definitions/error"
56       "503":
57         description: Under maintenance
58         schema:
59           $ref: "../swagger.yaml#/definitions/error"
60     x-koha-authorization:
61       permissions:
62         acquisition: vendors_manage
63   post:
64     x-mojo-to: Acquisitions::Vendors#add
65     operationId: addVendor
66     tags:
67       - vendors
68     summary: Add vendor
69     parameters:
70       - name: body
71         in: body
72         description: A JSON object representing a vendor
73         required: true
74         schema:
75           $ref: "../swagger.yaml#/definitions/vendor"
76     produces:
77       - application/json
78     responses:
79       "201":
80         description: Vendor added
81         schema:
82           $ref: "../swagger.yaml#/definitions/vendor"
83       "401":
84         description: Authentication required
85         schema:
86           $ref: "../swagger.yaml#/definitions/error"
87       "403":
88         description: Access forbidden
89         schema:
90           $ref: "../swagger.yaml#/definitions/error"
91       "404":
92         description: Vendor not found
93         schema:
94           $ref: "../swagger.yaml#/definitions/error"
95       "500":
96         description: |
97           Internal server error. Possible `error_code` attribute values:
98
99           * `internal_server_error`
100         schema:
101           $ref: "../swagger.yaml#/definitions/error"
102       "503":
103         description: Under maintenance
104         schema:
105           $ref: "../swagger.yaml#/definitions/error"
106     x-koha-authorization:
107       permissions:
108         acquisition: vendors_manage
109 "/acquisitions/vendors/{vendor_id}":
110   get:
111     x-mojo-to: Acquisitions::Vendors#get
112     operationId: getVendor
113     tags:
114       - vendors
115     summary: Get vendor
116     parameters:
117       - $ref: "../swagger.yaml#/parameters/vendor_id_pp"
118     produces:
119       - application/json
120     responses:
121       "200":
122         description: A vendor
123         schema:
124           $ref: "../swagger.yaml#/definitions/vendor"
125       "401":
126         description: Authentication required
127         schema:
128           $ref: "../swagger.yaml#/definitions/error"
129       "403":
130         description: Access forbidden
131         schema:
132           $ref: "../swagger.yaml#/definitions/error"
133       "404":
134         description: Vendor not found
135         schema:
136           $ref: "../swagger.yaml#/definitions/error"
137       "500":
138         description: |
139           Internal server error. Possible `error_code` attribute values:
140
141           * `internal_server_error`
142         schema:
143           $ref: "../swagger.yaml#/definitions/error"
144       "503":
145         description: Under maintenance
146         schema:
147           $ref: "../swagger.yaml#/definitions/error"
148     x-koha-authorization:
149       permissions:
150         acquisition: vendors_manage
151   put:
152     x-mojo-to: Acquisitions::Vendors#update
153     operationId: updateVendor
154     tags:
155       - vendors
156     summary: Update vendor
157     parameters:
158       - $ref: "../swagger.yaml#/parameters/vendor_id_pp"
159       - name: body
160         in: body
161         description: A JSON object representing a vendor
162         required: true
163         schema:
164           $ref: "../swagger.yaml#/definitions/vendor"
165     produces:
166       - application/json
167     responses:
168       "200":
169         description: A vendor
170         schema:
171           $ref: "../swagger.yaml#/definitions/vendor"
172       "401":
173         description: Authentication required
174         schema:
175           $ref: "../swagger.yaml#/definitions/error"
176       "403":
177         description: Access forbidden
178         schema:
179           $ref: "../swagger.yaml#/definitions/error"
180       "404":
181         description: Vendor not found
182         schema:
183           $ref: "../swagger.yaml#/definitions/error"
184       "500":
185         description: |
186           Internal server error. Possible `error_code` attribute values:
187
188           * `internal_server_error`
189         schema:
190           $ref: "../swagger.yaml#/definitions/error"
191       "503":
192         description: Under maintenance
193         schema:
194           $ref: "../swagger.yaml#/definitions/error"
195     x-koha-authorization:
196       permissions:
197         acquisition: vendors_manage
198   delete:
199     x-mojo-to: Acquisitions::Vendors#delete
200     operationId: deleteVendor
201     tags:
202       - vendors
203     summary: Delete vendor
204     parameters:
205       - $ref: "../swagger.yaml#/parameters/vendor_id_pp"
206     produces:
207       - application/json
208     responses:
209       "204":
210         description: Vendor deleted
211       "401":
212         description: Authentication required
213         schema:
214           $ref: "../swagger.yaml#/definitions/error"
215       "403":
216         description: Access forbidden
217         schema:
218           $ref: "../swagger.yaml#/definitions/error"
219       "404":
220         description: Vendor not found
221         schema:
222           $ref: "../swagger.yaml#/definitions/error"
223       "500":
224         description: |
225           Internal server error. Possible `error_code` attribute values:
226
227           * `internal_server_error`
228         schema:
229           $ref: "../swagger.yaml#/definitions/error"
230       "503":
231         description: Under maintenance
232         schema:
233           $ref: "../swagger.yaml#/definitions/error"
234     x-koha-authorization:
235       permissions:
236         acquisition: vendors_manage