Skip to content

Commit 73b44e7

Browse files
committed
Add openapi.yml
v1
1 parent f73f85d commit 73b44e7

File tree

1 file changed

+359
-0
lines changed

1 file changed

+359
-0
lines changed

schemas/openapi.yml

Lines changed: 359 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,359 @@
1+
openapi: 3.0.1
2+
info:
3+
title: Sessionize JSON-REST API
4+
description: Sessionize JSON-REST API documentation by XDEV Software
5+
license:
6+
name: Apache 2.0
7+
url: http://www.apache.org/licenses/LICENSE-2.0.html
8+
version: '2.0'
9+
externalDocs:
10+
description: Sessionize's API documentation
11+
url: https://sessionize.com/playbook/api
12+
servers:
13+
- url: https://sessionize.com
14+
paths:
15+
/api/v2/{endpointId}/view/All:
16+
get:
17+
parameters:
18+
- name: endpointId
19+
in: path
20+
required: true
21+
schema:
22+
type: string
23+
example: jl4ktls0
24+
responses:
25+
'200':
26+
description: Returned if the request is successful
27+
content:
28+
application/json:
29+
schema:
30+
type: object
31+
properties:
32+
sessions:
33+
type: array
34+
items:
35+
$ref: '#/components/schemas/Session'
36+
speakers:
37+
type: array
38+
items:
39+
$ref: '#/components/schemas/Speaker'
40+
questions:
41+
type: array
42+
items:
43+
$ref: '#/components/schemas/Question'
44+
categories:
45+
type: array
46+
items:
47+
$ref: '#/components/schemas/Category'
48+
rooms:
49+
type: array
50+
items:
51+
$ref: '#/components/schemas/Room'
52+
required:
53+
- categories
54+
- questions
55+
- rooms
56+
- sessions
57+
- speakers
58+
deprecated: false
59+
/api/v2/{endpointId}/view/Speakers:
60+
get:
61+
parameters:
62+
- name: endpointId
63+
in: path
64+
required: true
65+
schema:
66+
type: string
67+
example: jl4ktls0
68+
responses:
69+
'200':
70+
description: Returned if the request is successful
71+
content:
72+
application/json:
73+
schema:
74+
type: array
75+
items:
76+
$ref: '#/components/schemas/Speaker'
77+
deprecated: false
78+
/api/v2/{endpointId}/view/Sessions:
79+
get:
80+
parameters:
81+
- name: endpointId
82+
in: path
83+
required: true
84+
schema:
85+
type: string
86+
example: jl4ktls0
87+
responses:
88+
'200':
89+
description: Returned if the request is successful
90+
content:
91+
application/json:
92+
schema:
93+
type: array
94+
items:
95+
$ref: '#/components/schemas/SessionGroup'
96+
deprecated: false
97+
components:
98+
schemas:
99+
Category:
100+
type: object
101+
properties:
102+
id:
103+
type: integer
104+
title:
105+
type: string
106+
items:
107+
type: array
108+
items:
109+
$ref: '#/components/schemas/CategoryItem'
110+
sort:
111+
type: integer
112+
type:
113+
type: string
114+
required:
115+
- id
116+
- items
117+
- sort
118+
- title
119+
- type
120+
CategoryItem:
121+
type: object
122+
properties:
123+
id:
124+
type: integer
125+
name:
126+
type: string
127+
sort:
128+
type: integer
129+
required:
130+
- id
131+
- name
132+
- sort
133+
Link:
134+
type: object
135+
properties:
136+
title:
137+
type: string
138+
url:
139+
type: string
140+
format: uri
141+
linkType:
142+
type: string
143+
required:
144+
- linkType
145+
- title
146+
- url
147+
Question:
148+
type: object
149+
properties:
150+
id:
151+
type: integer
152+
question:
153+
type: string
154+
questionType:
155+
type: string
156+
sort:
157+
type: integer
158+
required:
159+
- id
160+
- question
161+
- questionType
162+
- sort
163+
QuestionAnswer:
164+
type: object
165+
properties:
166+
questionId:
167+
type: integer
168+
answerValue:
169+
type: string
170+
required:
171+
- answerValue
172+
- questionId
173+
QuestionAnswerFull:
174+
type: object
175+
properties:
176+
id:
177+
type: integer
178+
question:
179+
type: string
180+
questionType:
181+
type: string
182+
answer:
183+
type: string
184+
nullable: true
185+
sort:
186+
type: integer
187+
# answerExtra is always null; ignored
188+
required:
189+
- id
190+
- question
191+
- questionType
192+
- answer
193+
- sort
194+
Room:
195+
type: object
196+
properties:
197+
id:
198+
type: integer
199+
name:
200+
type: string
201+
sort:
202+
type: integer
203+
required:
204+
- id
205+
- name
206+
- sort
207+
Session:
208+
type: object
209+
properties:
210+
id:
211+
type: string
212+
format: integer
213+
title:
214+
type: string
215+
description:
216+
type: string
217+
nullable: true
218+
startsAt:
219+
type: string
220+
format: date-time
221+
nullable: true
222+
endsAt:
223+
type: string
224+
format: date-time
225+
nullable: true
226+
isServiceSession:
227+
type: boolean
228+
isPlenumSession:
229+
type: boolean
230+
speakers:
231+
type: array
232+
items:
233+
anyOf:
234+
- type: string # All Endpoint
235+
format: uuid
236+
- $ref: '#/components/schemas/SpeakerMinimal' # Sessions Endpoint
237+
categoryItems:
238+
type: array
239+
items:
240+
type: integer
241+
questionAnswers:
242+
type: array
243+
items:
244+
anyOf:
245+
- $ref: '#/components/schemas/QuestionAnswer' # All Endpoint
246+
- $ref: '#/components/schemas/QuestionAnswerFull' # Sessions Endpoint
247+
roomId:
248+
type: integer
249+
nullable: true
250+
liveUrl:
251+
type: string
252+
format: uri
253+
nullable: true
254+
recordingUrl:
255+
type: string
256+
format: uri
257+
nullable: true
258+
status:
259+
$ref: '#/components/schemas/Status'
260+
nullable: true
261+
required:
262+
- categoryItems
263+
- endsAt
264+
- id
265+
- isPlenumSession
266+
- isServiceSession
267+
- questionAnswers
268+
- roomId
269+
- speakers
270+
- startsAt
271+
- status
272+
- title
273+
SessionGroup:
274+
type: object
275+
properties:
276+
groupId:
277+
type: integer
278+
groupName:
279+
type: string
280+
sessions:
281+
type: array
282+
items:
283+
$ref: '#/components/schemas/Session'
284+
isDefault:
285+
type: boolean
286+
SessionMinimal:
287+
type: object
288+
properties:
289+
id:
290+
type: integer
291+
name:
292+
type: string
293+
required:
294+
- id
295+
- name
296+
Speaker:
297+
type: object
298+
properties:
299+
id:
300+
type: string
301+
format: uuid
302+
firstName:
303+
type: string
304+
lastName:
305+
type: string
306+
bio:
307+
type: string
308+
nullable: true
309+
tagLine:
310+
type: string
311+
nullable: true
312+
profilePicture:
313+
type: string
314+
format: uri
315+
nullable: true
316+
isTopSpeaker:
317+
type: boolean
318+
links:
319+
type: array
320+
items:
321+
$ref: '#/components/schemas/Link'
322+
sessions:
323+
type: array
324+
items:
325+
anyOf:
326+
- type: integer # All Endpoint
327+
- $ref: '#/components/schemas/SessionMinimal' # Speakers Endpoint
328+
fullName:
329+
type: string
330+
# categoryItems - Always empty; ignored
331+
# questionAnswers - Always empty; ignored
332+
required:
333+
- firstName
334+
- fullName
335+
- id
336+
- isTopSpeaker
337+
- lastName
338+
- links
339+
- sessions
340+
- tagLine
341+
SpeakerMinimal:
342+
type: object
343+
properties:
344+
id:
345+
type: string
346+
format: uuid
347+
name:
348+
type: string
349+
required:
350+
- id
351+
- name
352+
Status:
353+
type: string
354+
enum:
355+
- Accepted
356+
- Accepted_Queue
357+
- Nominated
358+
- Decline_Queue
359+
- Declined

0 commit comments

Comments
 (0)