Created
September 10, 2022 15:50
-
-
Save ikenna/fde588540db2a69dbc7d32f8db8fe1d6 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # Copied from https://github.com/columbia-it/django-jsonapi-training/blob/master/docs/schemas/openapi.yaml | |
| openapi: 3.0.2 | |
| info: | |
| version: 1.2.0 | |
| title: myapp | |
| description: ' | |
| A sample API that uses courses as an example to demonstrate representing | |
| [JSON:API 1.0](http://jsonapi.org/format) in the OpenAPI 3.0 specification. | |
| See [https://columbia-it-django-jsonapi-training.readthedocs.io](https://columbia-it-django-jsonapi-training.readthedocs.io) | |
| for more about this. | |
| (c) 2018-2021 The Trustees of Columbia University in the City of New York | |
| ' | |
| contact: | |
| name: Alan Crosswell | |
| license: | |
| name: Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) | |
| License | |
| url: https://creativecommons.org/licenses/by-nc-sa/4.0/legalcode | |
| paths: | |
| /v1/courses/: | |
| get: | |
| operationId: List/v1/courses/ | |
| description: "A course of instruction. e.g. COMSW1002 Computing in Context\n\ | |
| \ntesting [mkdocstrings](https://pawamoy.github.io/mkdocstrings):\n\nChanges\ | |
| \ from [sphinxcontrib.apidoc](https://github.com/sphinx-contrib/apidoc):\n\ | |
| \n* Uses markdown in docstring rather than RsT. Will require lots of changes\ | |
| \ to docstrings.\n* Must have a docstring under each member in order for it\ | |
| \ to show up in the docs:\n * `#:` does not implement apidoc-style comments\ | |
| \ for members." | |
| parameters: | |
| - $ref: '#/components/parameters/include' | |
| - $ref: '#/components/parameters/fields' | |
| - $ref: '#/components/parameters/sort' | |
| - name: page[number] | |
| required: false | |
| in: query | |
| description: A page number within the paginated result set. | |
| schema: | |
| type: integer | |
| - name: page[size] | |
| required: false | |
| in: query | |
| description: Number of results to return per page. | |
| schema: | |
| type: integer | |
| - name: sort | |
| required: false | |
| in: query | |
| description: Which field to use when ordering the results. | |
| schema: | |
| type: string | |
| - name: filter[id] | |
| required: false | |
| in: query | |
| description: id | |
| schema: | |
| type: string | |
| - name: filter[id.lt] | |
| required: false | |
| in: query | |
| description: id__lt | |
| schema: | |
| type: string | |
| - name: filter[id.gt] | |
| required: false | |
| in: query | |
| description: id__gt | |
| schema: | |
| type: string | |
| - name: filter[id.gte] | |
| required: false | |
| in: query | |
| description: id__gte | |
| schema: | |
| type: string | |
| - name: filter[id.lte] | |
| required: false | |
| in: query | |
| description: id__lte | |
| schema: | |
| type: string | |
| - name: filter[id.in] | |
| required: false | |
| in: query | |
| description: id__in | |
| schema: | |
| type: string | |
| - name: filter[subject_area_code] | |
| required: false | |
| in: query | |
| description: subject_area_code | |
| schema: | |
| type: string | |
| - name: filter[subject_area_code.lt] | |
| required: false | |
| in: query | |
| description: subject_area_code__lt | |
| schema: | |
| type: string | |
| - name: filter[subject_area_code.gt] | |
| required: false | |
| in: query | |
| description: subject_area_code__gt | |
| schema: | |
| type: string | |
| - name: filter[subject_area_code.gte] | |
| required: false | |
| in: query | |
| description: subject_area_code__gte | |
| schema: | |
| type: string | |
| - name: filter[subject_area_code.lte] | |
| required: false | |
| in: query | |
| description: subject_area_code__lte | |
| schema: | |
| type: string | |
| - name: filter[subject_area_code.in] | |
| required: false | |
| in: query | |
| description: subject_area_code__in | |
| schema: | |
| type: string | |
| - name: filter[course_name] | |
| required: false | |
| in: query | |
| description: course_name | |
| schema: | |
| type: string | |
| - name: filter[course_name.icontains] | |
| required: false | |
| in: query | |
| description: course_name__icontains | |
| schema: | |
| type: string | |
| - name: filter[course_name.iexact] | |
| required: false | |
| in: query | |
| description: course_name__iexact | |
| schema: | |
| type: string | |
| - name: filter[course_name.contains] | |
| required: false | |
| in: query | |
| description: course_name__contains | |
| schema: | |
| type: string | |
| - name: filter[course_description.icontains] | |
| required: false | |
| in: query | |
| description: course_description__icontains | |
| schema: | |
| type: string | |
| - name: filter[course_description.iexact] | |
| required: false | |
| in: query | |
| description: course_description__iexact | |
| schema: | |
| type: string | |
| - name: filter[course_description.contains] | |
| required: false | |
| in: query | |
| description: course_description__contains | |
| schema: | |
| type: string | |
| - name: filter[course_description] | |
| required: false | |
| in: query | |
| description: course_description | |
| schema: | |
| type: string | |
| - name: filter[course_description.lt] | |
| required: false | |
| in: query | |
| description: course_description__lt | |
| schema: | |
| type: string | |
| - name: filter[course_description.gt] | |
| required: false | |
| in: query | |
| description: course_description__gt | |
| schema: | |
| type: string | |
| - name: filter[course_description.gte] | |
| required: false | |
| in: query | |
| description: course_description__gte | |
| schema: | |
| type: string | |
| - name: filter[course_description.lte] | |
| required: false | |
| in: query | |
| description: course_description__lte | |
| schema: | |
| type: string | |
| - name: filter[course_description.in] | |
| required: false | |
| in: query | |
| description: course_description__in | |
| schema: | |
| type: string | |
| - name: filter[course_identifier.icontains] | |
| required: false | |
| in: query | |
| description: course_identifier__icontains | |
| schema: | |
| type: string | |
| - name: filter[course_identifier.iexact] | |
| required: false | |
| in: query | |
| description: course_identifier__iexact | |
| schema: | |
| type: string | |
| - name: filter[course_identifier.contains] | |
| required: false | |
| in: query | |
| description: course_identifier__contains | |
| schema: | |
| type: string | |
| - name: filter[course_identifier] | |
| required: false | |
| in: query | |
| description: course_identifier | |
| schema: | |
| type: string | |
| - name: filter[course_identifier.lt] | |
| required: false | |
| in: query | |
| description: course_identifier__lt | |
| schema: | |
| type: string | |
| - name: filter[course_identifier.gt] | |
| required: false | |
| in: query | |
| description: course_identifier__gt | |
| schema: | |
| type: string | |
| - name: filter[course_identifier.gte] | |
| required: false | |
| in: query | |
| description: course_identifier__gte | |
| schema: | |
| type: string | |
| - name: filter[course_identifier.lte] | |
| required: false | |
| in: query | |
| description: course_identifier__lte | |
| schema: | |
| type: string | |
| - name: filter[course_identifier.in] | |
| required: false | |
| in: query | |
| description: course_identifier__in | |
| schema: | |
| type: string | |
| - name: filter[course_number] | |
| required: false | |
| in: query | |
| description: course_number | |
| schema: | |
| type: string | |
| - name: filter[course_terms.term_identifier] | |
| required: false | |
| in: query | |
| description: course_terms__term_identifier | |
| schema: | |
| type: string | |
| - name: filter[course_terms.term_identifier.lt] | |
| required: false | |
| in: query | |
| description: course_terms__term_identifier__lt | |
| schema: | |
| type: string | |
| - name: filter[course_terms.term_identifier.gt] | |
| required: false | |
| in: query | |
| description: course_terms__term_identifier__gt | |
| schema: | |
| type: string | |
| - name: filter[course_terms.term_identifier.gte] | |
| required: false | |
| in: query | |
| description: course_terms__term_identifier__gte | |
| schema: | |
| type: string | |
| - name: filter[course_terms.term_identifier.lte] | |
| required: false | |
| in: query | |
| description: course_terms__term_identifier__lte | |
| schema: | |
| type: string | |
| - name: filter[course_terms.term_identifier.in] | |
| required: false | |
| in: query | |
| description: course_terms__term_identifier__in | |
| schema: | |
| type: string | |
| - name: filter[school_bulletin_prefix_code] | |
| required: false | |
| in: query | |
| description: school_bulletin_prefix_code | |
| schema: | |
| type: string | |
| - name: filter[school_bulletin_prefix_code.regex] | |
| required: false | |
| in: query | |
| description: school_bulletin_prefix_code__regex | |
| schema: | |
| type: string | |
| - name: filter[search] | |
| required: false | |
| in: query | |
| description: A search term. | |
| schema: | |
| type: string | |
| responses: | |
| '200': | |
| description: List/v1/courses/ | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| type: object | |
| required: | |
| - data | |
| properties: | |
| data: | |
| type: array | |
| items: | |
| $ref: '#/components/schemas/Course' | |
| included: | |
| type: array | |
| uniqueItems: true | |
| items: | |
| $ref: '#/components/schemas/resource' | |
| links: | |
| description: Link members related to primary data | |
| allOf: | |
| - $ref: '#/components/schemas/links' | |
| - $ref: '#/components/schemas/pagination' | |
| jsonapi: | |
| $ref: '#/components/schemas/jsonapi' | |
| '401': | |
| description: not authorized | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| '404': | |
| description: not found | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| post: | |
| operationId: create/v1/courses/ | |
| description: "A course of instruction. e.g. COMSW1002 Computing in Context\n\ | |
| \ntesting [mkdocstrings](https://pawamoy.github.io/mkdocstrings):\n\nChanges\ | |
| \ from [sphinxcontrib.apidoc](https://github.com/sphinx-contrib/apidoc):\n\ | |
| \n* Uses markdown in docstring rather than RsT. Will require lots of changes\ | |
| \ to docstrings.\n* Must have a docstring under each member in order for it\ | |
| \ to show up in the docs:\n * `#:` does not implement apidoc-style comments\ | |
| \ for members." | |
| parameters: [] | |
| requestBody: | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| required: | |
| - data | |
| properties: | |
| data: | |
| type: object | |
| required: | |
| - type | |
| additionalProperties: false | |
| properties: | |
| type: | |
| $ref: '#/components/schemas/type' | |
| id: | |
| $ref: '#/components/schemas/id' | |
| links: | |
| type: object | |
| properties: | |
| self: | |
| $ref: '#/components/schemas/link' | |
| attributes: | |
| type: object | |
| properties: | |
| effective_start_date: | |
| type: string | |
| format: date | |
| nullable: true | |
| description: date when this instance becomes valid | |
| effective_end_date: | |
| type: string | |
| format: date | |
| nullable: true | |
| description: date when this instance becomes invalid | |
| school_bulletin_prefix_code: | |
| type: string | |
| maxLength: 10 | |
| suffix_two: | |
| type: string | |
| description: two-character identifier suffix | |
| maxLength: 2 | |
| subject_area_code: | |
| type: string | |
| description: Subject | |
| maxLength: 10 | |
| course_number: | |
| type: string | |
| description: '"Shortcut" identifier (formerly for touch-tone | |
| registration)' | |
| maxLength: 10 | |
| course_identifier: | |
| type: string | |
| description: Course identifier (one-character suffix) | |
| pattern: '[A-Z]{4}[0-9]{4}[A-Z]' | |
| maxLength: 9 | |
| minLength: 9 | |
| course_name: | |
| type: string | |
| description: Course official title | |
| maxLength: 80 | |
| course_description: | |
| type: string | |
| description: Course description | |
| required: | |
| - school_bulletin_prefix_code | |
| - suffix_two | |
| - subject_area_code | |
| - course_number | |
| - course_identifier | |
| - course_name | |
| - course_description | |
| relationships: | |
| type: object | |
| properties: | |
| course_terms: | |
| $ref: '#/components/schemas/reltomany' | |
| responses: | |
| '201': | |
| description: '[Created](https://jsonapi.org/format/#crud-creating-responses-201). | |
| Assigned `id` and/or any other changes are in this response.' | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| type: object | |
| required: | |
| - data | |
| properties: | |
| data: | |
| $ref: '#/components/schemas/Course' | |
| included: | |
| type: array | |
| uniqueItems: true | |
| items: | |
| $ref: '#/components/schemas/resource' | |
| links: | |
| description: Link members related to primary data | |
| allOf: | |
| - $ref: '#/components/schemas/links' | |
| - $ref: '#/components/schemas/pagination' | |
| jsonapi: | |
| $ref: '#/components/schemas/jsonapi' | |
| '202': | |
| description: Accepted for [asynchronous processing](https://jsonapi.org/recommendations/#asynchronous-processing) | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/datum' | |
| '204': | |
| description: '[Created](https://jsonapi.org/format/#crud-creating-responses-204) | |
| with the supplied `id`. No other changes from what was POSTed.' | |
| '401': | |
| description: not authorized | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| '403': | |
| description: '[Forbidden](https://jsonapi.org/format/#crud-creating-responses-403)' | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| '404': | |
| description: '[Related resource does not exist](https://jsonapi.org/format/#crud-creating-responses-404)' | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| '409': | |
| description: '[Conflict](https://jsonapi.org/format/#crud-creating-responses-409)' | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| /v1/courses/{id}/: | |
| get: | |
| operationId: retrieve/v1/courses/{id}/ | |
| description: "A course of instruction. e.g. COMSW1002 Computing in Context\n\ | |
| \ntesting [mkdocstrings](https://pawamoy.github.io/mkdocstrings):\n\nChanges\ | |
| \ from [sphinxcontrib.apidoc](https://github.com/sphinx-contrib/apidoc):\n\ | |
| \n* Uses markdown in docstring rather than RsT. Will require lots of changes\ | |
| \ to docstrings.\n* Must have a docstring under each member in order for it\ | |
| \ to show up in the docs:\n * `#:` does not implement apidoc-style comments\ | |
| \ for members." | |
| parameters: | |
| - name: id | |
| in: path | |
| required: true | |
| description: globally unique id (UUID4) | |
| schema: | |
| type: string | |
| - $ref: '#/components/parameters/include' | |
| - $ref: '#/components/parameters/fields' | |
| - $ref: '#/components/parameters/sort' | |
| - name: sort | |
| required: false | |
| in: query | |
| description: Which field to use when ordering the results. | |
| schema: | |
| type: string | |
| - name: filter[id] | |
| required: false | |
| in: query | |
| description: id | |
| schema: | |
| type: string | |
| - name: filter[id.lt] | |
| required: false | |
| in: query | |
| description: id__lt | |
| schema: | |
| type: string | |
| - name: filter[id.gt] | |
| required: false | |
| in: query | |
| description: id__gt | |
| schema: | |
| type: string | |
| - name: filter[id.gte] | |
| required: false | |
| in: query | |
| description: id__gte | |
| schema: | |
| type: string | |
| - name: filter[id.lte] | |
| required: false | |
| in: query | |
| description: id__lte | |
| schema: | |
| type: string | |
| - name: filter[id.in] | |
| required: false | |
| in: query | |
| description: id__in | |
| schema: | |
| type: string | |
| - name: filter[subject_area_code] | |
| required: false | |
| in: query | |
| description: subject_area_code | |
| schema: | |
| type: string | |
| - name: filter[subject_area_code.lt] | |
| required: false | |
| in: query | |
| description: subject_area_code__lt | |
| schema: | |
| type: string | |
| - name: filter[subject_area_code.gt] | |
| required: false | |
| in: query | |
| description: subject_area_code__gt | |
| schema: | |
| type: string | |
| - name: filter[subject_area_code.gte] | |
| required: false | |
| in: query | |
| description: subject_area_code__gte | |
| schema: | |
| type: string | |
| - name: filter[subject_area_code.lte] | |
| required: false | |
| in: query | |
| description: subject_area_code__lte | |
| schema: | |
| type: string | |
| - name: filter[subject_area_code.in] | |
| required: false | |
| in: query | |
| description: subject_area_code__in | |
| schema: | |
| type: string | |
| - name: filter[course_name] | |
| required: false | |
| in: query | |
| description: course_name | |
| schema: | |
| type: string | |
| - name: filter[course_name.icontains] | |
| required: false | |
| in: query | |
| description: course_name__icontains | |
| schema: | |
| type: string | |
| - name: filter[course_name.iexact] | |
| required: false | |
| in: query | |
| description: course_name__iexact | |
| schema: | |
| type: string | |
| - name: filter[course_name.contains] | |
| required: false | |
| in: query | |
| description: course_name__contains | |
| schema: | |
| type: string | |
| - name: filter[course_description.icontains] | |
| required: false | |
| in: query | |
| description: course_description__icontains | |
| schema: | |
| type: string | |
| - name: filter[course_description.iexact] | |
| required: false | |
| in: query | |
| description: course_description__iexact | |
| schema: | |
| type: string | |
| - name: filter[course_description.contains] | |
| required: false | |
| in: query | |
| description: course_description__contains | |
| schema: | |
| type: string | |
| - name: filter[course_description] | |
| required: false | |
| in: query | |
| description: course_description | |
| schema: | |
| type: string | |
| - name: filter[course_description.lt] | |
| required: false | |
| in: query | |
| description: course_description__lt | |
| schema: | |
| type: string | |
| - name: filter[course_description.gt] | |
| required: false | |
| in: query | |
| description: course_description__gt | |
| schema: | |
| type: string | |
| - name: filter[course_description.gte] | |
| required: false | |
| in: query | |
| description: course_description__gte | |
| schema: | |
| type: string | |
| - name: filter[course_description.lte] | |
| required: false | |
| in: query | |
| description: course_description__lte | |
| schema: | |
| type: string | |
| - name: filter[course_description.in] | |
| required: false | |
| in: query | |
| description: course_description__in | |
| schema: | |
| type: string | |
| - name: filter[course_identifier.icontains] | |
| required: false | |
| in: query | |
| description: course_identifier__icontains | |
| schema: | |
| type: string | |
| - name: filter[course_identifier.iexact] | |
| required: false | |
| in: query | |
| description: course_identifier__iexact | |
| schema: | |
| type: string | |
| - name: filter[course_identifier.contains] | |
| required: false | |
| in: query | |
| description: course_identifier__contains | |
| schema: | |
| type: string | |
| - name: filter[course_identifier] | |
| required: false | |
| in: query | |
| description: course_identifier | |
| schema: | |
| type: string | |
| - name: filter[course_identifier.lt] | |
| required: false | |
| in: query | |
| description: course_identifier__lt | |
| schema: | |
| type: string | |
| - name: filter[course_identifier.gt] | |
| required: false | |
| in: query | |
| description: course_identifier__gt | |
| schema: | |
| type: string | |
| - name: filter[course_identifier.gte] | |
| required: false | |
| in: query | |
| description: course_identifier__gte | |
| schema: | |
| type: string | |
| - name: filter[course_identifier.lte] | |
| required: false | |
| in: query | |
| description: course_identifier__lte | |
| schema: | |
| type: string | |
| - name: filter[course_identifier.in] | |
| required: false | |
| in: query | |
| description: course_identifier__in | |
| schema: | |
| type: string | |
| - name: filter[course_number] | |
| required: false | |
| in: query | |
| description: course_number | |
| schema: | |
| type: string | |
| - name: filter[course_terms.term_identifier] | |
| required: false | |
| in: query | |
| description: course_terms__term_identifier | |
| schema: | |
| type: string | |
| - name: filter[course_terms.term_identifier.lt] | |
| required: false | |
| in: query | |
| description: course_terms__term_identifier__lt | |
| schema: | |
| type: string | |
| - name: filter[course_terms.term_identifier.gt] | |
| required: false | |
| in: query | |
| description: course_terms__term_identifier__gt | |
| schema: | |
| type: string | |
| - name: filter[course_terms.term_identifier.gte] | |
| required: false | |
| in: query | |
| description: course_terms__term_identifier__gte | |
| schema: | |
| type: string | |
| - name: filter[course_terms.term_identifier.lte] | |
| required: false | |
| in: query | |
| description: course_terms__term_identifier__lte | |
| schema: | |
| type: string | |
| - name: filter[course_terms.term_identifier.in] | |
| required: false | |
| in: query | |
| description: course_terms__term_identifier__in | |
| schema: | |
| type: string | |
| - name: filter[school_bulletin_prefix_code] | |
| required: false | |
| in: query | |
| description: school_bulletin_prefix_code | |
| schema: | |
| type: string | |
| - name: filter[school_bulletin_prefix_code.regex] | |
| required: false | |
| in: query | |
| description: school_bulletin_prefix_code__regex | |
| schema: | |
| type: string | |
| - name: filter[search] | |
| required: false | |
| in: query | |
| description: A search term. | |
| schema: | |
| type: string | |
| responses: | |
| '200': | |
| description: retrieve/v1/courses/{id}/ | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| type: object | |
| required: | |
| - data | |
| properties: | |
| data: | |
| $ref: '#/components/schemas/Course' | |
| included: | |
| type: array | |
| uniqueItems: true | |
| items: | |
| $ref: '#/components/schemas/resource' | |
| links: | |
| description: Link members related to primary data | |
| allOf: | |
| - $ref: '#/components/schemas/links' | |
| - $ref: '#/components/schemas/pagination' | |
| jsonapi: | |
| $ref: '#/components/schemas/jsonapi' | |
| '401': | |
| description: not authorized | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| '404': | |
| description: not found | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| patch: | |
| operationId: partial_update/v1/courses/{id}/ | |
| description: "A course of instruction. e.g. COMSW1002 Computing in Context\n\ | |
| \ntesting [mkdocstrings](https://pawamoy.github.io/mkdocstrings):\n\nChanges\ | |
| \ from [sphinxcontrib.apidoc](https://github.com/sphinx-contrib/apidoc):\n\ | |
| \n* Uses markdown in docstring rather than RsT. Will require lots of changes\ | |
| \ to docstrings.\n* Must have a docstring under each member in order for it\ | |
| \ to show up in the docs:\n * `#:` does not implement apidoc-style comments\ | |
| \ for members." | |
| parameters: | |
| - name: id | |
| in: path | |
| required: true | |
| description: globally unique id (UUID4) | |
| schema: | |
| type: string | |
| requestBody: | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| required: | |
| - data | |
| properties: | |
| data: | |
| type: object | |
| required: | |
| - type | |
| - id | |
| additionalProperties: false | |
| properties: | |
| type: | |
| $ref: '#/components/schemas/type' | |
| id: | |
| $ref: '#/components/schemas/id' | |
| links: | |
| type: object | |
| properties: | |
| self: | |
| $ref: '#/components/schemas/link' | |
| attributes: | |
| type: object | |
| properties: | |
| effective_start_date: | |
| type: string | |
| format: date | |
| nullable: true | |
| description: date when this instance becomes valid | |
| effective_end_date: | |
| type: string | |
| format: date | |
| nullable: true | |
| description: date when this instance becomes invalid | |
| school_bulletin_prefix_code: | |
| type: string | |
| maxLength: 10 | |
| suffix_two: | |
| type: string | |
| description: two-character identifier suffix | |
| maxLength: 2 | |
| subject_area_code: | |
| type: string | |
| description: Subject | |
| maxLength: 10 | |
| course_number: | |
| type: string | |
| description: '"Shortcut" identifier (formerly for touch-tone | |
| registration)' | |
| maxLength: 10 | |
| course_identifier: | |
| type: string | |
| description: Course identifier (one-character suffix) | |
| pattern: '[A-Z]{4}[0-9]{4}[A-Z]' | |
| maxLength: 9 | |
| minLength: 9 | |
| course_name: | |
| type: string | |
| description: Course official title | |
| maxLength: 80 | |
| course_description: | |
| type: string | |
| description: Course description | |
| relationships: | |
| type: object | |
| properties: | |
| course_terms: | |
| $ref: '#/components/schemas/reltomany' | |
| responses: | |
| '200': | |
| description: partial_update/v1/courses/{id}/ | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| type: object | |
| required: | |
| - data | |
| properties: | |
| data: | |
| $ref: '#/components/schemas/Course' | |
| included: | |
| type: array | |
| uniqueItems: true | |
| items: | |
| $ref: '#/components/schemas/resource' | |
| links: | |
| description: Link members related to primary data | |
| allOf: | |
| - $ref: '#/components/schemas/links' | |
| - $ref: '#/components/schemas/pagination' | |
| jsonapi: | |
| $ref: '#/components/schemas/jsonapi' | |
| '401': | |
| description: not authorized | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| '403': | |
| description: '[Forbidden](https://jsonapi.org/format/#crud-updating-responses-403)' | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| '404': | |
| description: '[Related resource does not exist](https://jsonapi.org/format/#crud-updating-responses-404)' | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| '409': | |
| description: '[Conflict]([Conflict](https://jsonapi.org/format/#crud-updating-responses-409)' | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| delete: | |
| operationId: destroy/v1/courses/{id}/ | |
| description: "A course of instruction. e.g. COMSW1002 Computing in Context\n\ | |
| \ntesting [mkdocstrings](https://pawamoy.github.io/mkdocstrings):\n\nChanges\ | |
| \ from [sphinxcontrib.apidoc](https://github.com/sphinx-contrib/apidoc):\n\ | |
| \n* Uses markdown in docstring rather than RsT. Will require lots of changes\ | |
| \ to docstrings.\n* Must have a docstring under each member in order for it\ | |
| \ to show up in the docs:\n * `#:` does not implement apidoc-style comments\ | |
| \ for members." | |
| parameters: | |
| - name: id | |
| in: path | |
| required: true | |
| description: globally unique id (UUID4) | |
| schema: | |
| type: string | |
| responses: | |
| '200': | |
| description: '[OK](https://jsonapi.org/format/#crud-deleting-responses-200)' | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/onlymeta' | |
| '202': | |
| description: Accepted for [asynchronous processing](https://jsonapi.org/recommendations/#asynchronous-processing) | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/datum' | |
| '204': | |
| description: '[no content](https://jsonapi.org/format/#crud-deleting-responses-204)' | |
| '401': | |
| description: not authorized | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| '404': | |
| description: '[Resource does not exist](https://jsonapi.org/format/#crud-deleting-responses-404)' | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| /v1/course_terms/: | |
| get: | |
| operationId: List/v1/course_terms/ | |
| description: 'A specific course term (year+semester) instance. | |
| e.g. 20183COMSW1002' | |
| parameters: | |
| - $ref: '#/components/parameters/include' | |
| - $ref: '#/components/parameters/fields' | |
| - $ref: '#/components/parameters/sort' | |
| - name: page[number] | |
| required: false | |
| in: query | |
| description: A page number within the paginated result set. | |
| schema: | |
| type: integer | |
| - name: page[size] | |
| required: false | |
| in: query | |
| description: Number of results to return per page. | |
| schema: | |
| type: integer | |
| - name: sort | |
| required: false | |
| in: query | |
| description: Which field to use when ordering the results. | |
| schema: | |
| type: string | |
| - name: filter[id] | |
| required: false | |
| in: query | |
| description: id | |
| schema: | |
| type: string | |
| - name: filter[id.lt] | |
| required: false | |
| in: query | |
| description: id__lt | |
| schema: | |
| type: string | |
| - name: filter[id.gt] | |
| required: false | |
| in: query | |
| description: id__gt | |
| schema: | |
| type: string | |
| - name: filter[id.gte] | |
| required: false | |
| in: query | |
| description: id__gte | |
| schema: | |
| type: string | |
| - name: filter[id.lte] | |
| required: false | |
| in: query | |
| description: id__lte | |
| schema: | |
| type: string | |
| - name: filter[id.in] | |
| required: false | |
| in: query | |
| description: id__in | |
| schema: | |
| type: string | |
| - name: filter[term_identifier] | |
| required: false | |
| in: query | |
| description: term_identifier | |
| schema: | |
| type: string | |
| - name: filter[term_identifier.lt] | |
| required: false | |
| in: query | |
| description: term_identifier__lt | |
| schema: | |
| type: string | |
| - name: filter[term_identifier.gt] | |
| required: false | |
| in: query | |
| description: term_identifier__gt | |
| schema: | |
| type: string | |
| - name: filter[term_identifier.gte] | |
| required: false | |
| in: query | |
| description: term_identifier__gte | |
| schema: | |
| type: string | |
| - name: filter[term_identifier.lte] | |
| required: false | |
| in: query | |
| description: term_identifier__lte | |
| schema: | |
| type: string | |
| - name: filter[term_identifier.in] | |
| required: false | |
| in: query | |
| description: term_identifier__in | |
| schema: | |
| type: string | |
| - name: filter[audit_permitted_code] | |
| required: false | |
| in: query | |
| description: audit_permitted_code | |
| schema: | |
| type: string | |
| - name: filter[exam_credit_flag] | |
| required: false | |
| in: query | |
| description: exam_credit_flag | |
| schema: | |
| type: string | |
| - name: filter[course.id] | |
| required: false | |
| in: query | |
| description: course__id | |
| schema: | |
| type: string | |
| - name: filter[course.id.lt] | |
| required: false | |
| in: query | |
| description: course__id__lt | |
| schema: | |
| type: string | |
| - name: filter[course.id.gt] | |
| required: false | |
| in: query | |
| description: course__id__gt | |
| schema: | |
| type: string | |
| - name: filter[course.id.gte] | |
| required: false | |
| in: query | |
| description: course__id__gte | |
| schema: | |
| type: string | |
| - name: filter[course.id.lte] | |
| required: false | |
| in: query | |
| description: course__id__lte | |
| schema: | |
| type: string | |
| - name: filter[course.id.in] | |
| required: false | |
| in: query | |
| description: course__id__in | |
| schema: | |
| type: string | |
| - name: filter[search] | |
| required: false | |
| in: query | |
| description: A search term. | |
| schema: | |
| type: string | |
| responses: | |
| '200': | |
| description: List/v1/course_terms/ | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| type: object | |
| required: | |
| - data | |
| properties: | |
| data: | |
| type: array | |
| items: | |
| $ref: '#/components/schemas/CourseTerm' | |
| included: | |
| type: array | |
| uniqueItems: true | |
| items: | |
| $ref: '#/components/schemas/resource' | |
| links: | |
| description: Link members related to primary data | |
| allOf: | |
| - $ref: '#/components/schemas/links' | |
| - $ref: '#/components/schemas/pagination' | |
| jsonapi: | |
| $ref: '#/components/schemas/jsonapi' | |
| '401': | |
| description: not authorized | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| '404': | |
| description: not found | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| post: | |
| operationId: create/v1/course_terms/ | |
| description: 'A specific course term (year+semester) instance. | |
| e.g. 20183COMSW1002' | |
| parameters: [] | |
| requestBody: | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| required: | |
| - data | |
| properties: | |
| data: | |
| type: object | |
| required: | |
| - type | |
| additionalProperties: false | |
| properties: | |
| type: | |
| $ref: '#/components/schemas/type' | |
| id: | |
| $ref: '#/components/schemas/id' | |
| links: | |
| type: object | |
| properties: | |
| self: | |
| $ref: '#/components/schemas/link' | |
| attributes: | |
| type: object | |
| properties: | |
| effective_start_date: | |
| type: string | |
| format: date | |
| nullable: true | |
| description: date when this instance becomes valid | |
| effective_end_date: | |
| type: string | |
| format: date | |
| nullable: true | |
| description: date when this instance becomes invalid | |
| term_identifier: | |
| type: string | |
| pattern: '[0-9]{4}[123][A-Z]{4}[0-9]{4}[A-Z]' | |
| maxLength: 14 | |
| minLength: 14 | |
| audit_permitted_code: | |
| type: integer | |
| exam_credit_flag: | |
| type: boolean | |
| required: | |
| - term_identifier | |
| relationships: | |
| type: object | |
| properties: | |
| course: | |
| $ref: '#/components/schemas/reltoone' | |
| instructors: | |
| $ref: '#/components/schemas/reltomany' | |
| responses: | |
| '201': | |
| description: '[Created](https://jsonapi.org/format/#crud-creating-responses-201). | |
| Assigned `id` and/or any other changes are in this response.' | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| type: object | |
| required: | |
| - data | |
| properties: | |
| data: | |
| $ref: '#/components/schemas/CourseTerm' | |
| included: | |
| type: array | |
| uniqueItems: true | |
| items: | |
| $ref: '#/components/schemas/resource' | |
| links: | |
| description: Link members related to primary data | |
| allOf: | |
| - $ref: '#/components/schemas/links' | |
| - $ref: '#/components/schemas/pagination' | |
| jsonapi: | |
| $ref: '#/components/schemas/jsonapi' | |
| '202': | |
| description: Accepted for [asynchronous processing](https://jsonapi.org/recommendations/#asynchronous-processing) | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/datum' | |
| '204': | |
| description: '[Created](https://jsonapi.org/format/#crud-creating-responses-204) | |
| with the supplied `id`. No other changes from what was POSTed.' | |
| '401': | |
| description: not authorized | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| '403': | |
| description: '[Forbidden](https://jsonapi.org/format/#crud-creating-responses-403)' | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| '404': | |
| description: '[Related resource does not exist](https://jsonapi.org/format/#crud-creating-responses-404)' | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| '409': | |
| description: '[Conflict](https://jsonapi.org/format/#crud-creating-responses-409)' | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| /v1/course_terms/{id}/: | |
| get: | |
| operationId: retrieve/v1/course_terms/{id}/ | |
| description: 'A specific course term (year+semester) instance. | |
| e.g. 20183COMSW1002' | |
| parameters: | |
| - name: id | |
| in: path | |
| required: true | |
| description: globally unique id (UUID4) | |
| schema: | |
| type: string | |
| - $ref: '#/components/parameters/include' | |
| - $ref: '#/components/parameters/fields' | |
| - $ref: '#/components/parameters/sort' | |
| - name: sort | |
| required: false | |
| in: query | |
| description: Which field to use when ordering the results. | |
| schema: | |
| type: string | |
| - name: filter[id] | |
| required: false | |
| in: query | |
| description: id | |
| schema: | |
| type: string | |
| - name: filter[id.lt] | |
| required: false | |
| in: query | |
| description: id__lt | |
| schema: | |
| type: string | |
| - name: filter[id.gt] | |
| required: false | |
| in: query | |
| description: id__gt | |
| schema: | |
| type: string | |
| - name: filter[id.gte] | |
| required: false | |
| in: query | |
| description: id__gte | |
| schema: | |
| type: string | |
| - name: filter[id.lte] | |
| required: false | |
| in: query | |
| description: id__lte | |
| schema: | |
| type: string | |
| - name: filter[id.in] | |
| required: false | |
| in: query | |
| description: id__in | |
| schema: | |
| type: string | |
| - name: filter[term_identifier] | |
| required: false | |
| in: query | |
| description: term_identifier | |
| schema: | |
| type: string | |
| - name: filter[term_identifier.lt] | |
| required: false | |
| in: query | |
| description: term_identifier__lt | |
| schema: | |
| type: string | |
| - name: filter[term_identifier.gt] | |
| required: false | |
| in: query | |
| description: term_identifier__gt | |
| schema: | |
| type: string | |
| - name: filter[term_identifier.gte] | |
| required: false | |
| in: query | |
| description: term_identifier__gte | |
| schema: | |
| type: string | |
| - name: filter[term_identifier.lte] | |
| required: false | |
| in: query | |
| description: term_identifier__lte | |
| schema: | |
| type: string | |
| - name: filter[term_identifier.in] | |
| required: false | |
| in: query | |
| description: term_identifier__in | |
| schema: | |
| type: string | |
| - name: filter[audit_permitted_code] | |
| required: false | |
| in: query | |
| description: audit_permitted_code | |
| schema: | |
| type: string | |
| - name: filter[exam_credit_flag] | |
| required: false | |
| in: query | |
| description: exam_credit_flag | |
| schema: | |
| type: string | |
| - name: filter[course.id] | |
| required: false | |
| in: query | |
| description: course__id | |
| schema: | |
| type: string | |
| - name: filter[course.id.lt] | |
| required: false | |
| in: query | |
| description: course__id__lt | |
| schema: | |
| type: string | |
| - name: filter[course.id.gt] | |
| required: false | |
| in: query | |
| description: course__id__gt | |
| schema: | |
| type: string | |
| - name: filter[course.id.gte] | |
| required: false | |
| in: query | |
| description: course__id__gte | |
| schema: | |
| type: string | |
| - name: filter[course.id.lte] | |
| required: false | |
| in: query | |
| description: course__id__lte | |
| schema: | |
| type: string | |
| - name: filter[course.id.in] | |
| required: false | |
| in: query | |
| description: course__id__in | |
| schema: | |
| type: string | |
| - name: filter[search] | |
| required: false | |
| in: query | |
| description: A search term. | |
| schema: | |
| type: string | |
| responses: | |
| '200': | |
| description: retrieve/v1/course_terms/{id}/ | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| type: object | |
| required: | |
| - data | |
| properties: | |
| data: | |
| $ref: '#/components/schemas/CourseTerm' | |
| included: | |
| type: array | |
| uniqueItems: true | |
| items: | |
| $ref: '#/components/schemas/resource' | |
| links: | |
| description: Link members related to primary data | |
| allOf: | |
| - $ref: '#/components/schemas/links' | |
| - $ref: '#/components/schemas/pagination' | |
| jsonapi: | |
| $ref: '#/components/schemas/jsonapi' | |
| '401': | |
| description: not authorized | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| '404': | |
| description: not found | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| patch: | |
| operationId: partial_update/v1/course_terms/{id}/ | |
| description: 'A specific course term (year+semester) instance. | |
| e.g. 20183COMSW1002' | |
| parameters: | |
| - name: id | |
| in: path | |
| required: true | |
| description: globally unique id (UUID4) | |
| schema: | |
| type: string | |
| requestBody: | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| required: | |
| - data | |
| properties: | |
| data: | |
| type: object | |
| required: | |
| - type | |
| - id | |
| additionalProperties: false | |
| properties: | |
| type: | |
| $ref: '#/components/schemas/type' | |
| id: | |
| $ref: '#/components/schemas/id' | |
| links: | |
| type: object | |
| properties: | |
| self: | |
| $ref: '#/components/schemas/link' | |
| attributes: | |
| type: object | |
| properties: | |
| effective_start_date: | |
| type: string | |
| format: date | |
| nullable: true | |
| description: date when this instance becomes valid | |
| effective_end_date: | |
| type: string | |
| format: date | |
| nullable: true | |
| description: date when this instance becomes invalid | |
| term_identifier: | |
| type: string | |
| pattern: '[0-9]{4}[123][A-Z]{4}[0-9]{4}[A-Z]' | |
| maxLength: 14 | |
| minLength: 14 | |
| audit_permitted_code: | |
| type: integer | |
| exam_credit_flag: | |
| type: boolean | |
| relationships: | |
| type: object | |
| properties: | |
| course: | |
| $ref: '#/components/schemas/reltoone' | |
| instructors: | |
| $ref: '#/components/schemas/reltomany' | |
| responses: | |
| '200': | |
| description: partial_update/v1/course_terms/{id}/ | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| type: object | |
| required: | |
| - data | |
| properties: | |
| data: | |
| $ref: '#/components/schemas/CourseTerm' | |
| included: | |
| type: array | |
| uniqueItems: true | |
| items: | |
| $ref: '#/components/schemas/resource' | |
| links: | |
| description: Link members related to primary data | |
| allOf: | |
| - $ref: '#/components/schemas/links' | |
| - $ref: '#/components/schemas/pagination' | |
| jsonapi: | |
| $ref: '#/components/schemas/jsonapi' | |
| '401': | |
| description: not authorized | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| '403': | |
| description: '[Forbidden](https://jsonapi.org/format/#crud-updating-responses-403)' | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| '404': | |
| description: '[Related resource does not exist](https://jsonapi.org/format/#crud-updating-responses-404)' | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| '409': | |
| description: '[Conflict]([Conflict](https://jsonapi.org/format/#crud-updating-responses-409)' | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| delete: | |
| operationId: destroy/v1/course_terms/{id}/ | |
| description: 'A specific course term (year+semester) instance. | |
| e.g. 20183COMSW1002' | |
| parameters: | |
| - name: id | |
| in: path | |
| required: true | |
| description: globally unique id (UUID4) | |
| schema: | |
| type: string | |
| responses: | |
| '200': | |
| description: '[OK](https://jsonapi.org/format/#crud-deleting-responses-200)' | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/onlymeta' | |
| '202': | |
| description: Accepted for [asynchronous processing](https://jsonapi.org/recommendations/#asynchronous-processing) | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/datum' | |
| '204': | |
| description: '[no content](https://jsonapi.org/format/#crud-deleting-responses-204)' | |
| '401': | |
| description: not authorized | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| '404': | |
| description: '[Resource does not exist](https://jsonapi.org/format/#crud-deleting-responses-404)' | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| /v1/people/: | |
| get: | |
| operationId: List/v1/people/ | |
| description: A person. | |
| parameters: | |
| - $ref: '#/components/parameters/include' | |
| - $ref: '#/components/parameters/fields' | |
| - $ref: '#/components/parameters/sort' | |
| - name: page[number] | |
| required: false | |
| in: query | |
| description: A page number within the paginated result set. | |
| schema: | |
| type: integer | |
| - name: page[size] | |
| required: false | |
| in: query | |
| description: Number of results to return per page. | |
| schema: | |
| type: integer | |
| - name: sort | |
| required: false | |
| in: query | |
| description: Which field to use when ordering the results. | |
| schema: | |
| type: string | |
| - name: filter[search] | |
| required: false | |
| in: query | |
| description: A search term. | |
| schema: | |
| type: string | |
| responses: | |
| '200': | |
| description: List/v1/people/ | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| type: object | |
| required: | |
| - data | |
| properties: | |
| data: | |
| type: array | |
| items: | |
| $ref: '#/components/schemas/Person' | |
| included: | |
| type: array | |
| uniqueItems: true | |
| items: | |
| $ref: '#/components/schemas/resource' | |
| links: | |
| description: Link members related to primary data | |
| allOf: | |
| - $ref: '#/components/schemas/links' | |
| - $ref: '#/components/schemas/pagination' | |
| jsonapi: | |
| $ref: '#/components/schemas/jsonapi' | |
| '401': | |
| description: not authorized | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| '404': | |
| description: not found | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| post: | |
| operationId: create/v1/people/ | |
| description: A person. | |
| parameters: [] | |
| requestBody: | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| required: | |
| - data | |
| properties: | |
| data: | |
| type: object | |
| required: | |
| - type | |
| additionalProperties: false | |
| properties: | |
| type: | |
| $ref: '#/components/schemas/type' | |
| id: | |
| $ref: '#/components/schemas/id' | |
| links: | |
| type: object | |
| properties: | |
| self: | |
| $ref: '#/components/schemas/link' | |
| attributes: | |
| type: object | |
| properties: | |
| effective_start_date: | |
| type: string | |
| format: date | |
| nullable: true | |
| description: date when this instance becomes valid | |
| effective_end_date: | |
| type: string | |
| format: date | |
| nullable: true | |
| description: date when this instance becomes invalid | |
| name: | |
| type: string | |
| maxLength: 100 | |
| required: | |
| - name | |
| relationships: | |
| type: object | |
| properties: | |
| instructor: | |
| $ref: '#/components/schemas/reltoone' | |
| responses: | |
| '201': | |
| description: '[Created](https://jsonapi.org/format/#crud-creating-responses-201). | |
| Assigned `id` and/or any other changes are in this response.' | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| type: object | |
| required: | |
| - data | |
| properties: | |
| data: | |
| $ref: '#/components/schemas/Person' | |
| included: | |
| type: array | |
| uniqueItems: true | |
| items: | |
| $ref: '#/components/schemas/resource' | |
| links: | |
| description: Link members related to primary data | |
| allOf: | |
| - $ref: '#/components/schemas/links' | |
| - $ref: '#/components/schemas/pagination' | |
| jsonapi: | |
| $ref: '#/components/schemas/jsonapi' | |
| '202': | |
| description: Accepted for [asynchronous processing](https://jsonapi.org/recommendations/#asynchronous-processing) | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/datum' | |
| '204': | |
| description: '[Created](https://jsonapi.org/format/#crud-creating-responses-204) | |
| with the supplied `id`. No other changes from what was POSTed.' | |
| '401': | |
| description: not authorized | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| '403': | |
| description: '[Forbidden](https://jsonapi.org/format/#crud-creating-responses-403)' | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| '404': | |
| description: '[Related resource does not exist](https://jsonapi.org/format/#crud-creating-responses-404)' | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| '409': | |
| description: '[Conflict](https://jsonapi.org/format/#crud-creating-responses-409)' | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| /v1/people/{id}/: | |
| get: | |
| operationId: retrieve/v1/people/{id}/ | |
| description: A person. | |
| parameters: | |
| - name: id | |
| in: path | |
| required: true | |
| description: globally unique id (UUID4) | |
| schema: | |
| type: string | |
| - $ref: '#/components/parameters/include' | |
| - $ref: '#/components/parameters/fields' | |
| - $ref: '#/components/parameters/sort' | |
| - name: sort | |
| required: false | |
| in: query | |
| description: Which field to use when ordering the results. | |
| schema: | |
| type: string | |
| - name: filter[search] | |
| required: false | |
| in: query | |
| description: A search term. | |
| schema: | |
| type: string | |
| responses: | |
| '200': | |
| description: retrieve/v1/people/{id}/ | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| type: object | |
| required: | |
| - data | |
| properties: | |
| data: | |
| $ref: '#/components/schemas/Person' | |
| included: | |
| type: array | |
| uniqueItems: true | |
| items: | |
| $ref: '#/components/schemas/resource' | |
| links: | |
| description: Link members related to primary data | |
| allOf: | |
| - $ref: '#/components/schemas/links' | |
| - $ref: '#/components/schemas/pagination' | |
| jsonapi: | |
| $ref: '#/components/schemas/jsonapi' | |
| '401': | |
| description: not authorized | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| '404': | |
| description: not found | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| patch: | |
| operationId: partial_update/v1/people/{id}/ | |
| description: A person. | |
| parameters: | |
| - name: id | |
| in: path | |
| required: true | |
| description: globally unique id (UUID4) | |
| schema: | |
| type: string | |
| requestBody: | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| required: | |
| - data | |
| properties: | |
| data: | |
| type: object | |
| required: | |
| - type | |
| - id | |
| additionalProperties: false | |
| properties: | |
| type: | |
| $ref: '#/components/schemas/type' | |
| id: | |
| $ref: '#/components/schemas/id' | |
| links: | |
| type: object | |
| properties: | |
| self: | |
| $ref: '#/components/schemas/link' | |
| attributes: | |
| type: object | |
| properties: | |
| effective_start_date: | |
| type: string | |
| format: date | |
| nullable: true | |
| description: date when this instance becomes valid | |
| effective_end_date: | |
| type: string | |
| format: date | |
| nullable: true | |
| description: date when this instance becomes invalid | |
| name: | |
| type: string | |
| maxLength: 100 | |
| relationships: | |
| type: object | |
| properties: | |
| instructor: | |
| $ref: '#/components/schemas/reltoone' | |
| responses: | |
| '200': | |
| description: partial_update/v1/people/{id}/ | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| type: object | |
| required: | |
| - data | |
| properties: | |
| data: | |
| $ref: '#/components/schemas/Person' | |
| included: | |
| type: array | |
| uniqueItems: true | |
| items: | |
| $ref: '#/components/schemas/resource' | |
| links: | |
| description: Link members related to primary data | |
| allOf: | |
| - $ref: '#/components/schemas/links' | |
| - $ref: '#/components/schemas/pagination' | |
| jsonapi: | |
| $ref: '#/components/schemas/jsonapi' | |
| '401': | |
| description: not authorized | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| '403': | |
| description: '[Forbidden](https://jsonapi.org/format/#crud-updating-responses-403)' | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| '404': | |
| description: '[Related resource does not exist](https://jsonapi.org/format/#crud-updating-responses-404)' | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| '409': | |
| description: '[Conflict]([Conflict](https://jsonapi.org/format/#crud-updating-responses-409)' | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| delete: | |
| operationId: destroy/v1/people/{id}/ | |
| description: A person. | |
| parameters: | |
| - name: id | |
| in: path | |
| required: true | |
| description: globally unique id (UUID4) | |
| schema: | |
| type: string | |
| responses: | |
| '200': | |
| description: '[OK](https://jsonapi.org/format/#crud-deleting-responses-200)' | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/onlymeta' | |
| '202': | |
| description: Accepted for [asynchronous processing](https://jsonapi.org/recommendations/#asynchronous-processing) | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/datum' | |
| '204': | |
| description: '[no content](https://jsonapi.org/format/#crud-deleting-responses-204)' | |
| '401': | |
| description: not authorized | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| '404': | |
| description: '[Resource does not exist](https://jsonapi.org/format/#crud-deleting-responses-404)' | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| /v1/instructors/: | |
| get: | |
| operationId: List/v1/instructors/ | |
| description: An instructor. | |
| parameters: | |
| - $ref: '#/components/parameters/include' | |
| - $ref: '#/components/parameters/fields' | |
| - $ref: '#/components/parameters/sort' | |
| - name: page[number] | |
| required: false | |
| in: query | |
| description: A page number within the paginated result set. | |
| schema: | |
| type: integer | |
| - name: page[size] | |
| required: false | |
| in: query | |
| description: Number of results to return per page. | |
| schema: | |
| type: integer | |
| - name: sort | |
| required: false | |
| in: query | |
| description: Which field to use when ordering the results. | |
| schema: | |
| type: string | |
| - name: filter[id] | |
| required: false | |
| in: query | |
| description: id | |
| schema: | |
| type: string | |
| - name: filter[id.lt] | |
| required: false | |
| in: query | |
| description: id__lt | |
| schema: | |
| type: string | |
| - name: filter[id.gt] | |
| required: false | |
| in: query | |
| description: id__gt | |
| schema: | |
| type: string | |
| - name: filter[id.gte] | |
| required: false | |
| in: query | |
| description: id__gte | |
| schema: | |
| type: string | |
| - name: filter[id.lte] | |
| required: false | |
| in: query | |
| description: id__lte | |
| schema: | |
| type: string | |
| - name: filter[id.in] | |
| required: false | |
| in: query | |
| description: id__in | |
| schema: | |
| type: string | |
| - name: filter[course_name] | |
| required: false | |
| in: query | |
| description: course_name | |
| schema: | |
| type: string | |
| - name: filter[course_name.gt] | |
| required: false | |
| in: query | |
| description: course_name__gt | |
| schema: | |
| type: string | |
| - name: filter[course_name.gte] | |
| required: false | |
| in: query | |
| description: course_name__gte | |
| schema: | |
| type: string | |
| - name: filter[course_name.lt] | |
| required: false | |
| in: query | |
| description: course_name__lt | |
| schema: | |
| type: string | |
| - name: filter[course_name.lte] | |
| required: false | |
| in: query | |
| description: course_name__lte | |
| schema: | |
| type: string | |
| - name: filter[name] | |
| required: false | |
| in: query | |
| description: name | |
| schema: | |
| type: string | |
| - name: filter[name.gt] | |
| required: false | |
| in: query | |
| description: name__gt | |
| schema: | |
| type: string | |
| - name: filter[name.gte] | |
| required: false | |
| in: query | |
| description: name__gte | |
| schema: | |
| type: string | |
| - name: filter[name.lt] | |
| required: false | |
| in: query | |
| description: name__lt | |
| schema: | |
| type: string | |
| - name: filter[name.lte] | |
| required: false | |
| in: query | |
| description: name__lte | |
| schema: | |
| type: string | |
| - name: filter[search] | |
| required: false | |
| in: query | |
| description: A search term. | |
| schema: | |
| type: string | |
| responses: | |
| '200': | |
| description: List/v1/instructors/ | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| type: object | |
| required: | |
| - data | |
| properties: | |
| data: | |
| type: array | |
| items: | |
| $ref: '#/components/schemas/Instructor' | |
| included: | |
| type: array | |
| uniqueItems: true | |
| items: | |
| $ref: '#/components/schemas/resource' | |
| links: | |
| description: Link members related to primary data | |
| allOf: | |
| - $ref: '#/components/schemas/links' | |
| - $ref: '#/components/schemas/pagination' | |
| jsonapi: | |
| $ref: '#/components/schemas/jsonapi' | |
| '401': | |
| description: not authorized | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| '404': | |
| description: not found | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| post: | |
| operationId: create/v1/instructors/ | |
| description: An instructor. | |
| parameters: [] | |
| requestBody: | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| required: | |
| - data | |
| properties: | |
| data: | |
| type: object | |
| required: | |
| - type | |
| additionalProperties: false | |
| properties: | |
| type: | |
| $ref: '#/components/schemas/type' | |
| id: | |
| $ref: '#/components/schemas/id' | |
| links: | |
| type: object | |
| properties: | |
| self: | |
| $ref: '#/components/schemas/link' | |
| attributes: | |
| type: object | |
| properties: | |
| effective_start_date: | |
| type: string | |
| format: date | |
| nullable: true | |
| description: date when this instance becomes valid | |
| effective_end_date: | |
| type: string | |
| format: date | |
| nullable: true | |
| description: date when this instance becomes invalid | |
| relationships: | |
| type: object | |
| properties: | |
| course_terms: | |
| $ref: '#/components/schemas/reltomany' | |
| person: | |
| $ref: '#/components/schemas/reltoone' | |
| responses: | |
| '201': | |
| description: '[Created](https://jsonapi.org/format/#crud-creating-responses-201). | |
| Assigned `id` and/or any other changes are in this response.' | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| type: object | |
| required: | |
| - data | |
| properties: | |
| data: | |
| $ref: '#/components/schemas/Instructor' | |
| included: | |
| type: array | |
| uniqueItems: true | |
| items: | |
| $ref: '#/components/schemas/resource' | |
| links: | |
| description: Link members related to primary data | |
| allOf: | |
| - $ref: '#/components/schemas/links' | |
| - $ref: '#/components/schemas/pagination' | |
| jsonapi: | |
| $ref: '#/components/schemas/jsonapi' | |
| '202': | |
| description: Accepted for [asynchronous processing](https://jsonapi.org/recommendations/#asynchronous-processing) | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/datum' | |
| '204': | |
| description: '[Created](https://jsonapi.org/format/#crud-creating-responses-204) | |
| with the supplied `id`. No other changes from what was POSTed.' | |
| '401': | |
| description: not authorized | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| '403': | |
| description: '[Forbidden](https://jsonapi.org/format/#crud-creating-responses-403)' | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| '404': | |
| description: '[Related resource does not exist](https://jsonapi.org/format/#crud-creating-responses-404)' | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| '409': | |
| description: '[Conflict](https://jsonapi.org/format/#crud-creating-responses-409)' | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| /v1/instructors/{id}/: | |
| get: | |
| operationId: retrieve/v1/instructors/{id}/ | |
| description: An instructor. | |
| parameters: | |
| - name: id | |
| in: path | |
| required: true | |
| description: globally unique id (UUID4) | |
| schema: | |
| type: string | |
| - $ref: '#/components/parameters/include' | |
| - $ref: '#/components/parameters/fields' | |
| - $ref: '#/components/parameters/sort' | |
| - name: sort | |
| required: false | |
| in: query | |
| description: Which field to use when ordering the results. | |
| schema: | |
| type: string | |
| - name: filter[id] | |
| required: false | |
| in: query | |
| description: id | |
| schema: | |
| type: string | |
| - name: filter[id.lt] | |
| required: false | |
| in: query | |
| description: id__lt | |
| schema: | |
| type: string | |
| - name: filter[id.gt] | |
| required: false | |
| in: query | |
| description: id__gt | |
| schema: | |
| type: string | |
| - name: filter[id.gte] | |
| required: false | |
| in: query | |
| description: id__gte | |
| schema: | |
| type: string | |
| - name: filter[id.lte] | |
| required: false | |
| in: query | |
| description: id__lte | |
| schema: | |
| type: string | |
| - name: filter[id.in] | |
| required: false | |
| in: query | |
| description: id__in | |
| schema: | |
| type: string | |
| - name: filter[course_name] | |
| required: false | |
| in: query | |
| description: course_name | |
| schema: | |
| type: string | |
| - name: filter[course_name.gt] | |
| required: false | |
| in: query | |
| description: course_name__gt | |
| schema: | |
| type: string | |
| - name: filter[course_name.gte] | |
| required: false | |
| in: query | |
| description: course_name__gte | |
| schema: | |
| type: string | |
| - name: filter[course_name.lt] | |
| required: false | |
| in: query | |
| description: course_name__lt | |
| schema: | |
| type: string | |
| - name: filter[course_name.lte] | |
| required: false | |
| in: query | |
| description: course_name__lte | |
| schema: | |
| type: string | |
| - name: filter[name] | |
| required: false | |
| in: query | |
| description: name | |
| schema: | |
| type: string | |
| - name: filter[name.gt] | |
| required: false | |
| in: query | |
| description: name__gt | |
| schema: | |
| type: string | |
| - name: filter[name.gte] | |
| required: false | |
| in: query | |
| description: name__gte | |
| schema: | |
| type: string | |
| - name: filter[name.lt] | |
| required: false | |
| in: query | |
| description: name__lt | |
| schema: | |
| type: string | |
| - name: filter[name.lte] | |
| required: false | |
| in: query | |
| description: name__lte | |
| schema: | |
| type: string | |
| - name: filter[search] | |
| required: false | |
| in: query | |
| description: A search term. | |
| schema: | |
| type: string | |
| responses: | |
| '200': | |
| description: retrieve/v1/instructors/{id}/ | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| type: object | |
| required: | |
| - data | |
| properties: | |
| data: | |
| $ref: '#/components/schemas/Instructor' | |
| included: | |
| type: array | |
| uniqueItems: true | |
| items: | |
| $ref: '#/components/schemas/resource' | |
| links: | |
| description: Link members related to primary data | |
| allOf: | |
| - $ref: '#/components/schemas/links' | |
| - $ref: '#/components/schemas/pagination' | |
| jsonapi: | |
| $ref: '#/components/schemas/jsonapi' | |
| '401': | |
| description: not authorized | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| '404': | |
| description: not found | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| patch: | |
| operationId: partial_update/v1/instructors/{id}/ | |
| description: An instructor. | |
| parameters: | |
| - name: id | |
| in: path | |
| required: true | |
| description: globally unique id (UUID4) | |
| schema: | |
| type: string | |
| requestBody: | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| required: | |
| - data | |
| properties: | |
| data: | |
| type: object | |
| required: | |
| - type | |
| - id | |
| additionalProperties: false | |
| properties: | |
| type: | |
| $ref: '#/components/schemas/type' | |
| id: | |
| $ref: '#/components/schemas/id' | |
| links: | |
| type: object | |
| properties: | |
| self: | |
| $ref: '#/components/schemas/link' | |
| attributes: | |
| type: object | |
| properties: | |
| effective_start_date: | |
| type: string | |
| format: date | |
| nullable: true | |
| description: date when this instance becomes valid | |
| effective_end_date: | |
| type: string | |
| format: date | |
| nullable: true | |
| description: date when this instance becomes invalid | |
| relationships: | |
| type: object | |
| properties: | |
| course_terms: | |
| $ref: '#/components/schemas/reltomany' | |
| person: | |
| $ref: '#/components/schemas/reltoone' | |
| responses: | |
| '200': | |
| description: partial_update/v1/instructors/{id}/ | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| type: object | |
| required: | |
| - data | |
| properties: | |
| data: | |
| $ref: '#/components/schemas/Instructor' | |
| included: | |
| type: array | |
| uniqueItems: true | |
| items: | |
| $ref: '#/components/schemas/resource' | |
| links: | |
| description: Link members related to primary data | |
| allOf: | |
| - $ref: '#/components/schemas/links' | |
| - $ref: '#/components/schemas/pagination' | |
| jsonapi: | |
| $ref: '#/components/schemas/jsonapi' | |
| '401': | |
| description: not authorized | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| '403': | |
| description: '[Forbidden](https://jsonapi.org/format/#crud-updating-responses-403)' | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| '404': | |
| description: '[Related resource does not exist](https://jsonapi.org/format/#crud-updating-responses-404)' | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| '409': | |
| description: '[Conflict]([Conflict](https://jsonapi.org/format/#crud-updating-responses-409)' | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| delete: | |
| operationId: destroy/v1/instructors/{id}/ | |
| description: An instructor. | |
| parameters: | |
| - name: id | |
| in: path | |
| required: true | |
| description: globally unique id (UUID4) | |
| schema: | |
| type: string | |
| responses: | |
| '200': | |
| description: '[OK](https://jsonapi.org/format/#crud-deleting-responses-200)' | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/onlymeta' | |
| '202': | |
| description: Accepted for [asynchronous processing](https://jsonapi.org/recommendations/#asynchronous-processing) | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/datum' | |
| '204': | |
| description: '[no content](https://jsonapi.org/format/#crud-deleting-responses-204)' | |
| '401': | |
| description: not authorized | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| '404': | |
| description: '[Resource does not exist](https://jsonapi.org/format/#crud-deleting-responses-404)' | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| /v1/courses/{id}/relationships/{related_field}/: | |
| get: | |
| operationId: retrieve/v1/courses/{id}/relationships/{related_field}/ | |
| description: View for courses.relationships | |
| parameters: | |
| - name: id | |
| in: path | |
| required: true | |
| description: globally unique id (UUID4) | |
| schema: | |
| type: string | |
| - name: related_field | |
| in: path | |
| required: true | |
| description: '' | |
| schema: | |
| type: string | |
| - $ref: '#/components/parameters/include' | |
| - $ref: '#/components/parameters/fields' | |
| - $ref: '#/components/parameters/sort' | |
| - name: sort | |
| required: false | |
| in: query | |
| description: Which field to use when ordering the results. | |
| schema: | |
| type: string | |
| - name: filter[search] | |
| required: false | |
| in: query | |
| description: A search term. | |
| schema: | |
| type: string | |
| responses: | |
| '200': | |
| description: retrieve/v1/courses/{id}/relationships/{related_field}/ | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| type: object | |
| required: | |
| - data | |
| properties: | |
| data: | |
| $ref: '#/components/schemas/ResourceIdentifierObject' | |
| included: | |
| type: array | |
| uniqueItems: true | |
| items: | |
| $ref: '#/components/schemas/resource' | |
| links: | |
| description: Link members related to primary data | |
| allOf: | |
| - $ref: '#/components/schemas/links' | |
| - $ref: '#/components/schemas/pagination' | |
| jsonapi: | |
| $ref: '#/components/schemas/jsonapi' | |
| '401': | |
| description: not authorized | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| '404': | |
| description: not found | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| post: | |
| operationId: create/v1/courses/{id}/relationships/{related_field}/ | |
| description: View for courses.relationships | |
| parameters: | |
| - name: id | |
| in: path | |
| required: true | |
| description: globally unique id (UUID4) | |
| schema: | |
| type: string | |
| - name: related_field | |
| in: path | |
| required: true | |
| description: '' | |
| schema: | |
| type: string | |
| requestBody: | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| required: | |
| - data | |
| properties: | |
| data: | |
| $ref: '#/components/schemas/ResourceIdentifierObject' | |
| responses: | |
| '201': | |
| description: '[Created](https://jsonapi.org/format/#crud-creating-responses-201). | |
| Assigned `id` and/or any other changes are in this response.' | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| type: object | |
| required: | |
| - data | |
| properties: | |
| data: | |
| $ref: '#/components/schemas/ResourceIdentifierObject' | |
| included: | |
| type: array | |
| uniqueItems: true | |
| items: | |
| $ref: '#/components/schemas/resource' | |
| links: | |
| description: Link members related to primary data | |
| allOf: | |
| - $ref: '#/components/schemas/links' | |
| - $ref: '#/components/schemas/pagination' | |
| jsonapi: | |
| $ref: '#/components/schemas/jsonapi' | |
| '202': | |
| description: Accepted for [asynchronous processing](https://jsonapi.org/recommendations/#asynchronous-processing) | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/datum' | |
| '204': | |
| description: '[Created](https://jsonapi.org/format/#crud-creating-responses-204) | |
| with the supplied `id`. No other changes from what was POSTed.' | |
| '401': | |
| description: not authorized | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| '403': | |
| description: '[Forbidden](https://jsonapi.org/format/#crud-creating-responses-403)' | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| '404': | |
| description: '[Related resource does not exist](https://jsonapi.org/format/#crud-creating-responses-404)' | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| '409': | |
| description: '[Conflict](https://jsonapi.org/format/#crud-creating-responses-409)' | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| patch: | |
| operationId: partialUpdate/v1/courses/{id}/relationships/{related_field}/ | |
| description: View for courses.relationships | |
| parameters: | |
| - name: id | |
| in: path | |
| required: true | |
| description: globally unique id (UUID4) | |
| schema: | |
| type: string | |
| - name: related_field | |
| in: path | |
| required: true | |
| description: '' | |
| schema: | |
| type: string | |
| requestBody: | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| required: | |
| - data | |
| properties: | |
| data: | |
| $ref: '#/components/schemas/ResourceIdentifierObject' | |
| responses: | |
| '200': | |
| description: partialUpdate/v1/courses/{id}/relationships/{related_field}/ | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| type: object | |
| required: | |
| - data | |
| properties: | |
| data: | |
| $ref: '#/components/schemas/ResourceIdentifierObject' | |
| included: | |
| type: array | |
| uniqueItems: true | |
| items: | |
| $ref: '#/components/schemas/resource' | |
| links: | |
| description: Link members related to primary data | |
| allOf: | |
| - $ref: '#/components/schemas/links' | |
| - $ref: '#/components/schemas/pagination' | |
| jsonapi: | |
| $ref: '#/components/schemas/jsonapi' | |
| '401': | |
| description: not authorized | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| '403': | |
| description: '[Forbidden](https://jsonapi.org/format/#crud-updating-responses-403)' | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| '404': | |
| description: '[Related resource does not exist](https://jsonapi.org/format/#crud-updating-responses-404)' | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| '409': | |
| description: '[Conflict]([Conflict](https://jsonapi.org/format/#crud-updating-responses-409)' | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| delete: | |
| operationId: destroy/v1/courses/{id}/relationships/{related_field}/ | |
| description: View for courses.relationships | |
| parameters: | |
| - name: id | |
| in: path | |
| required: true | |
| description: globally unique id (UUID4) | |
| schema: | |
| type: string | |
| - name: related_field | |
| in: path | |
| required: true | |
| description: '' | |
| schema: | |
| type: string | |
| requestBody: | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| required: | |
| - data | |
| properties: | |
| data: | |
| $ref: '#/components/schemas/ResourceIdentifierObject' | |
| responses: | |
| '200': | |
| description: '[OK](https://jsonapi.org/format/#crud-deleting-responses-200)' | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/onlymeta' | |
| '202': | |
| description: Accepted for [asynchronous processing](https://jsonapi.org/recommendations/#asynchronous-processing) | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/datum' | |
| '204': | |
| description: '[no content](https://jsonapi.org/format/#crud-deleting-responses-204)' | |
| '401': | |
| description: not authorized | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| '404': | |
| description: '[Resource does not exist](https://jsonapi.org/format/#crud-deleting-responses-404)' | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| /v1/courses/{id}/course_terms/: | |
| get: | |
| operationId: List/v1/courses/{id}/course_terms/ | |
| description: 'A specific course term (year+semester) instance. | |
| e.g. 20183COMSW1002' | |
| parameters: | |
| - name: id | |
| in: path | |
| required: true | |
| description: globally unique id (UUID4) | |
| schema: | |
| type: string | |
| - $ref: '#/components/parameters/include' | |
| - $ref: '#/components/parameters/fields' | |
| - $ref: '#/components/parameters/sort' | |
| - name: page[number] | |
| required: false | |
| in: query | |
| description: A page number within the paginated result set. | |
| schema: | |
| type: integer | |
| - name: page[size] | |
| required: false | |
| in: query | |
| description: Number of results to return per page. | |
| schema: | |
| type: integer | |
| - name: sort | |
| required: false | |
| in: query | |
| description: Which field to use when ordering the results. | |
| schema: | |
| type: string | |
| - name: filter[id] | |
| required: false | |
| in: query | |
| description: id | |
| schema: | |
| type: string | |
| - name: filter[id.lt] | |
| required: false | |
| in: query | |
| description: id__lt | |
| schema: | |
| type: string | |
| - name: filter[id.gt] | |
| required: false | |
| in: query | |
| description: id__gt | |
| schema: | |
| type: string | |
| - name: filter[id.gte] | |
| required: false | |
| in: query | |
| description: id__gte | |
| schema: | |
| type: string | |
| - name: filter[id.lte] | |
| required: false | |
| in: query | |
| description: id__lte | |
| schema: | |
| type: string | |
| - name: filter[id.in] | |
| required: false | |
| in: query | |
| description: id__in | |
| schema: | |
| type: string | |
| - name: filter[term_identifier] | |
| required: false | |
| in: query | |
| description: term_identifier | |
| schema: | |
| type: string | |
| - name: filter[term_identifier.lt] | |
| required: false | |
| in: query | |
| description: term_identifier__lt | |
| schema: | |
| type: string | |
| - name: filter[term_identifier.gt] | |
| required: false | |
| in: query | |
| description: term_identifier__gt | |
| schema: | |
| type: string | |
| - name: filter[term_identifier.gte] | |
| required: false | |
| in: query | |
| description: term_identifier__gte | |
| schema: | |
| type: string | |
| - name: filter[term_identifier.lte] | |
| required: false | |
| in: query | |
| description: term_identifier__lte | |
| schema: | |
| type: string | |
| - name: filter[term_identifier.in] | |
| required: false | |
| in: query | |
| description: term_identifier__in | |
| schema: | |
| type: string | |
| - name: filter[audit_permitted_code] | |
| required: false | |
| in: query | |
| description: audit_permitted_code | |
| schema: | |
| type: string | |
| - name: filter[exam_credit_flag] | |
| required: false | |
| in: query | |
| description: exam_credit_flag | |
| schema: | |
| type: string | |
| - name: filter[course.id] | |
| required: false | |
| in: query | |
| description: course__id | |
| schema: | |
| type: string | |
| - name: filter[course.id.lt] | |
| required: false | |
| in: query | |
| description: course__id__lt | |
| schema: | |
| type: string | |
| - name: filter[course.id.gt] | |
| required: false | |
| in: query | |
| description: course__id__gt | |
| schema: | |
| type: string | |
| - name: filter[course.id.gte] | |
| required: false | |
| in: query | |
| description: course__id__gte | |
| schema: | |
| type: string | |
| - name: filter[course.id.lte] | |
| required: false | |
| in: query | |
| description: course__id__lte | |
| schema: | |
| type: string | |
| - name: filter[course.id.in] | |
| required: false | |
| in: query | |
| description: course__id__in | |
| schema: | |
| type: string | |
| - name: filter[search] | |
| required: false | |
| in: query | |
| description: A search term. | |
| schema: | |
| type: string | |
| responses: | |
| '200': | |
| description: List/v1/courses/{id}/course_terms/ | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| type: object | |
| required: | |
| - data | |
| properties: | |
| data: | |
| type: array | |
| items: | |
| $ref: '#/components/schemas/CourseTerm' | |
| included: | |
| type: array | |
| uniqueItems: true | |
| items: | |
| $ref: '#/components/schemas/resource' | |
| links: | |
| description: Link members related to primary data | |
| allOf: | |
| - $ref: '#/components/schemas/links' | |
| - $ref: '#/components/schemas/pagination' | |
| jsonapi: | |
| $ref: '#/components/schemas/jsonapi' | |
| '401': | |
| description: not authorized | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| '404': | |
| description: not found | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| /v1/course_terms/{id}/relationships/{related_field}/: | |
| get: | |
| operationId: retrieve/v1/course_terms/{id}/relationships/{related_field}/ | |
| description: View for course_terms.relationships | |
| parameters: | |
| - name: id | |
| in: path | |
| required: true | |
| description: globally unique id (UUID4) | |
| schema: | |
| type: string | |
| - name: related_field | |
| in: path | |
| required: true | |
| description: '' | |
| schema: | |
| type: string | |
| - $ref: '#/components/parameters/include' | |
| - $ref: '#/components/parameters/fields' | |
| - $ref: '#/components/parameters/sort' | |
| - name: sort | |
| required: false | |
| in: query | |
| description: Which field to use when ordering the results. | |
| schema: | |
| type: string | |
| - name: filter[search] | |
| required: false | |
| in: query | |
| description: A search term. | |
| schema: | |
| type: string | |
| responses: | |
| '200': | |
| description: retrieve/v1/course_terms/{id}/relationships/{related_field}/ | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| type: object | |
| required: | |
| - data | |
| properties: | |
| data: | |
| $ref: '#/components/schemas/ResourceIdentifierObject' | |
| included: | |
| type: array | |
| uniqueItems: true | |
| items: | |
| $ref: '#/components/schemas/resource' | |
| links: | |
| description: Link members related to primary data | |
| allOf: | |
| - $ref: '#/components/schemas/links' | |
| - $ref: '#/components/schemas/pagination' | |
| jsonapi: | |
| $ref: '#/components/schemas/jsonapi' | |
| '401': | |
| description: not authorized | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| '404': | |
| description: not found | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| post: | |
| operationId: create/v1/course_terms/{id}/relationships/{related_field}/ | |
| description: View for course_terms.relationships | |
| parameters: | |
| - name: id | |
| in: path | |
| required: true | |
| description: globally unique id (UUID4) | |
| schema: | |
| type: string | |
| - name: related_field | |
| in: path | |
| required: true | |
| description: '' | |
| schema: | |
| type: string | |
| requestBody: | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| required: | |
| - data | |
| properties: | |
| data: | |
| $ref: '#/components/schemas/ResourceIdentifierObject' | |
| responses: | |
| '201': | |
| description: '[Created](https://jsonapi.org/format/#crud-creating-responses-201). | |
| Assigned `id` and/or any other changes are in this response.' | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| type: object | |
| required: | |
| - data | |
| properties: | |
| data: | |
| $ref: '#/components/schemas/ResourceIdentifierObject' | |
| included: | |
| type: array | |
| uniqueItems: true | |
| items: | |
| $ref: '#/components/schemas/resource' | |
| links: | |
| description: Link members related to primary data | |
| allOf: | |
| - $ref: '#/components/schemas/links' | |
| - $ref: '#/components/schemas/pagination' | |
| jsonapi: | |
| $ref: '#/components/schemas/jsonapi' | |
| '202': | |
| description: Accepted for [asynchronous processing](https://jsonapi.org/recommendations/#asynchronous-processing) | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/datum' | |
| '204': | |
| description: '[Created](https://jsonapi.org/format/#crud-creating-responses-204) | |
| with the supplied `id`. No other changes from what was POSTed.' | |
| '401': | |
| description: not authorized | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| '403': | |
| description: '[Forbidden](https://jsonapi.org/format/#crud-creating-responses-403)' | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| '404': | |
| description: '[Related resource does not exist](https://jsonapi.org/format/#crud-creating-responses-404)' | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| '409': | |
| description: '[Conflict](https://jsonapi.org/format/#crud-creating-responses-409)' | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| patch: | |
| operationId: partialUpdate/v1/course_terms/{id}/relationships/{related_field}/ | |
| description: View for course_terms.relationships | |
| parameters: | |
| - name: id | |
| in: path | |
| required: true | |
| description: globally unique id (UUID4) | |
| schema: | |
| type: string | |
| - name: related_field | |
| in: path | |
| required: true | |
| description: '' | |
| schema: | |
| type: string | |
| requestBody: | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| required: | |
| - data | |
| properties: | |
| data: | |
| $ref: '#/components/schemas/ResourceIdentifierObject' | |
| responses: | |
| '200': | |
| description: partialUpdate/v1/course_terms/{id}/relationships/{related_field}/ | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| type: object | |
| required: | |
| - data | |
| properties: | |
| data: | |
| $ref: '#/components/schemas/ResourceIdentifierObject' | |
| included: | |
| type: array | |
| uniqueItems: true | |
| items: | |
| $ref: '#/components/schemas/resource' | |
| links: | |
| description: Link members related to primary data | |
| allOf: | |
| - $ref: '#/components/schemas/links' | |
| - $ref: '#/components/schemas/pagination' | |
| jsonapi: | |
| $ref: '#/components/schemas/jsonapi' | |
| '401': | |
| description: not authorized | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| '403': | |
| description: '[Forbidden](https://jsonapi.org/format/#crud-updating-responses-403)' | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| '404': | |
| description: '[Related resource does not exist](https://jsonapi.org/format/#crud-updating-responses-404)' | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| '409': | |
| description: '[Conflict]([Conflict](https://jsonapi.org/format/#crud-updating-responses-409)' | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| delete: | |
| operationId: destroy/v1/course_terms/{id}/relationships/{related_field}/ | |
| description: View for course_terms.relationships | |
| parameters: | |
| - name: id | |
| in: path | |
| required: true | |
| description: globally unique id (UUID4) | |
| schema: | |
| type: string | |
| - name: related_field | |
| in: path | |
| required: true | |
| description: '' | |
| schema: | |
| type: string | |
| requestBody: | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| required: | |
| - data | |
| properties: | |
| data: | |
| $ref: '#/components/schemas/ResourceIdentifierObject' | |
| responses: | |
| '200': | |
| description: '[OK](https://jsonapi.org/format/#crud-deleting-responses-200)' | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/onlymeta' | |
| '202': | |
| description: Accepted for [asynchronous processing](https://jsonapi.org/recommendations/#asynchronous-processing) | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/datum' | |
| '204': | |
| description: '[no content](https://jsonapi.org/format/#crud-deleting-responses-204)' | |
| '401': | |
| description: not authorized | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| '404': | |
| description: '[Resource does not exist](https://jsonapi.org/format/#crud-deleting-responses-404)' | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| /v1/course_terms/{id}/course/: | |
| get: | |
| operationId: fetch/v1/course_terms/{id}/course/ | |
| description: "A course of instruction. e.g. COMSW1002 Computing in Context\n\ | |
| \ntesting [mkdocstrings](https://pawamoy.github.io/mkdocstrings):\n\nChanges\ | |
| \ from [sphinxcontrib.apidoc](https://github.com/sphinx-contrib/apidoc):\n\ | |
| \n* Uses markdown in docstring rather than RsT. Will require lots of changes\ | |
| \ to docstrings.\n* Must have a docstring under each member in order for it\ | |
| \ to show up in the docs:\n * `#:` does not implement apidoc-style comments\ | |
| \ for members." | |
| parameters: | |
| - name: id | |
| in: path | |
| required: true | |
| description: globally unique id (UUID4) | |
| schema: | |
| type: string | |
| - $ref: '#/components/parameters/include' | |
| - $ref: '#/components/parameters/fields' | |
| - $ref: '#/components/parameters/sort' | |
| responses: | |
| '200': | |
| description: fetch/v1/course_terms/{id}/course/ | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| type: object | |
| required: | |
| - data | |
| properties: | |
| data: | |
| $ref: '#/components/schemas/Course' | |
| included: | |
| type: array | |
| uniqueItems: true | |
| items: | |
| $ref: '#/components/schemas/resource' | |
| links: | |
| description: Link members related to primary data | |
| allOf: | |
| - $ref: '#/components/schemas/links' | |
| - $ref: '#/components/schemas/pagination' | |
| jsonapi: | |
| $ref: '#/components/schemas/jsonapi' | |
| '401': | |
| description: not authorized | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| '404': | |
| description: not found | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| /v1/course_terms/{id}/instructors/: | |
| get: | |
| operationId: List/v1/course_terms/{id}/instructors/ | |
| description: An instructor. | |
| parameters: | |
| - name: id | |
| in: path | |
| required: true | |
| description: globally unique id (UUID4) | |
| schema: | |
| type: string | |
| - $ref: '#/components/parameters/include' | |
| - $ref: '#/components/parameters/fields' | |
| - $ref: '#/components/parameters/sort' | |
| - name: page[number] | |
| required: false | |
| in: query | |
| description: A page number within the paginated result set. | |
| schema: | |
| type: integer | |
| - name: page[size] | |
| required: false | |
| in: query | |
| description: Number of results to return per page. | |
| schema: | |
| type: integer | |
| - name: sort | |
| required: false | |
| in: query | |
| description: Which field to use when ordering the results. | |
| schema: | |
| type: string | |
| - name: filter[id] | |
| required: false | |
| in: query | |
| description: id | |
| schema: | |
| type: string | |
| - name: filter[id.lt] | |
| required: false | |
| in: query | |
| description: id__lt | |
| schema: | |
| type: string | |
| - name: filter[id.gt] | |
| required: false | |
| in: query | |
| description: id__gt | |
| schema: | |
| type: string | |
| - name: filter[id.gte] | |
| required: false | |
| in: query | |
| description: id__gte | |
| schema: | |
| type: string | |
| - name: filter[id.lte] | |
| required: false | |
| in: query | |
| description: id__lte | |
| schema: | |
| type: string | |
| - name: filter[id.in] | |
| required: false | |
| in: query | |
| description: id__in | |
| schema: | |
| type: string | |
| - name: filter[course_name] | |
| required: false | |
| in: query | |
| description: course_name | |
| schema: | |
| type: string | |
| - name: filter[course_name.gt] | |
| required: false | |
| in: query | |
| description: course_name__gt | |
| schema: | |
| type: string | |
| - name: filter[course_name.gte] | |
| required: false | |
| in: query | |
| description: course_name__gte | |
| schema: | |
| type: string | |
| - name: filter[course_name.lt] | |
| required: false | |
| in: query | |
| description: course_name__lt | |
| schema: | |
| type: string | |
| - name: filter[course_name.lte] | |
| required: false | |
| in: query | |
| description: course_name__lte | |
| schema: | |
| type: string | |
| - name: filter[name] | |
| required: false | |
| in: query | |
| description: name | |
| schema: | |
| type: string | |
| - name: filter[name.gt] | |
| required: false | |
| in: query | |
| description: name__gt | |
| schema: | |
| type: string | |
| - name: filter[name.gte] | |
| required: false | |
| in: query | |
| description: name__gte | |
| schema: | |
| type: string | |
| - name: filter[name.lt] | |
| required: false | |
| in: query | |
| description: name__lt | |
| schema: | |
| type: string | |
| - name: filter[name.lte] | |
| required: false | |
| in: query | |
| description: name__lte | |
| schema: | |
| type: string | |
| - name: filter[search] | |
| required: false | |
| in: query | |
| description: A search term. | |
| schema: | |
| type: string | |
| responses: | |
| '200': | |
| description: List/v1/course_terms/{id}/instructors/ | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| type: object | |
| required: | |
| - data | |
| properties: | |
| data: | |
| type: array | |
| items: | |
| $ref: '#/components/schemas/Instructor' | |
| included: | |
| type: array | |
| uniqueItems: true | |
| items: | |
| $ref: '#/components/schemas/resource' | |
| links: | |
| description: Link members related to primary data | |
| allOf: | |
| - $ref: '#/components/schemas/links' | |
| - $ref: '#/components/schemas/pagination' | |
| jsonapi: | |
| $ref: '#/components/schemas/jsonapi' | |
| '401': | |
| description: not authorized | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| '404': | |
| description: not found | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| /v1/people/{id}/relationships/{related_field}/: | |
| get: | |
| operationId: retrieve/v1/people/{id}/relationships/{related_field}/ | |
| description: View for people.relationships | |
| parameters: | |
| - name: id | |
| in: path | |
| required: true | |
| description: globally unique id (UUID4) | |
| schema: | |
| type: string | |
| - name: related_field | |
| in: path | |
| required: true | |
| description: '' | |
| schema: | |
| type: string | |
| - $ref: '#/components/parameters/include' | |
| - $ref: '#/components/parameters/fields' | |
| - $ref: '#/components/parameters/sort' | |
| - name: sort | |
| required: false | |
| in: query | |
| description: Which field to use when ordering the results. | |
| schema: | |
| type: string | |
| - name: filter[search] | |
| required: false | |
| in: query | |
| description: A search term. | |
| schema: | |
| type: string | |
| responses: | |
| '200': | |
| description: retrieve/v1/people/{id}/relationships/{related_field}/ | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| type: object | |
| required: | |
| - data | |
| properties: | |
| data: | |
| $ref: '#/components/schemas/ResourceIdentifierObject' | |
| included: | |
| type: array | |
| uniqueItems: true | |
| items: | |
| $ref: '#/components/schemas/resource' | |
| links: | |
| description: Link members related to primary data | |
| allOf: | |
| - $ref: '#/components/schemas/links' | |
| - $ref: '#/components/schemas/pagination' | |
| jsonapi: | |
| $ref: '#/components/schemas/jsonapi' | |
| '401': | |
| description: not authorized | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| '404': | |
| description: not found | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| post: | |
| operationId: create/v1/people/{id}/relationships/{related_field}/ | |
| description: View for people.relationships | |
| parameters: | |
| - name: id | |
| in: path | |
| required: true | |
| description: globally unique id (UUID4) | |
| schema: | |
| type: string | |
| - name: related_field | |
| in: path | |
| required: true | |
| description: '' | |
| schema: | |
| type: string | |
| requestBody: | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| required: | |
| - data | |
| properties: | |
| data: | |
| $ref: '#/components/schemas/ResourceIdentifierObject' | |
| responses: | |
| '201': | |
| description: '[Created](https://jsonapi.org/format/#crud-creating-responses-201). | |
| Assigned `id` and/or any other changes are in this response.' | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| type: object | |
| required: | |
| - data | |
| properties: | |
| data: | |
| $ref: '#/components/schemas/ResourceIdentifierObject' | |
| included: | |
| type: array | |
| uniqueItems: true | |
| items: | |
| $ref: '#/components/schemas/resource' | |
| links: | |
| description: Link members related to primary data | |
| allOf: | |
| - $ref: '#/components/schemas/links' | |
| - $ref: '#/components/schemas/pagination' | |
| jsonapi: | |
| $ref: '#/components/schemas/jsonapi' | |
| '202': | |
| description: Accepted for [asynchronous processing](https://jsonapi.org/recommendations/#asynchronous-processing) | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/datum' | |
| '204': | |
| description: '[Created](https://jsonapi.org/format/#crud-creating-responses-204) | |
| with the supplied `id`. No other changes from what was POSTed.' | |
| '401': | |
| description: not authorized | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| '403': | |
| description: '[Forbidden](https://jsonapi.org/format/#crud-creating-responses-403)' | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| '404': | |
| description: '[Related resource does not exist](https://jsonapi.org/format/#crud-creating-responses-404)' | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| '409': | |
| description: '[Conflict](https://jsonapi.org/format/#crud-creating-responses-409)' | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| patch: | |
| operationId: partialUpdate/v1/people/{id}/relationships/{related_field}/ | |
| description: View for people.relationships | |
| parameters: | |
| - name: id | |
| in: path | |
| required: true | |
| description: globally unique id (UUID4) | |
| schema: | |
| type: string | |
| - name: related_field | |
| in: path | |
| required: true | |
| description: '' | |
| schema: | |
| type: string | |
| requestBody: | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| required: | |
| - data | |
| properties: | |
| data: | |
| $ref: '#/components/schemas/ResourceIdentifierObject' | |
| responses: | |
| '200': | |
| description: partialUpdate/v1/people/{id}/relationships/{related_field}/ | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| type: object | |
| required: | |
| - data | |
| properties: | |
| data: | |
| $ref: '#/components/schemas/ResourceIdentifierObject' | |
| included: | |
| type: array | |
| uniqueItems: true | |
| items: | |
| $ref: '#/components/schemas/resource' | |
| links: | |
| description: Link members related to primary data | |
| allOf: | |
| - $ref: '#/components/schemas/links' | |
| - $ref: '#/components/schemas/pagination' | |
| jsonapi: | |
| $ref: '#/components/schemas/jsonapi' | |
| '401': | |
| description: not authorized | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| '403': | |
| description: '[Forbidden](https://jsonapi.org/format/#crud-updating-responses-403)' | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| '404': | |
| description: '[Related resource does not exist](https://jsonapi.org/format/#crud-updating-responses-404)' | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| '409': | |
| description: '[Conflict]([Conflict](https://jsonapi.org/format/#crud-updating-responses-409)' | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| delete: | |
| operationId: destroy/v1/people/{id}/relationships/{related_field}/ | |
| description: View for people.relationships | |
| parameters: | |
| - name: id | |
| in: path | |
| required: true | |
| description: globally unique id (UUID4) | |
| schema: | |
| type: string | |
| - name: related_field | |
| in: path | |
| required: true | |
| description: '' | |
| schema: | |
| type: string | |
| requestBody: | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| required: | |
| - data | |
| properties: | |
| data: | |
| $ref: '#/components/schemas/ResourceIdentifierObject' | |
| responses: | |
| '200': | |
| description: '[OK](https://jsonapi.org/format/#crud-deleting-responses-200)' | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/onlymeta' | |
| '202': | |
| description: Accepted for [asynchronous processing](https://jsonapi.org/recommendations/#asynchronous-processing) | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/datum' | |
| '204': | |
| description: '[no content](https://jsonapi.org/format/#crud-deleting-responses-204)' | |
| '401': | |
| description: not authorized | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| '404': | |
| description: '[Resource does not exist](https://jsonapi.org/format/#crud-deleting-responses-404)' | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| /v1/people/{id}/instructor/: | |
| get: | |
| operationId: fetch/v1/people/{id}/instructor/ | |
| description: An instructor. | |
| parameters: | |
| - name: id | |
| in: path | |
| required: true | |
| description: globally unique id (UUID4) | |
| schema: | |
| type: string | |
| - $ref: '#/components/parameters/include' | |
| - $ref: '#/components/parameters/fields' | |
| - $ref: '#/components/parameters/sort' | |
| responses: | |
| '200': | |
| description: fetch/v1/people/{id}/instructor/ | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| type: object | |
| required: | |
| - data | |
| properties: | |
| data: | |
| $ref: '#/components/schemas/Instructor' | |
| included: | |
| type: array | |
| uniqueItems: true | |
| items: | |
| $ref: '#/components/schemas/resource' | |
| links: | |
| description: Link members related to primary data | |
| allOf: | |
| - $ref: '#/components/schemas/links' | |
| - $ref: '#/components/schemas/pagination' | |
| jsonapi: | |
| $ref: '#/components/schemas/jsonapi' | |
| '401': | |
| description: not authorized | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| '404': | |
| description: not found | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| /v1/instructors/{id}/relationships/{related_field}/: | |
| get: | |
| operationId: retrieve/v1/instructors/{id}/relationships/{related_field}/ | |
| description: View for instructors.relationships | |
| parameters: | |
| - name: id | |
| in: path | |
| required: true | |
| description: globally unique id (UUID4) | |
| schema: | |
| type: string | |
| - name: related_field | |
| in: path | |
| required: true | |
| description: '' | |
| schema: | |
| type: string | |
| - $ref: '#/components/parameters/include' | |
| - $ref: '#/components/parameters/fields' | |
| - $ref: '#/components/parameters/sort' | |
| - name: sort | |
| required: false | |
| in: query | |
| description: Which field to use when ordering the results. | |
| schema: | |
| type: string | |
| - name: filter[search] | |
| required: false | |
| in: query | |
| description: A search term. | |
| schema: | |
| type: string | |
| responses: | |
| '200': | |
| description: retrieve/v1/instructors/{id}/relationships/{related_field}/ | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| type: object | |
| required: | |
| - data | |
| properties: | |
| data: | |
| $ref: '#/components/schemas/ResourceIdentifierObject' | |
| included: | |
| type: array | |
| uniqueItems: true | |
| items: | |
| $ref: '#/components/schemas/resource' | |
| links: | |
| description: Link members related to primary data | |
| allOf: | |
| - $ref: '#/components/schemas/links' | |
| - $ref: '#/components/schemas/pagination' | |
| jsonapi: | |
| $ref: '#/components/schemas/jsonapi' | |
| '401': | |
| description: not authorized | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| '404': | |
| description: not found | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| post: | |
| operationId: create/v1/instructors/{id}/relationships/{related_field}/ | |
| description: View for instructors.relationships | |
| parameters: | |
| - name: id | |
| in: path | |
| required: true | |
| description: globally unique id (UUID4) | |
| schema: | |
| type: string | |
| - name: related_field | |
| in: path | |
| required: true | |
| description: '' | |
| schema: | |
| type: string | |
| requestBody: | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| required: | |
| - data | |
| properties: | |
| data: | |
| $ref: '#/components/schemas/ResourceIdentifierObject' | |
| responses: | |
| '201': | |
| description: '[Created](https://jsonapi.org/format/#crud-creating-responses-201). | |
| Assigned `id` and/or any other changes are in this response.' | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| type: object | |
| required: | |
| - data | |
| properties: | |
| data: | |
| $ref: '#/components/schemas/ResourceIdentifierObject' | |
| included: | |
| type: array | |
| uniqueItems: true | |
| items: | |
| $ref: '#/components/schemas/resource' | |
| links: | |
| description: Link members related to primary data | |
| allOf: | |
| - $ref: '#/components/schemas/links' | |
| - $ref: '#/components/schemas/pagination' | |
| jsonapi: | |
| $ref: '#/components/schemas/jsonapi' | |
| '202': | |
| description: Accepted for [asynchronous processing](https://jsonapi.org/recommendations/#asynchronous-processing) | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/datum' | |
| '204': | |
| description: '[Created](https://jsonapi.org/format/#crud-creating-responses-204) | |
| with the supplied `id`. No other changes from what was POSTed.' | |
| '401': | |
| description: not authorized | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| '403': | |
| description: '[Forbidden](https://jsonapi.org/format/#crud-creating-responses-403)' | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| '404': | |
| description: '[Related resource does not exist](https://jsonapi.org/format/#crud-creating-responses-404)' | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| '409': | |
| description: '[Conflict](https://jsonapi.org/format/#crud-creating-responses-409)' | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| patch: | |
| operationId: partialUpdate/v1/instructors/{id}/relationships/{related_field}/ | |
| description: View for instructors.relationships | |
| parameters: | |
| - name: id | |
| in: path | |
| required: true | |
| description: globally unique id (UUID4) | |
| schema: | |
| type: string | |
| - name: related_field | |
| in: path | |
| required: true | |
| description: '' | |
| schema: | |
| type: string | |
| requestBody: | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| required: | |
| - data | |
| properties: | |
| data: | |
| $ref: '#/components/schemas/ResourceIdentifierObject' | |
| responses: | |
| '200': | |
| description: partialUpdate/v1/instructors/{id}/relationships/{related_field}/ | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| type: object | |
| required: | |
| - data | |
| properties: | |
| data: | |
| $ref: '#/components/schemas/ResourceIdentifierObject' | |
| included: | |
| type: array | |
| uniqueItems: true | |
| items: | |
| $ref: '#/components/schemas/resource' | |
| links: | |
| description: Link members related to primary data | |
| allOf: | |
| - $ref: '#/components/schemas/links' | |
| - $ref: '#/components/schemas/pagination' | |
| jsonapi: | |
| $ref: '#/components/schemas/jsonapi' | |
| '401': | |
| description: not authorized | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| '403': | |
| description: '[Forbidden](https://jsonapi.org/format/#crud-updating-responses-403)' | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| '404': | |
| description: '[Related resource does not exist](https://jsonapi.org/format/#crud-updating-responses-404)' | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| '409': | |
| description: '[Conflict]([Conflict](https://jsonapi.org/format/#crud-updating-responses-409)' | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| delete: | |
| operationId: destroy/v1/instructors/{id}/relationships/{related_field}/ | |
| description: View for instructors.relationships | |
| parameters: | |
| - name: id | |
| in: path | |
| required: true | |
| description: globally unique id (UUID4) | |
| schema: | |
| type: string | |
| - name: related_field | |
| in: path | |
| required: true | |
| description: '' | |
| schema: | |
| type: string | |
| requestBody: | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| required: | |
| - data | |
| properties: | |
| data: | |
| $ref: '#/components/schemas/ResourceIdentifierObject' | |
| responses: | |
| '200': | |
| description: '[OK](https://jsonapi.org/format/#crud-deleting-responses-200)' | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/onlymeta' | |
| '202': | |
| description: Accepted for [asynchronous processing](https://jsonapi.org/recommendations/#asynchronous-processing) | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/datum' | |
| '204': | |
| description: '[no content](https://jsonapi.org/format/#crud-deleting-responses-204)' | |
| '401': | |
| description: not authorized | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| '404': | |
| description: '[Resource does not exist](https://jsonapi.org/format/#crud-deleting-responses-404)' | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| /v1/instructors/{id}/course_terms/: | |
| get: | |
| operationId: List/v1/instructors/{id}/course_terms/ | |
| description: 'A specific course term (year+semester) instance. | |
| e.g. 20183COMSW1002' | |
| parameters: | |
| - name: id | |
| in: path | |
| required: true | |
| description: globally unique id (UUID4) | |
| schema: | |
| type: string | |
| - $ref: '#/components/parameters/include' | |
| - $ref: '#/components/parameters/fields' | |
| - $ref: '#/components/parameters/sort' | |
| - name: page[number] | |
| required: false | |
| in: query | |
| description: A page number within the paginated result set. | |
| schema: | |
| type: integer | |
| - name: page[size] | |
| required: false | |
| in: query | |
| description: Number of results to return per page. | |
| schema: | |
| type: integer | |
| - name: sort | |
| required: false | |
| in: query | |
| description: Which field to use when ordering the results. | |
| schema: | |
| type: string | |
| - name: filter[id] | |
| required: false | |
| in: query | |
| description: id | |
| schema: | |
| type: string | |
| - name: filter[id.lt] | |
| required: false | |
| in: query | |
| description: id__lt | |
| schema: | |
| type: string | |
| - name: filter[id.gt] | |
| required: false | |
| in: query | |
| description: id__gt | |
| schema: | |
| type: string | |
| - name: filter[id.gte] | |
| required: false | |
| in: query | |
| description: id__gte | |
| schema: | |
| type: string | |
| - name: filter[id.lte] | |
| required: false | |
| in: query | |
| description: id__lte | |
| schema: | |
| type: string | |
| - name: filter[id.in] | |
| required: false | |
| in: query | |
| description: id__in | |
| schema: | |
| type: string | |
| - name: filter[term_identifier] | |
| required: false | |
| in: query | |
| description: term_identifier | |
| schema: | |
| type: string | |
| - name: filter[term_identifier.lt] | |
| required: false | |
| in: query | |
| description: term_identifier__lt | |
| schema: | |
| type: string | |
| - name: filter[term_identifier.gt] | |
| required: false | |
| in: query | |
| description: term_identifier__gt | |
| schema: | |
| type: string | |
| - name: filter[term_identifier.gte] | |
| required: false | |
| in: query | |
| description: term_identifier__gte | |
| schema: | |
| type: string | |
| - name: filter[term_identifier.lte] | |
| required: false | |
| in: query | |
| description: term_identifier__lte | |
| schema: | |
| type: string | |
| - name: filter[term_identifier.in] | |
| required: false | |
| in: query | |
| description: term_identifier__in | |
| schema: | |
| type: string | |
| - name: filter[audit_permitted_code] | |
| required: false | |
| in: query | |
| description: audit_permitted_code | |
| schema: | |
| type: string | |
| - name: filter[exam_credit_flag] | |
| required: false | |
| in: query | |
| description: exam_credit_flag | |
| schema: | |
| type: string | |
| - name: filter[course.id] | |
| required: false | |
| in: query | |
| description: course__id | |
| schema: | |
| type: string | |
| - name: filter[course.id.lt] | |
| required: false | |
| in: query | |
| description: course__id__lt | |
| schema: | |
| type: string | |
| - name: filter[course.id.gt] | |
| required: false | |
| in: query | |
| description: course__id__gt | |
| schema: | |
| type: string | |
| - name: filter[course.id.gte] | |
| required: false | |
| in: query | |
| description: course__id__gte | |
| schema: | |
| type: string | |
| - name: filter[course.id.lte] | |
| required: false | |
| in: query | |
| description: course__id__lte | |
| schema: | |
| type: string | |
| - name: filter[course.id.in] | |
| required: false | |
| in: query | |
| description: course__id__in | |
| schema: | |
| type: string | |
| - name: filter[search] | |
| required: false | |
| in: query | |
| description: A search term. | |
| schema: | |
| type: string | |
| responses: | |
| '200': | |
| description: List/v1/instructors/{id}/course_terms/ | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| type: object | |
| required: | |
| - data | |
| properties: | |
| data: | |
| type: array | |
| items: | |
| $ref: '#/components/schemas/CourseTerm' | |
| included: | |
| type: array | |
| uniqueItems: true | |
| items: | |
| $ref: '#/components/schemas/resource' | |
| links: | |
| description: Link members related to primary data | |
| allOf: | |
| - $ref: '#/components/schemas/links' | |
| - $ref: '#/components/schemas/pagination' | |
| jsonapi: | |
| $ref: '#/components/schemas/jsonapi' | |
| '401': | |
| description: not authorized | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| '404': | |
| description: not found | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| /v1/instructors/{id}/person/: | |
| get: | |
| operationId: fetch/v1/instructors/{id}/person/ | |
| description: A person. | |
| parameters: | |
| - name: id | |
| in: path | |
| required: true | |
| description: globally unique id (UUID4) | |
| schema: | |
| type: string | |
| - $ref: '#/components/parameters/include' | |
| - $ref: '#/components/parameters/fields' | |
| - $ref: '#/components/parameters/sort' | |
| responses: | |
| '200': | |
| description: fetch/v1/instructors/{id}/person/ | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| type: object | |
| required: | |
| - data | |
| properties: | |
| data: | |
| $ref: '#/components/schemas/Person' | |
| included: | |
| type: array | |
| uniqueItems: true | |
| items: | |
| $ref: '#/components/schemas/resource' | |
| links: | |
| description: Link members related to primary data | |
| allOf: | |
| - $ref: '#/components/schemas/links' | |
| - $ref: '#/components/schemas/pagination' | |
| jsonapi: | |
| $ref: '#/components/schemas/jsonapi' | |
| '401': | |
| description: not authorized | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| '404': | |
| description: not found | |
| content: | |
| application/vnd.api+json: | |
| schema: | |
| $ref: '#/components/schemas/failure' | |
| components: | |
| schemas: | |
| jsonapi: | |
| type: object | |
| description: The server's implementation | |
| properties: | |
| version: | |
| type: string | |
| meta: | |
| $ref: '#/components/schemas/meta' | |
| additionalProperties: false | |
| resource: | |
| type: object | |
| required: | |
| - type | |
| - id | |
| additionalProperties: false | |
| properties: | |
| type: | |
| $ref: '#/components/schemas/type' | |
| id: | |
| $ref: '#/components/schemas/id' | |
| attributes: | |
| type: object | |
| relationships: | |
| type: object | |
| links: | |
| $ref: '#/components/schemas/links' | |
| meta: | |
| $ref: '#/components/schemas/meta' | |
| link: | |
| oneOf: | |
| - description: a string containing the link's URL | |
| type: string | |
| format: uri-reference | |
| - type: object | |
| required: | |
| - href | |
| properties: | |
| href: | |
| description: a string containing the link's URL | |
| type: string | |
| format: uri-reference | |
| meta: | |
| $ref: '#/components/schemas/meta' | |
| links: | |
| type: object | |
| additionalProperties: | |
| $ref: '#/components/schemas/link' | |
| reltoone: | |
| description: a singular 'to-one' relationship | |
| type: object | |
| properties: | |
| links: | |
| $ref: '#/components/schemas/relationshipLinks' | |
| data: | |
| $ref: '#/components/schemas/relationshipToOne' | |
| meta: | |
| $ref: '#/components/schemas/meta' | |
| relationshipToOne: | |
| description: reference to other resource in a to-one relationship | |
| anyOf: | |
| - $ref: '#/components/schemas/nulltype' | |
| - $ref: '#/components/schemas/linkage' | |
| reltomany: | |
| description: a multiple 'to-many' relationship | |
| type: object | |
| properties: | |
| links: | |
| $ref: '#/components/schemas/relationshipLinks' | |
| data: | |
| $ref: '#/components/schemas/relationshipToMany' | |
| meta: | |
| $ref: '#/components/schemas/meta' | |
| relationshipLinks: | |
| description: optional references to other resource objects | |
| type: object | |
| additionalProperties: true | |
| properties: | |
| self: | |
| $ref: '#/components/schemas/link' | |
| related: | |
| $ref: '#/components/schemas/link' | |
| relationshipToMany: | |
| description: An array of objects each containing the 'type' and 'id' for to-many | |
| relationships | |
| type: array | |
| items: | |
| $ref: '#/components/schemas/linkage' | |
| uniqueItems: true | |
| ResourceIdentifierObject: | |
| oneOf: | |
| - $ref: '#/components/schemas/relationshipToOne' | |
| - $ref: '#/components/schemas/relationshipToMany' | |
| linkage: | |
| type: object | |
| description: the 'type' and 'id' | |
| required: | |
| - type | |
| - id | |
| properties: | |
| type: | |
| $ref: '#/components/schemas/type' | |
| id: | |
| $ref: '#/components/schemas/id' | |
| meta: | |
| $ref: '#/components/schemas/meta' | |
| pagination: | |
| type: object | |
| properties: | |
| first: | |
| $ref: '#/components/schemas/pageref' | |
| last: | |
| $ref: '#/components/schemas/pageref' | |
| prev: | |
| $ref: '#/components/schemas/pageref' | |
| next: | |
| $ref: '#/components/schemas/pageref' | |
| pageref: | |
| oneOf: | |
| - type: string | |
| format: uri-reference | |
| - $ref: '#/components/schemas/nulltype' | |
| failure: | |
| type: object | |
| required: | |
| - errors | |
| properties: | |
| errors: | |
| $ref: '#/components/schemas/errors' | |
| meta: | |
| $ref: '#/components/schemas/meta' | |
| jsonapi: | |
| $ref: '#/components/schemas/jsonapi' | |
| links: | |
| $ref: '#/components/schemas/links' | |
| errors: | |
| type: array | |
| items: | |
| $ref: '#/components/schemas/error' | |
| uniqueItems: true | |
| error: | |
| type: object | |
| additionalProperties: false | |
| properties: | |
| id: | |
| type: string | |
| status: | |
| type: string | |
| links: | |
| $ref: '#/components/schemas/links' | |
| code: | |
| type: string | |
| title: | |
| type: string | |
| detail: | |
| type: string | |
| source: | |
| type: object | |
| properties: | |
| pointer: | |
| type: string | |
| description: A [JSON Pointer](https://tools.ietf.org/html/rfc6901) to | |
| the associated entity in the request document [e.g. `/data` for a | |
| primary data object, or `/data/attributes/title` for a specific attribute. | |
| parameter: | |
| type: string | |
| description: A string indicating which query parameter caused the error. | |
| meta: | |
| $ref: '#/components/schemas/meta' | |
| onlymeta: | |
| additionalProperties: false | |
| properties: | |
| meta: | |
| $ref: '#/components/schemas/meta' | |
| meta: | |
| type: object | |
| additionalProperties: true | |
| datum: | |
| description: singular item | |
| properties: | |
| data: | |
| $ref: '#/components/schemas/resource' | |
| nulltype: | |
| type: object | |
| nullable: true | |
| default: null | |
| type: | |
| type: string | |
| description: The [type](https://jsonapi.org/format/#document-resource-object-identification) | |
| member is used to describe resource objects that share common attributes and | |
| relationships. | |
| id: | |
| type: string | |
| description: "Each resource object\u2019s type and id pair MUST [identify](https://jsonapi.org/format/#document-resource-object-identification)\ | |
| \ a single, unique resource." | |
| Course: | |
| type: object | |
| required: | |
| - type | |
| - id | |
| additionalProperties: false | |
| properties: | |
| type: | |
| $ref: '#/components/schemas/type' | |
| id: | |
| $ref: '#/components/schemas/id' | |
| links: | |
| type: object | |
| properties: | |
| self: | |
| $ref: '#/components/schemas/link' | |
| attributes: | |
| type: object | |
| properties: | |
| effective_start_date: | |
| type: string | |
| format: date | |
| nullable: true | |
| description: date when this instance becomes valid | |
| effective_end_date: | |
| type: string | |
| format: date | |
| nullable: true | |
| description: date when this instance becomes invalid | |
| last_mod_user_name: | |
| type: string | |
| readOnly: true | |
| description: who last modified this instance | |
| last_mod_date: | |
| type: string | |
| format: date | |
| readOnly: true | |
| description: when they modified it | |
| school_bulletin_prefix_code: | |
| type: string | |
| maxLength: 10 | |
| suffix_two: | |
| type: string | |
| description: two-character identifier suffix | |
| maxLength: 2 | |
| subject_area_code: | |
| type: string | |
| description: Subject | |
| maxLength: 10 | |
| course_number: | |
| type: string | |
| description: '"Shortcut" identifier (formerly for touch-tone registration)' | |
| maxLength: 10 | |
| course_identifier: | |
| type: string | |
| description: Course identifier (one-character suffix) | |
| pattern: '[A-Z]{4}[0-9]{4}[A-Z]' | |
| maxLength: 9 | |
| minLength: 9 | |
| course_name: | |
| type: string | |
| description: Course official title | |
| maxLength: 80 | |
| course_description: | |
| type: string | |
| description: Course description | |
| required: | |
| - school_bulletin_prefix_code | |
| - suffix_two | |
| - subject_area_code | |
| - course_number | |
| - course_identifier | |
| - course_name | |
| - course_description | |
| relationships: | |
| type: object | |
| properties: | |
| course_terms: | |
| $ref: '#/components/schemas/reltomany' | |
| CourseTerm: | |
| type: object | |
| required: | |
| - type | |
| - id | |
| additionalProperties: false | |
| properties: | |
| type: | |
| $ref: '#/components/schemas/type' | |
| id: | |
| $ref: '#/components/schemas/id' | |
| links: | |
| type: object | |
| properties: | |
| self: | |
| $ref: '#/components/schemas/link' | |
| attributes: | |
| type: object | |
| properties: | |
| effective_start_date: | |
| type: string | |
| format: date | |
| nullable: true | |
| description: date when this instance becomes valid | |
| effective_end_date: | |
| type: string | |
| format: date | |
| nullable: true | |
| description: date when this instance becomes invalid | |
| last_mod_user_name: | |
| type: string | |
| readOnly: true | |
| description: who last modified this instance | |
| last_mod_date: | |
| type: string | |
| format: date | |
| readOnly: true | |
| description: when they modified it | |
| term_identifier: | |
| type: string | |
| pattern: '[0-9]{4}[123][A-Z]{4}[0-9]{4}[A-Z]' | |
| maxLength: 14 | |
| minLength: 14 | |
| audit_permitted_code: | |
| type: integer | |
| exam_credit_flag: | |
| type: boolean | |
| required: | |
| - term_identifier | |
| relationships: | |
| type: object | |
| properties: | |
| course: | |
| $ref: '#/components/schemas/reltoone' | |
| instructors: | |
| $ref: '#/components/schemas/reltomany' | |
| Person: | |
| type: object | |
| required: | |
| - type | |
| - id | |
| additionalProperties: false | |
| properties: | |
| type: | |
| $ref: '#/components/schemas/type' | |
| id: | |
| $ref: '#/components/schemas/id' | |
| links: | |
| type: object | |
| properties: | |
| self: | |
| $ref: '#/components/schemas/link' | |
| attributes: | |
| type: object | |
| properties: | |
| effective_start_date: | |
| type: string | |
| format: date | |
| nullable: true | |
| description: date when this instance becomes valid | |
| effective_end_date: | |
| type: string | |
| format: date | |
| nullable: true | |
| description: date when this instance becomes invalid | |
| last_mod_user_name: | |
| type: string | |
| readOnly: true | |
| description: who last modified this instance | |
| last_mod_date: | |
| type: string | |
| format: date | |
| readOnly: true | |
| description: when they modified it | |
| name: | |
| type: string | |
| maxLength: 100 | |
| required: | |
| - name | |
| relationships: | |
| type: object | |
| properties: | |
| instructor: | |
| $ref: '#/components/schemas/reltoone' | |
| Instructor: | |
| type: object | |
| required: | |
| - type | |
| - id | |
| additionalProperties: false | |
| properties: | |
| type: | |
| $ref: '#/components/schemas/type' | |
| id: | |
| $ref: '#/components/schemas/id' | |
| links: | |
| type: object | |
| properties: | |
| self: | |
| $ref: '#/components/schemas/link' | |
| attributes: | |
| type: object | |
| properties: | |
| effective_start_date: | |
| type: string | |
| format: date | |
| nullable: true | |
| description: date when this instance becomes valid | |
| effective_end_date: | |
| type: string | |
| format: date | |
| nullable: true | |
| description: date when this instance becomes invalid | |
| last_mod_user_name: | |
| type: string | |
| readOnly: true | |
| description: who last modified this instance | |
| last_mod_date: | |
| type: string | |
| format: date | |
| readOnly: true | |
| description: when they modified it | |
| relationships: | |
| type: object | |
| properties: | |
| course_terms: | |
| $ref: '#/components/schemas/reltomany' | |
| person: | |
| $ref: '#/components/schemas/reltoone' | |
| parameters: | |
| include: | |
| name: include | |
| in: query | |
| description: '[list of included related resources](https://jsonapi.org/format/#fetching-includes)' | |
| required: false | |
| style: form | |
| schema: | |
| type: string | |
| fields: | |
| name: fields | |
| in: query | |
| description: '[sparse fieldsets](https://jsonapi.org/format/#fetching-sparse-fieldsets). | |
| Use fields[\<typename\>]=field1,field2,...,fieldN' | |
| required: false | |
| style: deepObject | |
| schema: | |
| type: object | |
| explode: true | |
| sort: | |
| name: sort | |
| in: query | |
| description: '[list of fields to sort by](https://jsonapi.org/format/#fetching-sorting)' | |
| required: false | |
| style: form | |
| schema: | |
| type: string | |
| securitySchemes: | |
| basicAuth: | |
| type: http | |
| scheme: basic | |
| description: basic authentication | |
| sessionAuth: | |
| type: apiKey | |
| in: cookie | |
| name: JSESSIONID | |
| description: Session authentication | |
| oauth-test: | |
| type: oauth2 | |
| description: test OAuth2 service | |
| flows: | |
| authorizationCode: | |
| authorizationUrl: https://oauth-test.cc.columbia.edu/as/authorization.oauth2 | |
| tokenUrl: https://oauth-test.cc.columbia.edu/as/token.oauth2 | |
| scopes: | |
| auth-columbia: Columbia UNI login | |
| create: create | |
| read: read | |
| update: update | |
| delete: delete | |
| openid: disclose your identity | |
| profile: your user profile | |
| email: your email address | |
| https://api.columbia.edu/scope/group: groups you are a member of | |
| demo-djt-sla-bronze: 'permitted to access the django-jsonapi-training | |
| demo: 1 request per second' | |
| demo-djt-sla-update: permitted to update the django-jsonapi-training resources | |
| oauth-dev: | |
| type: oauth2 | |
| description: dev OAuth2 service | |
| flows: | |
| authorizationCode: | |
| authorizationUrl: https://oauth-dev.cuit.columbia.edu:8443/as/authorization.oauth2 | |
| tokenUrl: https://oauth-dev.cuit.columbia.edu:8443/as/token.oauth2 | |
| scopes: | |
| auth-columbia: Columbia UNI login | |
| create: create | |
| read: read | |
| update: update | |
| delete: delete | |
| openid: disclose your identity | |
| profile: your user profile | |
| email: your email address | |
| https://api.columbia.edu/scope/group: groups you are a member of | |
| demo-djt-sla-bronze: 'permitted to access the django-jsonapi-training | |
| demo: 1 request per second' | |
| demo-djt-sla-update: permitted to update the django-jsonapi-training resources | |
| oauth-local: | |
| type: oauth2 | |
| description: local DOT OAuth2 service | |
| flows: | |
| authorizationCode: | |
| authorizationUrl: http://localhost:8000/o/authorize/ | |
| tokenUrl: http://localhost:8000/o/token/ | |
| scopes: | |
| auth-columbia: Columbia UNI login | |
| create: create | |
| read: read | |
| update: update | |
| delete: delete | |
| openid: disclose your identity | |
| profile: your user profile | |
| email: your email address | |
| https://api.columbia.edu/scope/group: groups you are a member of | |
| demo-djt-sla-bronze: 'permitted to access the django-jsonapi-training | |
| demo: 1 request per second' | |
| demo-djt-sla-update: permitted to update the django-jsonapi-training resources | |
| servers: | |
| - url: http://localhost:8000 | |
| description: local dev | |
| - url: https://localhost | |
| description: local docker | |
| - url: https://ac45devapp01.cc.columbia.edu | |
| description: demo | |
| - url: '{serverURL}' | |
| description: provide your server URL | |
| variables: | |
| serverURL: | |
| default: http://localhost:8000 | |
| security: | |
| - basicAuth: [] | |
| - sessionAuth: [] | |
| - oauth-test: | |
| - - auth-columbia | |
| - openid | |
| - https://api.columbia.edu/scope/group | |
| - oauth-dev: | |
| - - auth-columbia | |
| - openid | |
| - https://api.columbia.edu/scope/group | |
| - oauth-local: | |
| - - auth-columbia | |
| - openid | |
| - https://api.columbia.edu/scope/group |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment