-
Notifications
You must be signed in to change notification settings - Fork 1
/
openapi.yaml
249 lines (246 loc) · 7.94 KB
/
openapi.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
openapi: 3.0.0
info:
description: scigateway authentication api
title: scigateway-auth
version: "0"
servers:
- url: http://localhost:5000
paths:
/verify:
post:
summary: Given a JWT, verify that it is a valid JWT (e.g. signed by us, not expired etc.)
requestBody:
description: The JWT that is to be verified by the api.
required: true
content:
application/json:
schema:
type: object
properties:
token:
type: string
example: xxxxx.yyyyy.zzzzz
responses:
"200":
description: When the token is valid
"400":
description: When a bad request is sent
"401":
description: When no post body is sent
"403":
description: When the token is not valid
/refresh:
post:
summary: Use a refresh token to generate a new access token from an old one
parameters:
- in: cookie
name: scigateway:refresh_token
schema:
type: string
example: xxxxx.yyyyy.zzzzz
requestBody:
description: The old access token that needs refreshing
required: true
content:
application/json:
schema:
type: object
properties:
token:
type: string
example: "xxxxx.yyyyy.zzzzz"
responses:
"200":
description: A new access token
content:
application/json:
schema:
type: string
example: xxxxx.yyyyy.zzzzz
"400":
description: When either the refresh token or access token are missing
"403":
description: When either the refresh token is unauthorized or the access token is unable to be refreshed
/login:
post:
summary: Given a mnemonic and credentials, attempt to authenticate the user
requestBody:
description: The mnemonic and credentials to be used to login and obtain a session
required: true
content:
application/json:
schema:
type: object
properties:
mnemonic:
type: string
example: uows
credentials:
type: object
properties:
username:
type: string
example: user
password:
type: string
example: password
responses:
"200":
description: A JWT
content:
application/json:
schema:
type: string
example: xxxxx.yyyyy.zzzzz
"400":
description: When a bad request is sent
"401":
description: When no post body is sent
"403":
description: When bad credentials are provided
/authenticators:
get:
summary: Returns a list of valid ICAT authenticators
responses:
"200":
description: The list of ICAT authenticators
content:
application/json:
schema:
type: array
items:
type: object
required:
- mnemonic
- keys
properties:
mnemonic:
type: string
example: ldap
keys:
type: array
items:
type: object
required:
- name
properties:
name:
type: string
example: username
hidden:
type: boolean
default: false
friendly:
type: string
example: LDAP
admin:
type: boolean
default: false
"500":
description: When the call to ICAT fails
/maintenace:
get:
summary: Returns a JSON object that represents the maintenance mode state
responses:
"200":
description: The maintenance mode state in form of a JSON object
content:
application/json:
schema:
type: object
required:
- show
- message
properties:
show:
type: boolean
example: false
message:
type: string
example: Sorry, we are down for scheduled maintenance
"500":
description: When maintenance mode state retrieval fails
put:
summary: Updates the maintenance mode state given an access token and a state
requestBody:
description: The access token and state to be used to verify the user and update the maintenance mode state with
required: true
content:
application/json:
schema:
type: object
properties:
token:
type: string
example: xxxxx.yyyyy.zzzzz
maintenance:
type: object
properties:
show:
type: boolean
example: true
message:
type: string
example: Sorry, we are down for scheduled maintenance.
responses:
"200":
description: When state update is successful
"400":
description: When the JSON data is invalid
"403":
description: When the access token is invalid or the user is not admin
"500":
description: When an error occurs while the JSON file is updated
/scheduled_maintenace:
get:
summary: Returns a JSON object that represents the scheduled maintenance mode state
responses:
"200":
description: The scheduled maintenance mode state in form of a JSON object
content:
application/json:
schema:
type: object
required:
- show
- message
properties:
show:
type: boolean
example: false
message:
type: string
example: Maintenance scheduled for tomorrow at 12:00
"500":
description: When maintenance scheduled mode state retrieval fails
put:
summary: Updates the scheduled maintenance mode state given an access token and a state
requestBody:
description: The access token and state to be used to verify the user and update the scheduled maintenance mode state with
required: true
content:
application/json:
schema:
type: object
properties:
token:
type: string
example: xxxxx.yyyyy.zzzzz
scheduledMaintenance:
type: object
properties:
show:
type: boolean
example: true
message:
type: string
example: Maintenance scheduled for tomorrow at 13:00
responses:
"200":
description: When state update is successful
"400":
description: When the JSON data is invalid
"403":
description: When the access token is invalid or the user is not admin
"500":
description: When an error occurs while the JSON file is updated