Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
galaxyproject
GitHub Repository: galaxyproject/training-material
Path: blob/main/api/swagger.json
1677 views
1
{
2
"openapi": "3.0.1",
3
"info": {
4
"title": "Galaxy Training Network API",
5
"description": "A collection of tutorials generated and maintained by Galaxy Community Members across the world",
6
"license": {
7
"name": "MIT & CC-BY 4.0",
8
"url": "https://github.com/galaxyproject/training-material/blob/main/LICENSE.md"
9
},
10
"version": "1.0.0"
11
},
12
"servers": [
13
{
14
"url": "https://training.galaxyproject.org/training-material/api/"
15
},
16
{
17
"url": "http://localhost:4000/training-material/api/"
18
}
19
],
20
"tags": [
21
{
22
"name": "materials",
23
"description": "Information about the topics available from the GTN"
24
},
25
{
26
"name": "contributors",
27
"description": "GTN Contributor Information"
28
},
29
{
30
"name": "internal",
31
"description": "Internal APIs that aren't much use outside."
32
}
33
],
34
"paths": {
35
"/feedback.csv": {
36
"get": {
37
"tags": [
38
"feedback"
39
],
40
"summary": "Obtain user feedback.",
41
"responses": {
42
"200": {
43
"description": "successful operation",
44
"content": {
45
"application/csv": {
46
"schema": {
47
"type": "string"
48
}
49
}
50
}
51
}
52
}
53
}
54
},
55
"/feedback.json": {
56
"get": {
57
"tags": [
58
"feedback"
59
],
60
"summary": "Obtain user feedback.",
61
"responses": {
62
"200": {
63
"description": "successful operation",
64
"content": {
65
"application/json": {
66
"schema": {
67
"type": "string"
68
}
69
}
70
}
71
}
72
}
73
}
74
},
75
"/contributors.json": {
76
"get": {
77
"tags": [
78
"contributors"
79
],
80
"summary": "List all Contributors",
81
"responses": {
82
"200": {
83
"description": "successful operation",
84
"content": {
85
"application/json": {
86
"schema": {
87
"$ref": "#/components/schemas/ArrayOfUsers"
88
}
89
}
90
}
91
}
92
}
93
}
94
},
95
"/contributors/{id}.json": {
96
"get": {
97
"tags": [
98
"contributors"
99
],
100
"summary": "Get individual Contributors",
101
"parameters": [
102
{
103
"name": "id",
104
"in": "path",
105
"description": "ID of user to return",
106
"example": "hexylena",
107
"required": true,
108
"schema": {
109
"type": "string"
110
}
111
}
112
],
113
"responses": {
114
"200": {
115
"description": "successful operation",
116
"content": {
117
"application/json": {
118
"schema": {
119
"$ref": "#/components/schemas/User"
120
}
121
}
122
}
123
}
124
}
125
}
126
},
127
"/topics.json": {
128
"get": {
129
"tags": [
130
"materials"
131
],
132
"summary": "List topics",
133
"responses": {
134
"200": {
135
"description": "successful operation",
136
"content": {
137
"application/json": {
138
"schema": {
139
"$ref": "#/components/schemas/Topic"
140
}
141
}
142
}
143
}
144
}
145
}
146
},
147
"/topics/{topicId}.json": {
148
"get": {
149
"tags": [
150
"materials"
151
],
152
"parameters": [
153
{
154
"name": "topicId",
155
"in": "path",
156
"description": "ID of the topic",
157
"example": "microbiome",
158
"required": true,
159
"schema": {
160
"type": "string"
161
}
162
}
163
],
164
"summary": "Get information about a specific topic",
165
"responses": {
166
"200": {
167
"description": "successful operation",
168
"content": {
169
"application/json": {
170
"schema": {
171
"$ref": "#/components/schemas/TopicDetail"
172
}
173
}
174
}
175
}
176
}
177
}
178
},
179
"/topics/{topicId}/tutorials/{tutorialId}/{material}.json": {
180
"get": {
181
"tags": [
182
"materials"
183
],
184
"parameters": [
185
{
186
"name": "topicId",
187
"in": "path",
188
"example": "metagenomics",
189
"description": "ID of the topic",
190
"required": true,
191
"schema": {
192
"type": "string"
193
}
194
},
195
{
196
"name": "tutorialId",
197
"in": "path",
198
"description": "ID of the tutorial",
199
"example": "mothur-miseq-sop-short",
200
"required": true,
201
"schema": {
202
"type": "string"
203
}
204
},
205
{
206
"name": "material",
207
"in": "path",
208
"description": "'slides' or 'tutorial', whichever material you want to request.",
209
"required": true,
210
"example": "tutorial",
211
"schema": {
212
"type": "string"
213
}
214
}
215
],
216
"summary": "Get information about a specific topic",
217
"responses": {
218
"200": {
219
"description": "successful operation",
220
"content": {
221
"application/json": {
222
"schema": {
223
"$ref": "#/components/schemas/TrainingMaterial"
224
}
225
}
226
}
227
}
228
}
229
}
230
},
231
"/videos.json": {
232
"get": {
233
"tags": [
234
"internal"
235
],
236
"summary": "List videos",
237
"responses": {
238
"200": {
239
"description": "successful operation",
240
"content": {
241
"application/json": {
242
"schema": {
243
"type": "object"
244
}
245
}
246
}
247
}
248
}
249
}
250
},
251
"/gtn.bib": {
252
"get": {
253
"tags": [
254
"internal"
255
],
256
"summary": "Get the full GTN bibliography library",
257
"responses": {
258
"200": {
259
"description": "successful operation",
260
"content": {
261
"text/plain": {
262
"schema": {
263
"type": "string"
264
}
265
}
266
}
267
}
268
}
269
}
270
},
271
"/ga4gh/trs/v2/tools/{topicId}-{tutorialId}/versions/{workflowId}": {
272
"get": {
273
"tags": [
274
"ga4gh-trs"
275
],
276
"summary": "Obtain a workflow's metadata",
277
"parameters": [
278
{
279
"name": "topicId",
280
"in": "path",
281
"description": "ID of the topic",
282
"required": true,
283
"example": "metagenomics",
284
"schema": {
285
"type": "string"
286
}
287
},
288
{
289
"name": "tutorialId",
290
"in": "path",
291
"description": "ID of the tutorial",
292
"required": true,
293
"example": "mothur-miseq-sop-short",
294
"schema": {
295
"type": "string"
296
}
297
},
298
{
299
"name": "workflowId",
300
"in": "path",
301
"description": "ID of the workflow",
302
"required": true,
303
"example": "workflow1_quality_control",
304
"schema": {
305
"type": "string"
306
}
307
}
308
],
309
"responses": {
310
"200": {
311
"description": "successful operation"
312
}
313
}
314
}
315
},
316
"/ga4gh/trs/v2/tools/{topicId}-{tutorialId}/versions/{workflowId}/GALAXY/descriptor": {
317
"get": {
318
"tags": [
319
"ga4gh-trs"
320
],
321
"summary": "Obtain a workflow's information",
322
"parameters": [
323
{
324
"name": "topicId",
325
"in": "path",
326
"description": "ID of the topic",
327
"required": true,
328
"example": "metagenomics",
329
"schema": {
330
"type": "string"
331
}
332
},
333
{
334
"name": "tutorialId",
335
"in": "path",
336
"description": "ID of the tutorial",
337
"required": true,
338
"example": "mothur-miseq-sop-short",
339
"schema": {
340
"type": "string"
341
}
342
},
343
{
344
"name": "workflowId",
345
"in": "path",
346
"description": "ID of the workflow",
347
"required": true,
348
"example": "workflow1_quality_control",
349
"schema": {
350
"type": "string"
351
}
352
}
353
],
354
"responses": {
355
"200": {
356
"description": "successful operation"
357
}
358
}
359
}
360
},
361
"/psl.json": {
362
"get": {
363
"tags": [
364
"tools"
365
],
366
"summary": "Get the GTN's public server tool listing. It lists all known public servers that are reachable at the time of the GTN's deployment, and which tool versions are installed on each of those servers.",
367
"responses": {
368
"200": {
369
"description": "successful operation",
370
"content": {
371
"application/json": {
372
"schema": {
373
"$ref": "#/components/schemas/Psl"
374
}
375
}
376
}
377
}
378
}
379
}
380
},
381
"/psl/{toolId}.json": {
382
"get": {
383
"tags": [
384
"tools"
385
],
386
"parameters": [
387
{
388
"name": "toolId",
389
"in": "path",
390
"example": "toolshed.g2.bx.psu.edu/repos/iuc/abricate/abricate",
391
"description": "Tool ID WITHOUT the version component!! Also when you call it properly you do NOT need to encode the /.",
392
"required": true,
393
"schema": {
394
"type": "object"
395
}
396
}
397
],
398
"summary": "Get the GTN's public server tool listing for a specific tool ID. It lists all known public servers that are reachable at the time of the GTN's deployment, and which versions of this tool are available. It's very important that you strip the version component!",
399
"responses": {
400
"200": {
401
"description": "successful operation",
402
"content": {
403
"application/json": {
404
"schema": {
405
"$ref": "#/components/schemas/PslIndividual"
406
}
407
}
408
}
409
}
410
}
411
}
412
}
413
},
414
"components": {
415
"schemas": {
416
"TrainingMaterial": {
417
"type": "object",
418
"required": [
419
"layout",
420
"title"
421
],
422
"properties": {
423
"layout": {
424
"type": "string",
425
"description": "The internal layout of the material for rendering"
426
},
427
"title": {
428
"type": "string",
429
"description": "The human readable name of the material"
430
},
431
"zenodo_link": {
432
"type": "string",
433
"description": "A link to some datasets on Zenodo required for the tutorial"
434
},
435
"questions": {
436
"type": "array",
437
"items": {
438
"type": "string"
439
},
440
"description": "A list of questions students will answer when following this tutorial"
441
},
442
"objectives": {
443
"type": "array",
444
"items": {
445
"type": "string"
446
},
447
"description": "A list of objectives students will accomplish when following this tutorial"
448
},
449
"key_points": {
450
"type": "array",
451
"items": {
452
"type": "string"
453
},
454
"description": "A list of take aways when completing this training"
455
},
456
"time_estimation": {
457
"type": "string",
458
"description": "An estimate of the amount of time required to complete this tutorial."
459
},
460
"contributors": {
461
"$ref": "#/components/schemas/ArrayOfUsers"
462
},
463
"subtopic": {
464
"type": "string",
465
"description": "Which subtopic (see topic.json information)"
466
},
467
"last_modified_at": {
468
"type": "string",
469
"description": "When was this tutorial last modified"
470
},
471
"topic_name": {
472
"type": "string",
473
"description": "Internal/URL component for the topic"
474
},
475
"tutorial_name": {
476
"type": "string",
477
"description": "Internal/URL component for the tutorial"
478
},
479
"hands_on": {
480
"type": "boolean",
481
"description": "Is there a hands-on available for this material"
482
},
483
"slides": {
484
"type": "boolean",
485
"description": "Are there slides available for this material"
486
},
487
"workflows": {
488
"type": "boolean",
489
"description": "Are there workflows available for this material"
490
},
491
"tours": {
492
"type": "boolean",
493
"description": "Are there tours available for this material"
494
},
495
"video": {
496
"type": "boolean",
497
"description": "Is there a video being auto-generated from the slides"
498
}
499
}
500
},
501
"User": {
502
"type": "object",
503
"required": [
504
"id",
505
"name",
506
"joined"
507
],
508
"properties": {
509
"id": {
510
"type": "string",
511
"description": "The user ID, usually their GitHub username"
512
},
513
"name": {
514
"type": "string",
515
"description": "The name they wish to be refered to with."
516
},
517
"email": {
518
"type": "string",
519
"description": "Their email"
520
},
521
"orcid": {
522
"type": "string",
523
"description": "ORCID ID"
524
},
525
"twitter": {
526
"type": "string",
527
"description": "Twitter Handle"
528
},
529
"linkedin": {
530
"type": "string",
531
"description": "Linkedin Handle"
532
},
533
"github": {
534
"type": "boolean",
535
"description": "If their username is not equivalent to their github name"
536
},
537
"maintainer_contact": {
538
"type": "string",
539
"description": "Their preferred contact method"
540
},
541
"joined": {
542
"type": "string",
543
"description": "Year + Month (0 padded) when they joined the GTN"
544
}
545
}
546
},
547
"ArrayOfUsers": {
548
"type": "array",
549
"items": {
550
"$ref": "#/components/schemas/User"
551
}
552
},
553
"Topic": {
554
"type": "object",
555
"required": [
556
"name",
557
"title",
558
"summary",
559
"maintainers"
560
],
561
"properties": {
562
"name": {
563
"type": "string",
564
"description": "The internal topic name (used in URLs)"
565
},
566
"title": {
567
"type": "string",
568
"description": "The human readable title"
569
},
570
"summary": {
571
"type": "string",
572
"description": "A human readable description of the topic's contents."
573
},
574
"editorial_board": {
575
"$ref": "#/components/schemas/ArrayOfUsers"
576
}
577
}
578
},
579
"TopicDetail": {
580
"type": "object",
581
"required": [
582
"name",
583
"title",
584
"summary",
585
"maintainers"
586
],
587
"properties": {
588
"name": {
589
"type": "string",
590
"description": "The internal topic name (used in URLs)"
591
},
592
"type": {
593
"type": "string",
594
"description": "Whether it is a science, admin-dev, or contributing topic"
595
},
596
"title": {
597
"type": "string",
598
"description": "The human readable title"
599
},
600
"summary": {
601
"type": "string",
602
"description": "A human readable description of the topic's contents."
603
},
604
"docker_image": {
605
"type": "string",
606
"description": "A docker image ID of a container with all of the dependencies required for this topic"
607
},
608
"subtopics": {
609
"type": "array",
610
"items": {
611
"type": "object",
612
"properties": {
613
"id": {
614
"type": "string",
615
"description": "Subtopic ID"
616
},
617
"title": {
618
"type": "string",
619
"description": "Subtopic title (presented in the UI to users)"
620
},
621
"description": {
622
"type": "string",
623
"description": "A helpful subtopic description."
624
}
625
}
626
}
627
},
628
"editorial_board": {
629
"$ref": "#/components/schemas/ArrayOfUsers"
630
},
631
"materials": {
632
"type": "array",
633
"items": {
634
"$ref": "#/components/schemas/TrainingMaterial"
635
}
636
}
637
}
638
},
639
"Psl": {
640
"type": "object",
641
"properties": {
642
"servers": {
643
"$ref": "#/components/schemas/ArrayOfServers"
644
},
645
"tools": {
646
"$ref": "#/components/schemas/ArrayOfToolVersions"
647
}
648
}
649
},
650
"PslIndividual": {
651
"$ref": "#/components/schemas/ToolVersionClear"
652
},
653
"ArrayOfServers": {
654
"type": "array",
655
"items": {
656
"$ref": "#/components/schemas/Server"
657
}
658
},
659
"Server": {
660
"type": "object",
661
"properties": {
662
"url": {
663
"type": "string",
664
"description": "A url for the server"
665
},
666
"name": {
667
"type": "string",
668
"description": "A human readable description"
669
}
670
}
671
},
672
"ArrayOfToolVersions": {
673
"type": "array",
674
"items": {
675
"$ref": "#/components/schemas/ToolVersionOpaque"
676
}
677
},
678
"ToolVersionOpaque": {
679
"type": "object",
680
"description": "A hash/dict where the top level keys are the known versions of that tool (or '_' for built in tools), and then the servers that have that tool. Note that the servers are actually a list of integers which refer to the Server listing field."
681
},
682
"ToolVersionClear": {
683
"type": "object",
684
"description": "A hash/dict where the top level keys are the known versions of that tool (or '_' for built in tools), and then the servers that have that tool."
685
}
686
}
687
}
688
}
689