openapi: 3.0.1 info: title: Galaxy Training Network API description: | A collection of e-learning materials produced and maintained by GTN Members across the world. IMPORTANT! IF you build anything based off of this API, you must contact us to let us know. This API is UNSTABLE and subject to CHANGE WITHOUT WARNING. When you contact us, if we are interested in supporting the project, then we can advise you to the best APIs that are useful for your use case, or help build new ones that are more useful to you and do not impose unnecessary load on the GTN. Additionally we will consider providing additional stability guarantees for those specific routes you rely on. license: name: MIT & CC-BY 4.0 url: https://github.com/galaxyproject/training-material/blob/main/LICENSE.md version: 1.0.0 servers: - url: https://training.galaxyproject.org/training-material/api/ - url: http://localhost:4000/training-material/api/ tags: - name: materials description: Information about the topics available from the GTN - name: contributors description: GTN Contributor Information - name: internal description: Internal APIs that aren't much use outside. - name: galaxy description: APIs being used inside Galaxy - name: stable description: APIs with higher reliability guarantees paths: /feedback.csv: get: tags: - feedback summary: Obtain user feedback. responses: 200: description: successful operation content: application/csv: schema: type: string /feedback.json: get: tags: - feedback summary: Obtain user feedback. responses: 200: description: successful operation content: application/json: schema: type: string /contributors.json: get: tags: - contributors summary: List all Contributors responses: 200: description: successful operation content: application/json: schema: $ref: '#/components/schemas/ArrayOfUsers' /contributors/{id}.json: get: tags: - contributors summary: Get individual Contributors parameters: - name: id in: path description: ID of user to return example: hexylena required: true schema: type: string responses: 200: description: successful operation content: application/json: schema: $ref: '#/components/schemas/User' /top-tools.json: get: tags: - galaxy - stable summary: List available tutorials by tool responses: 200: description: successful operation content: application/json: schema: type: object /topics.json: get: tags: - materials summary: List topics responses: 200: description: successful operation content: application/json: schema: $ref: '#/components/schemas/Topic' /topics/{topicId}.json: get: tags: - materials parameters: - name: topicId in: path description: ID of the topic example: microbiome required: true schema: type: string summary: Get information about a specific topic responses: 200: description: successful operation content: application/json: schema: $ref: '#/components/schemas/TopicDetail' /topics/{topicId}/tutorials/{tutorialId}/{material}.json: get: tags: - materials parameters: - name: topicId in: path example: microbiome description: ID of the topic required: true schema: type: string - name: tutorialId in: path description: ID of the tutorial example: mothur-miseq-sop-short required: true schema: type: string - name: material in: path description: "'slides' or 'tutorial', whichever material you want to request." required: true example: tutorial schema: type: string summary: Get information about a specific topic responses: 200: description: successful operation content: application/json: schema: $ref: '#/components/schemas/TrainingMaterial' /videos.json: get: tags: - internal summary: List videos responses: 200: description: successful operation content: application/json: schema: type: object /gtn.bib: get: tags: - internal summary: Get the full GTN bibliography library responses: 200: description: successful operation content: text/plain: schema: type: string /ga4gh/trs/v2/tools/{topicId}-{tutorialId}/versions/{workflowId}: get: tags: - ga4gh-trs summary: Obtain a workflow's metadata parameters: - name: topicId in: path description: ID of the topic required: true example: microbiome schema: type: string - name: tutorialId in: path description: ID of the tutorial required: true example: mothur-miseq-sop-short schema: type: string - name: workflowId in: path description: ID of the workflow required: true example: workflow1_quality_control schema: type: string responses: 200: description: successful operation /ga4gh/trs/v2/tools/{topicId}-{tutorialId}/versions/{workflowId}/GALAXY/descriptor: get: tags: - ga4gh-trs summary: Obtain a workflow's information parameters: - name: topicId in: path description: ID of the topic required: true example: microbiome schema: type: string - name: tutorialId in: path description: ID of the tutorial required: true example: mothur-miseq-sop-short schema: type: string - name: workflowId in: path description: ID of the workflow required: true example: workflow1_quality_control schema: type: string responses: 200: description: successful operation /psl.json: get: tags: - tools 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. responses: 200: description: successful operation content: application/json: schema: $ref: '#/components/schemas/Psl' /psl/{toolId}.json: get: tags: - tools parameters: - name: toolId in: path example: toolshed.g2.bx.psu.edu/repos/iuc/abricate/abricate description: Tool ID WITHOUT the version component!! Also when you call it properly you do NOT need to encode the /. required: true schema: type: object 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! responses: 200: description: successful operation content: application/json: schema: $ref: '#/components/schemas/PslIndividual' components: schemas: TrainingMaterial: type: object required: - layout - title properties: layout: type: string description: The internal layout of the material for rendering title: type: string description: The human readable name of the material zenodo_link: type: string description: A link to some datasets on Zenodo required for the tutorial questions: type: array items: type: string description: A list of questions students will answer when following this tutorial objectives: type: array items: type: string description: A list of objectives students will accomplish when following this tutorial key_points: type: array items: type: string description: A list of take aways when completing this training time_estimation: type: string description: An estimate of the amount of time required to complete this tutorial. contributors: $ref: '#/components/schemas/ArrayOfUsers' subtopic: type: string description: Which subtopic (see topic.json information) last_modified_at: type: string description: When was this tutorial last modified topic_name: type: string description: Internal/URL component for the topic tutorial_name: type: string description: Internal/URL component for the tutorial hands_on: type: boolean description: Is there a hands-on available for this material slides: type: boolean description: Are there slides available for this material workflows: type: boolean description: Are there workflows available for this material tours: type: boolean description: Are there tours available for this material video: type: boolean description: Is there a video being auto-generated from the slides User: type: object required: - id - name - joined properties: id: type: string description: The user ID, usually their GitHub username name: type: string description: The name they wish to be refered to with. email: type: string description: Their email orcid: type: string description: ORCID ID twitter: type: string description: Twitter Handle linkedin: type: string description: Linkedin Handle github: type: boolean description: If their username is not equivalent to their github name maintainer_contact: type: string description: Their preferred contact method joined: type: string description: Year + Month (0 padded) when they joined the GTN ArrayOfUsers: type: array items: $ref: "#/components/schemas/User" Topic: type: object required: - name - title - summary - maintainers properties: name: type: string description: The internal topic name (used in URLs) title: type: string description: The human readable title summary: type: string description: A human readable description of the topic's contents. editorial_board: $ref: '#/components/schemas/ArrayOfUsers' TopicDetail: type: object required: - name - title - summary - maintainers properties: name: type: string description: The internal topic name (used in URLs) type: type: string description: Whether it is a science, admin-dev, or contributing topic title: type: string description: The human readable title summary: type: string description: A human readable description of the topic's contents. docker_image: type: string description: A docker image ID of a container with all of the dependencies required for this topic subtopics: type: array items: type: object properties: id: type: string description: Subtopic ID title: type: string description: Subtopic title (presented in the UI to users) description: type: string description: A helpful subtopic description. editorial_board: $ref: '#/components/schemas/ArrayOfUsers' materials: type: array items: $ref: '#/components/schemas/TrainingMaterial' Psl: type: object properties: servers: $ref: '#/components/schemas/ArrayOfServers' tools: $ref: '#/components/schemas/ArrayOfToolVersions' PslIndividual: $ref: '#/components/schemas/ToolVersionClear' ArrayOfServers: type: array items: $ref: "#/components/schemas/Server" Server: type: object properties: url: type: string description: A url for the server name: type: string description: A human readable description ArrayOfToolVersions: type: array items: $ref: "#/components/schemas/ToolVersionOpaque" ToolVersionOpaque: type: object 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. ToolVersionClear: type: object 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.