openapi: 3.2.0 info: title: Open Education Associations API version: 5.0.0 x-logo: url: ../logo.png description: 'Operations tagged associations across 2 of this provider''s published API definitions: ooapi-v5.yaml, open-education-api-v5-openapi.yml. Each path carries the servers of the definition it was published in.' servers: - url: http://demo01.eduapi.nl/v5 description: SURF demo implementation tags: - name: associations description: The associations API provides information about the association between an offering and a person (e.g. paths: /associations/{associationId}: get: summary: GET /associations/{associationId} description: Get a single association. tags: - associations parameters: - name: associationId in: path description: Association ID required: true schema: type: string format: uuid - name: expand in: query explode: false description: Optional properties to expand, separated by a comma required: false schema: type: array items: type: string enum: - person - offering responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AssociationFull' '400': $ref: '#/components/responses/ErrorBadRequest' '401': $ref: '#/components/responses/ErrorUnauthorized' '403': $ref: '#/components/responses/ErrorForbidden' '404': $ref: '#/components/responses/ErrorNotFound' '405': $ref: '#/components/responses/ErrorMethodNotAllowed' '429': $ref: '#/components/responses/ErrorTooManyRequests' '500': $ref: '#/components/responses/ErrorInternalServerError' operationId: getAssociationsByAssociationId x-operation-id-source: derived patch: summary: PATCH /associations/{associationId} description: 'Update the status or result of an enrollment. Other elements of the association object COULD also be PATCHED. But are not likely and have therefor not been included in this endpoint. Implementation of the PATCH activity is based on use PATCH with JSON Merge Patch standard, a specialized media type `application/merge-patch+json` for partial resource representation to update parts of resource objects.' security: - openId: - associations.write tags: - associations parameters: - name: associationId in: path description: The id of the association to update required: true schema: type: string format: uuid requestBody: required: true content: application/merge-patch+json: schema: properties: remoteState: $ref: '#/components/schemas/remoteAssociationState' result: oneOf: - $ref: '#/components/schemas/ComponentResult' - $ref: '#/components/schemas/CourseResult' - $ref: '#/components/schemas/ProgramResult' responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/AssociationId' - $ref: '#/components/schemas/PostResponse' - properties: state: $ref: '#/components/schemas/associationState' '400': $ref: '#/components/responses/ErrorBadRequest' operationId: patchAssociationsByAssociationId x-operation-id-source: derived servers: - url: http://demo01.eduapi.nl/v5 description: SURF demo implementation /associations/external/me: post: summary: POST /associations/external/me description: 'POST a single association enroll a person based on person information obtained from .wellknown endpoint, an offering, and the organization/type=root information form the organization that is issuing this association. The offering can either be identified by an offeringId if known or the full offering details.' security: - openId: - associations:external:me.write tags: - associations requestBody: required: true content: application/json: schema: required: - remoteState allOf: - $ref: '#/components/schemas/AssociationWrite' - properties: issuer: $ref: '#/components/schemas/Organization' responses: '201': description: CREATED content: application/json: schema: allOf: - $ref: '#/components/schemas/AssociationId' - $ref: '#/components/schemas/PostResponse' - properties: state: $ref: '#/components/schemas/associationState' '400': $ref: '#/components/responses/ErrorBadRequest' operationId: postAssociationsExternalMe x-operation-id-source: derived servers: - url: http://demo01.eduapi.nl/v5 description: SURF demo implementation components: schemas: personAffiliations: type: array description: 'The affiliations of this person, the relations a person has with the organization providing this endpoint - student: student - employee: medewerker - guest: gast ' items: type: string enum: - student - employee - guest example: student CourseOfferingAssociation: allOf: - $ref: '#/components/schemas/Association' - type: object properties: result: $ref: '#/components/schemas/CourseResult' CourseId: type: object description: An object describing the metadata of a course required: - courseId properties: courseId: type: string description: Unique id of this course format: uuid example: 123e4567-e89b-12d3-a456-426614174000 readOnly: true resultValueType: type: string description: The result value type for this offering enum: - pass-or-fail - US letter - UK letter - 0-100 - 1-10 example: 1-10 EducationSpecificationProperties: type: object description: "The specification of an education object. This specification allows for other education objects to be derived from it.\nIt is used to aggregate education objects from a supplying institution.\nIt clusters programs to a main educationSpecification that is used in registries such as RIO. \n" required: - primaryCode - educationSpecificationType - name properties: primaryCode: description: "The primary human readable identifier for the entity. \nThis will often take the form of a human readable code as defined by the institution or region\n" $ref: '#/components/schemas/IdentifierEntry' otherCodes: type: array description: An array of additional human readable codes/identifiers for the entity being described. items: $ref: '#/components/schemas/IdentifierEntry' example: - codeType: crohoCreboCode code: '1234123' educationSpecificationType: $ref: '#/components/schemas/educationSpecificationType' name: type: array items: $ref: '#/components/schemas/LanguageTypedString' description: The name of this education specification example: - language: en-GB value: Bachelor Chemical technology abbreviation: type: string description: The abbreviation of this program maxLength: 256 example: B Scheikundige Technologie description: type: array items: $ref: '#/components/schemas/LanguageTypedString' description: The description of this program. [The limited implementation of Git Hub Markdown syntax](#tag/formatting-and-displaying-results-from-API) MAY be used for rich text representation. example: - language: en-GB value: program that is a place holder for all courses that are made available for student mobility formalDocument: $ref: '#/components/schemas/formalDocument' level: $ref: '#/components/schemas/level' sector: $ref: '#/components/schemas/sector' levelOfQualification: $ref: '#/components/schemas/levelOfQualification' fieldsOfStudy: type: string description: Field(s) of study (e.g. ISCED-F) (https://unesdoc.unesco.org/ark:/48223/pf0000228085.locale=en). maxLength: 4 example: '0732' studyLoad: $ref: '#/components/schemas/StudyLoadDescriptor' learningOutcomes: type: array description: Statements that describe the knowledge or skills students should acquire by the end of a particular course or program (ECTS-learningoutcome). items: type: array minItems: 1 items: $ref: '#/components/schemas/LanguageTypedString' example: - language: en-GB value: 'Executable knowledge of Chemical technology, including: Acquire knowledge of research paradigms.' link: type: string description: URL of the program's website format: uri maxLength: 2048 example: https://bijvak.nl parent: description: The educationSpecification that is the parent of this educationSpecification if it exists. [`expandable`](#tag/education_specification_model) oneOf: - $ref: '#/components/schemas/Identifier' title: educationSpecificationId - $ref: '#/components/schemas/EducationSpecification' title: EducationSpecification children: type: array description: The EducationSpecifications that have this EducationSpecification as their parent. [`expandable`](#tag/education_specification_model) items: oneOf: - $ref: '#/components/schemas/Identifier' title: educationSpecificationId - $ref: '#/components/schemas/EducationSpecification' title: EducationSpecification organization: description: 'The organization that manages this group. [`expandable`](#tag/organization_model) By default only the `organizationId` (a string) is returned. If the client requested an expansion of `organization` the full organization object should be returned. ' oneOf: - $ref: '#/components/schemas/Identifier' title: organizationId - $ref: '#/components/schemas/Organization' title: Organization object consumers: description: The additional consumer elements that can be provided, see the [documentation on support for specific consumers](https://openonderwijsapi.nl/v5/#/technical/consumers-and-profiles/) for more information about this mechanism. type: array items: $ref: '#/components/schemas/Consumer' example: - consumerKey: rio educationSpecificationSubType: variant category: - business_and_project_support - economy ext: $ref: '#/components/schemas/Ext' componentType: type: string description: 'The component type - test: tentamen - lecture: college - practical: practicum - tutorial: werkcollege - consultation: consultatie - project: project - workshop: workshop - excursion: excursie - independent study: zelfstudie - external: extern - skills training: vaardighedentraining ' enum: - test - lecture - practical - tutorial - consultation - project - workshop - excursion - independent study - external - skills training example: test LanguageTypedString: type: object description: A String with an associated language code. properties: language: description: The language used in the described entity. A string formatted according to RFC3066. type: string pattern: ^[a-z]{2,4}(-[A-Z][a-z]{3})?(-([A-Z]{2}|[0-9]{3}))?$ value: description: String to describe the entity. type: string example: language: en-GB value: program that is a place holder for all courses that are made available for student mobility level: type: string description: 'The level of this course (ECTS-year of study if applicable) - secondary vocational education: mbo - secondary vocational education 1: mbo 1, corresponds to levelOfQualification 1 - secondary vocational education 2: mbo 2, corresponds to levelOfQualification 2 - secondary vocational education 3: mbo 3, corresponds to levelOfQualification 3 - secondary vocational education 4: mbo 4, corresponds to levelOfQualification 4 - associate degree: associate degree, corresponds to levelOfQualification 5 - bachelor: bachelor, corresponds to levelOfQualification 6 - master: master, corresponds to levelOfQualification 7 - doctoral: doctoraal, corresponds to levelOfQualification 8 - undefined: onbepaald - undivided: ongedeeld - nt2-1: NT2 niveau 1 - nt2-2: NT2 niveau 2 ' enum: - secondary vocational education - secondary vocational education 1 - secondary vocational education 2 - secondary vocational education 3 - secondary vocational education 4 - associate degree - bachelor - master - doctoral - undefined - undivided - nt2-1 - nt2-2 example: master passState: type: string description: The state of this result enum: - unknown - passed - failed example: passed ProgramResult: allOf: - $ref: '#/components/schemas/Result' - type: object required: - studyLoad properties: studyLoad: $ref: '#/components/schemas/StudyLoadDescriptor' resultState: type: string description: The state of this result enum: - in progress - postponed - completed - queued example: completed academicSessionType: type: string description: 'The type of this Academic Session This is an *extensible enumeration*. - academic year: academic year - semester: semester, typically there are two semesters per academic year - trimester: trimester, typically there are three semesters per academic year - quarter: quarter, typically there are four quarters per academic year - testing period: a period in which tests take place - period: any other period in an academic year Implementations are allowed to add additional values to those above, as long as they do not overlap in definition to existing values. ' example: semester x-ooapi-extensible-enum: - academic year - semester - trimester - quarter - testing period - period gender: type: string description: The gender of this person enum: - M - F - U - X example: F Address: type: object description: The full street address required: - addressType properties: addressType: $ref: '#/components/schemas/addressType' street: type: string description: The street name example: Moreelsepark streetNumber: type: string description: The street number example: '48' additional: type: array description: Further details like building name, suite, apartment number, etc. minItems: 1 items: $ref: '#/components/schemas/LanguageTypedString' example: - language: en-GB value: On the other side of the road postalCode: type: string description: Postal code example: 3511 EP city: type: string description: name of the city / locality example: Utrecht countryCode: type: string description: the country code according to [iso-3166-1-alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) example: NL geolocation: type: object description: Geolocation of the entrance of this address (WGS84 coordinate reference system) required: - latitude - longitude properties: latitude: type: number format: double example: 52.089123 longitude: type: number format: double example: 5.113337 ext: $ref: '#/components/schemas/Ext' Offering: allOf: - $ref: '#/components/schemas/OfferingId' - $ref: '#/components/schemas/OfferingProperties' modeOfStudy: type: string description: "Indicates whether the education is full-time, part-time, dual or self-paced.\n - full-time: fulltime\n - part-time: parttime\n - dual training: duaal\n - self-paced: eigen tempo\n" enum: - full-time - part-time - dual training - self-paced AssociationId: type: object properties: associationId: type: string description: Unique id of this association format: uuid example: 123e4567-e89b-12d3-a456-426614174000 readOnly: true required: - associationId Building: type: object description: An object describing a building and the properties of a building. required: - buildingId - name - address - primaryCode properties: buildingId: type: string description: Unique id of this building format: uuid example: 123e4567-e89b-12d3-a456-331214174000 primaryCode: description: The primary human readable identifier for this building. This is often the source identifier as defined by the institution. $ref: '#/components/schemas/IdentifierEntry' example: codeType: buildingId code: '45' abbreviation: type: string description: The abbreviation of the name of this building maxLength: 256 example: Bb name: type: array description: The name of this building minItems: 1 items: $ref: '#/components/schemas/LanguageTypedString' example: - language: en-GB value: Beatrix building description: type: array description: The description of this building. minItems: 1 items: $ref: '#/components/schemas/LanguageTypedString' example: - language: en-GB value: external rooms location for exams address: $ref: '#/components/schemas/Address' otherCodes: type: array description: An array of additional human readable codes/identifiers for the entity being described. items: $ref: '#/components/schemas/IdentifierEntry' example: - codeType: bagId code: 0344100000139910 consumers: description: The additional consumer elements that can be provided, see the [documentation on support for specific consumers](https://openonderwijsapi.nl/v5/#/technical/consumers-and-profiles/) for more information about this mechanism. type: array items: $ref: '#/components/schemas/Consumer' example: - consumerKey: x-test-consumer additional: custom attributes: here ext: $ref: '#/components/schemas/Ext' Organization: type: object description: A description of a group of people working together to achieve a goal required: - organizationId - organizationType - name - shortName - primaryCode properties: organizationId: type: string description: Unique id of this organization format: uuid example: 123e4567-e89b-12d3-a456-123514174000 readOnly: true primaryCode: description: The primary human readable identifier for the organization. This is often the source identifier as defined by the institution. $ref: '#/components/schemas/IdentifierEntry' example: codeType: orgId code: Org01-Root readOnly: true organizationType: $ref: '#/components/schemas/organizationType' name: type: array description: The name of the organization minItems: 1 items: $ref: '#/components/schemas/LanguageTypedString' example: - language: nl-NL value: Coöperatie SURF U.A. shortName: type: string description: Short name of the organization maxLength: 256 example: SURF description: type: array description: Any general description of the organization should clearly mention the type of higher education organization, especially in the case of a binary system. In Dutch; universiteit (university) or hogeschool (university of applied sciences). minItems: 1 items: $ref: '#/components/schemas/LanguageTypedString' example: - language: nl-NL value: SURF is een coöperatieve vereniging van Nederlandse onderwijs- en onderzoeksinstellingen waarin de leden hun krachten bundelen. De leden zijn eigenaar van SURF. addresses: type: array description: Addresses of this organization items: $ref: '#/components/schemas/Address' link: type: string description: URL of the organization's website format: uri maxLength: 2048 example: https://surf.nl logo: type: string description: Logo of this organization format: uri maxLength: 2048 example: https://www.surf.nl/themes/surf/logo.svg otherCodes: type: array description: An array of additional human readable codes/identifiers for the entity being described. minItems: 1 items: $ref: '#/components/schemas/IdentifierEntry' example: - codeType: brin code: 00AA - codeType: kvk code: '12345678' parent: description: 'The organizational unit which is the parent of this organization. [`expandable`](#tag/organization_model) By default only the `organizationId` (a string) is returned. If the client requested an expansion of `organization` the full organization object should be returned. ' oneOf: - $ref: '#/components/schemas/Identifier' title: organizationId - $ref: '#/components/schemas/Organization' title: Organization object children: type: array description: 'All the organizational units for which this organization is the parent. [`expandable`](#tag/organization_model) By default only the `organizationId` (a string) is returned. If the client requested an expansion of `organization` the full organization object should be returned. ' items: oneOf: - $ref: '#/components/schemas/Identifier' title: organizationId - $ref: '#/components/schemas/Organization' title: Organization object consumers: description: The additional consumer elements that can be provided, see the [documentation on support for specific consumers](https://openonderwijsapi.nl/v5/#/technical/consumers-and-profiles/) for more information about this mechanism. type: array items: $ref: '#/components/schemas/Consumer' example: - consumerKey: x-test-consumer additional: custom attributes: here ext: $ref: '#/components/schemas/Ext' Identifier: type: string description: An identifier of another resource. format: uuid qualificationAwarded: type: string description: Type of qualificaton that can be obtained on finishing the program enum: - AD - BA - BSc - LLB - MA - MSc - LLM - Phd - None example: None ComponentOffering: allOf: - $ref: '#/components/schemas/Offering' - type: object required: - startDateTime - endDateTime properties: startDateTime: type: string description: The moment on which this offering starts, RFC3339 (date-time) format: date-time example: '2020-12-15' endDateTime: type: string description: The moment on which this offering ends, RFC3339 (date-time) format: date-time example: '2020-12-16' enrollStartDate: type: string description: The first day on which a student can enroll for this course. format: date enrollEndDate: type: string description: The last day on which a student can enroll for this course. format: date resultWeight: type: integer description: The result weight of this offering minimum: 0 maximum: 100 example: 100 addresses: type: array description: Addresses for this offering items: $ref: '#/components/schemas/Address' priceInformation: type: array description: Price information for this offering. items: $ref: '#/components/schemas/Cost' room: $ref: '#/components/schemas/Room' component: description: 'The component that is offered in this componentoffering. [`expandable`](#tag/component_model) By default only the `componentId` (a string) is returned. If the client requested an expansion of `component` the full component object should be returned. ' oneOf: - $ref: '#/components/schemas/Identifier' title: componentId - $ref: '#/components/schemas/Component' title: Component object courseOffering: description: 'The courseoffering where this componentoffering is related to. [`expandable`](#tag/course_offering_model) By default only the `courseOfferingId` (a string) is returned. If the client requested an expansion of `courseOffering` the full courseOffering object should be returned. ' oneOf: - $ref: '#/components/schemas/Identifier' title: courseOfferingId - $ref: '#/components/schemas/CourseOffering' title: CourseOffering object organization: description: 'The organization that manages this componentoffering. [`expandable`](#tag/organization_model) By default only the `organizationId` (a string) is returned. If the client requested an expansion of `organization` the full organization object should be returned. ' oneOf: - $ref: '#/components/schemas/Identifier' title: organizationId - $ref: '#/components/schemas/Organization' title: Organization object Consumer: type: object description: Object for communicating data to a specific consumer (destination). This object has no relationship with the `consumer` query parameter. required: - consumerKey properties: consumerKey: description: The key of the consumer (destination) for which this information is intended. See the [consumer registry](https://openonderwijsapi.nl/v5/#/technical/consumers-and-profiles/) for more information. type: string additionalProperties: true OfferingId: type: object description: ID of Either a program, course or component offering which descrbes the program, course or offering in time required: - offeringId properties: offeringId: type: string description: Unique id of this offering format: uuid example: 123e4567-e89b-12d3-a456-134564174000 readOnly: true costType: type: string description: "The type of the cost. This is an *extensible enumeration*.\n\nThe following values have been defined in the specification:\n - `STAP eligible`: the costs that a student can get STAP subsidy for\n - `total costs`: the total costs that a student is to pay to follow this offering\n\nImplementations are allowed to add additional values to those above, as long as they do not overlap in definition to existing values.\n" example: total costs x-ooapi-extensible-enum: - STAP eligible - total costs associationState: type: string description: The state of this association enum: - pending - canceled - denied - associated - queued example: associated AssociationWrite: oneOf: - $ref: '#/components/schemas/ProgramOfferingAssociation' - $ref: '#/components/schemas/CourseOfferingAssociation' - $ref: '#/components/schemas/ComponentOfferingAssociation' properties: offering: description: The offering this association is for oneOf: - $ref: '#/components/schemas/ComponentOffering' title: ComponentOffering - $ref: '#/components/schemas/CourseOffering' title: CourseOffering - $ref: '#/components/schemas/ProgramOffering' title: ProgramOffering addressType: type: string description: 'Address type - postal: post - visit: bezoek - deliveries: bezorg - billing: factuur - teaching: the address where education takes place ' enum: - postal - visit - deliveries - billing - teaching ComponentOfferingAssociation: allOf: - $ref: '#/components/schemas/Association' - type: object properties: result: $ref: '#/components/schemas/ComponentResult' Room: type: object description: An area within a building where education can take place required: - roomId - roomType - name - primaryCode properties: roomId: type: string description: Unique id for this room format: uuid example: 123e4567-e89b-12d3-a456-332114174000 primaryCode: description: The primary human readable identifier for the room. This is often the source identifier as defined by the institution. $ref: '#/components/schemas/IdentifierEntry' example: codeType: roomCode code: Bb4.54 roomType: $ref: '#/components/schemas/roomType' abbreviation: type: string description: The abbreviation of the name of this room maxLength: 256 example: Bb4.54 name: type: array description: The name of this room minItems: 1 items: $ref: '#/components/schemas/LanguageTypedString' example: - language: en-GB value: Beatrix building room 4.54 description: type: array description: The description of this room. [The limited implementation of Git Hub Markdown syntax](#tag/formatting-and-displaying-results-from-API) MAY be used for rich text representation. minItems: 1 items: $ref: '#/components/schemas/LanguageTypedString' example: - language: en-GB value: External education and exam room 4.54 totalSeats: type: integer format: int32 description: The total number of seats located in the room example: 300 availableSeats: type: integer format: int32 description: The total number of available (=non-reserved) seats in the room example: 200 floor: type: string description: The floor on which this room is located example: '4' wing: type: string description: The wing in which this room is located example: None geolocation: type: object description: Geolocation of the entrance of this room (WGS84 coordinate reference system) required: - latitude - longitude properties: latitude: type: number format: double example: 52.088255 longitude: type: number format: double example: 5.106669 otherCodes: type: array description: An array of additional human readable codes/identifiers for the entity being described. items: $ref: '#/components/schemas/IdentifierEntry' building: description: 'The building in which the room is located. [`expandable`](#tag/building_model) By default only the `buildingId` (a string) is returned. If the client requested an expansion of `building` the full building object should be returned. ' oneOf: - $ref: '#/components/schemas/Identifier' title: buildingId - $ref: '#/components/schemas/Building' title: Building object consumers: description: The additional consumer elements that can be provided, see the [documentation on support for specific consumers](https://openonderwijsapi.nl/v5/#/technical/consumers-and-profiles/) for more information about this mechanism. type: array items: $ref: '#/components/schemas/Consumer' example: - consumerKey: x-test-consumer additional: custom attributes: here ext: $ref: '#/components/schemas/Ext' ProgramOffering: allOf: - $ref: '#/components/schemas/Offering' - type: object required: - startDate - endDate properties: startDate: type: string description: The moment on which this offering starts, RFC3339 (full-date) format: date example: '2019-08-21' endDate: type: string description: The moment on which this offering ends, RFC3339 (full-date) format: date example: '2023-06-15' enrollStartDate: type: string description: The first day on which a student can enroll for this program. format: date example: '2019-05-01' enrollEndDate: type: string description: The last day on which a student can enroll for this program. format: date example: '2019-08-01' flexibleEntryPeriodStart: type: string description: If this is a program wherein participants can start at various moments, without missing anything, use this attribute in combination with `flexibleEntryPeriodEnd`. format: date flexibleEntryPeriodEnd: type: string description: If this is a program wherein participants can start at various moments, without missing anything, use this attribute in combination with `flexibleEntryPeriodStart`. format: date addresses: type: array description: Addresses for this offering items: $ref: '#/components/schemas/Address' priceInformation: type: array description: Price information for this offering. items: $ref: '#/components/schemas/Cost' minItems: 1 program: description: 'The Program that is offered in this programoffering. [`expandable`](#tag/program_model) By default only the `programId` (a string) is returned. If the client requested an expansion of `program` the full program object should be returned. ' oneOf: - $ref: '#/components/schemas/Identifier' title: programId - $ref: '#/components/schemas/Program' title: Program object organization: description: 'The organization that manages this programeoffering. [`expandable`](#tag/organization_model) By default only the `organizationId` (a string) is returned. If the client requested an expansion of `organization` the full organization object should be returned. ' oneOf: - $ref: '#/components/schemas/Identifier' title: organizationId - $ref: '#/components/schemas/Organization' title: Organization object AssociationFull: oneOf: - $ref: '#/components/schemas/ProgramOfferingAssociation' - $ref: '#/components/schemas/CourseOfferingAssociation' - $ref: '#/components/schemas/ComponentOfferingAssociation' properties: person: readOnly: true oneOf: - $ref: '#/components/schemas/Identifier' title: personId - $ref: '#/components/schemas/Person' title: Person offering: oneOf: - $ref: '#/components/schemas/Identifier' title: offeringId - $ref: '#/components/schemas/ComponentOffering' title: ComponentOffering - $ref: '#/components/schemas/CourseOffering' title: CourseOffering - $ref: '#/components/schemas/ProgramOffering' title: ProgramOffering PostResponse: type: object description: A system message as a response to a POST message required: - message properties: message: description: information displayed to user type: array minItems: 1 items: $ref: '#/components/schemas/LanguageTypedString' example: - language: en-GB value: Your enrollment was partly succesful, you have been placed on the waitinglist redirect: description: URL where additional information can be found e.g. by use of deeplink type: string format: uri Program: allOf: - $ref: '#/components/schemas/ProgramId' - $ref: '#/components/schemas/ProgramProperties' - properties: validFrom: description: The first day this program is valid (inclusive). type: string format: date validTo: description: The day this program ceases to be valid (e.g. exclusive). type: string format: date CourseOffering: allOf: - $ref: '#/components/schemas/Offering' - type: object required: - startDate - endDate properties: startDate: type: string description: The moment on which this offering starts, RFC3339 (full-date) format: date example: '2019-08-21' endDate: type: string description: The moment on which this offering ends, RFC3339 (full-date) format: date example: '2019-10-23' enrollStartDate: type: string description: The first day on which a student can enroll for this course. format: date example: '2019-05-01' enrollEndDate: type: string description: The last day on which a student can enroll for this course. format: date example: '2019-08-01' flexibleEntryPeriodStart: type: string description: If this is a course wherein participants can start at various moments, without missing anything, use this attribute in combination with `flexibleEntryPeriodEnd`. format: date flexibleEntryPeriodEnd: type: string description: If this is a course wherein participants can start at various moments, without missing anything, use this attribute in combination with `flexibleEntryPeriodStart`. format: date addresses: type: array description: Addresses for this offering items: $ref: '#/components/schemas/Address' priceInformation: type: array description: Price information for this offering. items: $ref: '#/components/schemas/Cost' course: description: 'The course that is offered in this courseoffering. [`expandable`](#tag/course_model) By default only the `courseId` (a string) is returned. If the client requested an expansion of `course` the full course object should be returned. ' oneOf: - $ref: '#/components/schemas/Identifier' title: courseId - $ref: '#/components/schemas/Course' title: Course object programOffering: description: 'The programoffering where this courseoffering is related to. [`expandable`](#tag/program_offering_model) By default only the `programOfferingId` (a string) is returned. If the client requested an expansion of `programOffering` the full programOffering object should be returned. ' oneOf: - $ref: '#/components/schemas/Identifier' title: programOfferingId - $ref: '#/components/schemas/ProgramOffering' title: ProgramOffering object organization: description: 'The organization that manages this courseoffering. [`expandable`](#tag/organization_model) By default only the `organizationId` (a string) is returned. If the client requested an expansion of `organization` the full organization object should be returned. ' oneOf: - $ref: '#/components/schemas/Identifier' title: organizationId - $ref: '#/components/schemas/Organization' title: Organization object IdentifierEntry: type: object properties: codeType: $ref: '#/components/schemas/codeType' code: description: Human readable value for the code/identifier type: string required: - codeType - code additionalProperties: false example: codeType: identifier code: 1234qwe12 sector: type: string description: 'The sector for this program - secondary vocational education: middelbaar beroepsonderwijs - higher professional education: hoger beroepsonderwijs - university education: universitair onderwijs ' enum: - secondary vocational education - higher professional education - university education example: university education ComponentResult: allOf: - $ref: '#/components/schemas/Result' - type: object required: - weight properties: weight: type: integer description: The weight to 100 as total for this offering in the course format: int32 minimum: 0 maximum: 100 example: 100 Association: allOf: - $ref: '#/components/schemas/AssociationId' - $ref: '#/components/schemas/AssociationProperties' Problem: type: object description: A system message including the error code and an explanation required: - status - title properties: status: type: string description: The HTTP status code example: '404' title: type: string description: A short, human-readable summary of the problem type example: Resource not found detail: type: string description: A human-readable explanation specific to this occurrence of the problem AcademicSession: type: object description: 'A named period of time that can be used to communicate the various schedules and time periods an institution recognizes and uses to organize their education. AcademicSessions can be nested. Offerings MAY be be linked to a specific AcademicSession to indicate that the specified Offering takes place during the AcademicSession, however this is not mandatory. ' required: - academicSessionId - name - startDate - endDate properties: academicSessionId: type: string description: Unique id for this academic session format: uuid example: 123e4567-e89b-12d3-a456-426614174000 readOnly: true academicSessionType: $ref: '#/components/schemas/academicSessionType' primaryCode: description: The primary human readable identifier for this academic session. This is often the source identifier as defined by the institution. $ref: '#/components/schemas/IdentifierEntry' example: codeType: identifier code: 2012-Q1 name: type: array description: The name of this academic session minItems: 1 items: $ref: '#/components/schemas/LanguageTypedString' example: - language: en-GB value: Fall semester 2020 startDate: type: string description: The day on which this academic session starts, RFC3339 (full-date) format: date example: '2020-08-17' endDate: type: string description: The day on which this academic session ends, RFC3339 (full-date) format: date example: '2020-12-18' parent: description: The parent Academicsession of this session (e.g. fall semester 20xx where the current session is a week 40). This object is [`expandable`](#tag/academic_sessions_model) oneOf: - $ref: '#/components/schemas/Identifier' title: academicSessionId - $ref: '#/components/schemas/AcademicSession' title: Expanded AcademicSession children: type: array description: The list of Academicsession children of this Session (e.g. all academic sessions in fall semester 20xx). This object is [`expandable`](#tag/academic_sessions_model) items: oneOf: - $ref: '#/components/schemas/Identifier' title: academicSessionId - $ref: '#/components/schemas/AcademicSession' title: Expanded AcademicSession year: description: The top level year of this session (e.g. 20xx where the current session is a week 40 of a semester). This object is [`expandable`](#tag/academic_sessions_model) oneOf: - $ref: '#/components/schemas/Identifier' title: academicSessionId - $ref: '#/components/schemas/AcademicSession' title: Expanded AcademicSession otherCodes: type: array description: An array of additional human readable codes/identifiers for the entity being described. items: $ref: '#/components/schemas/IdentifierEntry' consumers: description: The additional consumer elements that can be provided, see the [documentation on support for specific consumers](https://openonderwijsapi.nl/v5/#/technical/consumers-and-profiles/) for more information about this mechanism. type: array items: $ref: '#/components/schemas/Consumer' example: - consumerKey: x-test-consumer additional: custom attributes: here ext: $ref: '#/components/schemas/Ext' EducationSpecification: allOf: - $ref: '#/components/schemas/EducationSpecificationId' - $ref: '#/components/schemas/EducationSpecificationProperties' - properties: validFrom: description: The first day this EducationSpecification is valid (inclusive). type: string format: date validTo: description: The day this EducationSpecification ceases to be valid (e.g. exclusive). type: string format: date ProgramId: type: object description: A collection of courses that lead to a certifiable learning outcome required: - programId properties: programId: type: string description: Unique id for this program format: uuid example: 123e4567-e89b-12d3-a456-426614174000 readOnly: true Ext: type: object description: Object for additional non-standard attributes levelOfQualification: type: string description: Level of qualification according to the Dutch National Qualification Framework and the European Qualifications Framework, see [this overview](https://nlqf.nl/images/downloads/English2018/Schematic_overview_NLQF_2020.pdf) for more information. enum: - '1' - '2' - '3' - '4' - 4+ - '5' - '6' - '7' - '8' example: '6' formalDocument: type: string description: "The type of formal document obtained after completion of this education\n - diploma: DIPLOMA\n - certificate: CERTIFICAAT\n - no official document: GEEN OFFICIEEL DOCUMENT\n - testimonial: GETUIGSCHRIFT\n - school advice: SCHOOLADVIES\n" enum: - diploma - certificate - no official document - testimonial - school advice example: diploma PersonProperties: type: object description: A person that has a relationship with this institution required: - givenName - surname - displayName - affiliations - mail - primaryCode - activeEnrollment properties: primaryCode: description: The primary human readable identifier for the person. This is often the source identifier as defined by the institution. $ref: '#/components/schemas/IdentifierEntry' example: codeType: studentNumber code: 0 readOnly: true givenName: type: string description: The first name of this person maxLength: 256 example: Maartje surnamePrefix: type: string description: The prefix of the family name of this person example: van surname: type: string description: The family name of this person maxLength: 256 example: Damme displayName: type: string description: The name of this person which will be displayed maxLength: 256 example: Maartje van Damme initials: type: string description: The initials of this person example: MCW activeEnrollment: type: boolean description: Whether this person has an active enrollment. example: false dateOfBirth: type: string description: The date of birth of this person, RFC3339 (full-date) format: date example: '2003-09-30' cityOfBirth: type: string description: The city of birth of this person example: Utrecht countryOfBirth: type: string description: The country of birth of this person the country code according to [iso-3166-1-alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) example: NL nationality: type: string description: The nationality of this person the nationality according to https://gist.github.com/zspine/2365808 example: Dutch dateOfNationality: type: string description: The date of nationality of this person, RFC3339 (full-date) format: date example: '2003-09-30' affiliations: $ref: '#/components/schemas/personAffiliations' mail: type: string description: The primary e-mailaddress of this person format: email maxLength: 256 example: vandamme.mcw@universiteitvanharderwijk.nl secondaryMail: type: string description: The secondary e-mailaddress of this person format: email maxLength: 256 example: poekie@xyz.nl telephoneNumber: type: string description: The telephone number of this person maxLength: 256 example: +31 123 456 789 mobileNumber: type: string description: The mobile number of this person maxLength: 256 example: +31 612 345 678 photoSocial: type: string description: The url of the informal picture of this person format: uri maxLength: 2048 example: https://upload.wikimedia.org/wikipedia/commons/thumb/d/d5/Placeholder_female_superhero_c.png/203px-Placeholder_female_superhero_c.png photoOfficial: type: string description: The url of the official picture of this person format: uri maxLength: 2048 example: https://upload.wikimedia.org/wikipedia/commons/6/66/Johannes_Vermeer_%281632-1675%29_-_The_Girl_With_The_Pearl_Earring_%281665%29.jpg gender: $ref: '#/components/schemas/gender' titlePrefix: type: string description: A title prefix to be used for this person example: drs titleSuffix: type: string description: A title suffix to be used for this person example: BSc office: type: string description: The name of the office where this person is located address: $ref: '#/components/schemas/Address' ICEName: type: string description: Full name of In Case of Emergency contact maxLength: 256 example: Janne ICEPhoneNumber: type: string description: Phone number of In Case of Emergency contact maxLength: 256 example: +31 623 456 789 ICERelation: $ref: '#/components/schemas/ICERelationType' languageOfChoice: type: array description: The language(s) of choice for this person, RFC3066 items: type: string example: nl-NL otherCodes: type: array description: An array of additional human readable codes/identifiers for the entity being described. items: $ref: '#/components/schemas/IdentifierEntry' example: - codeType: nationalIdentityNumber code: '00000' consumers: description: The additional consumer elements that can be provided, see the [documentation on support for specific consumers](https://openonderwijsapi.nl/v5/#/technical/consumers-and-profiles/) for more information about this mechanism. type: array items: $ref: '#/components/schemas/Consumer' example: - consumerKey: x-test-consumer additional: custom attributes: here ext: $ref: '#/components/schemas/Ext' Result: type: object description: A result as part of an association required: - state - resultDate properties: state: $ref: '#/components/schemas/resultState' pass: $ref: '#/components/schemas/passState' comment: type: string description: The comment on this result score: type: string description: The score of this program/course/component association (based on resultValueType in offering) example: '9' resultDate: type: string description: The date this result has been published, RFC3339 (full-date) format: date example: '2020-09-28' ext: $ref: '#/components/schemas/Ext' ICERelationType: type: string description: Type of relation between person and In Case of Emergency contact enum: - partner - parent - other example: partner EducationSpecificationId: type: object properties: educationSpecificationId: type: string description: Unique id for this education specification format: uuid example: 123e4567-e89b-12d3-a456-426614174000 required: - educationSpecificationId ProgramOfferingAssociation: allOf: - $ref: '#/components/schemas/Association' - type: object properties: result: $ref: '#/components/schemas/ProgramResult' educationSpecificationType: type: string description: "The type of education specification\n - program: HOOPLEIDING\n - privateProgram: PARTICULIEREOPLEIDING\n - programCluster: HOONDERWIJSEENHEDENCLUSTER\n - course: HOONDERWIJSEENHEID\n" enum: - program - privateProgram - cluster - course example: program associationRole: type: string description: "The role of this person associated with the offering\n - student: student\n - lecturer: docent\n - teaching assistant: studentassistent\n - coordinator: coördinator\n - guest: gast\n" enum: - student - lecturer - teaching assistant - coordinator - guest example: student roomType: type: string description: 'The type of this room - general purpose: algemeen - lecture room: collegezaal - computer room: computerruimte - laboratory: laboratorium - office: kantoor - workspace: werkruimte - exam location: tentamenruimte - study room: studieruimte - examination room: onderzoekskamer - conference room: vergaderkamer ' enum: - general purpose - lecture room - computer room - laboratory - office - workspace - exam location - study room - examination room - conference room example: exam location StudyLoadDescriptor: type: object description: The amount of effort to complete this education in the specified unit. properties: studyLoadUnit: description: "The unit in which the studyload is specfied\n- contacttime: CONTACTUUR\tamount of time spent in classes\n- ects: ECTS_PUNT\tEuropean Credit Transfer System\n- sbu: SBU\tstudentloadhours\n- sp: STUDIEPUNT studentpoints\n- hour: UUR\thours\n" type: string enum: - contacttime - ects - sbu - sp - hour example: ects value: description: The amount of load depicted in numbers type: number example: 3 example: studyLoadUnit: ects value: 3 Course: allOf: - $ref: '#/components/schemas/CourseId' - $ref: '#/components/schemas/CourseProperties' - properties: validFrom: description: The first day this course is valid (inclusive). type: string format: date validTo: description: The day this course ceases to be valid (e.g. exclusive). type: string format: date Person: allOf: - $ref: '#/components/schemas/PersonId' - $ref: '#/components/schemas/PersonProperties' programType: type: string description: 'The type of this program - program: opleiding - minor: minor - honours: honours - specialization: specialisatie - track: track ' enum: - program - minor - honours - specialization - track example: program codeType: type: string description: "The code/identifier type. \n\nThis is an *extensible enumeration*. Use `x-` to prefix custom values\n\nThe predefined values are:\n - `brin`: The registration number for a Dutch educational institution that is issued by the Dutch Ministry of Education, Culture and Science\n - `crohoCreboCode`: programs with a CREBO and CROHO number are accredited by the Dutch Ministry of Education, Culture and Science (OCW)\n - `programCode`: Identifier for the program (collection of courses)\n - `componentCode`: The code for a component (part of a course)\n - `offeringCode`: The code to identify a specific offering (program, course or component offering)\n - `organizationId`: The identifier for the organization\n - `buildingId`: The number or code to identify a building\n - `bagId`: The identification of a building as it is known in the Dutch Building Administration (BAG)\n - `roomCode`: The code for a room\n - `systemId`: Identifier assigned to an entity in context of a specific system\n - `productId`: Identifier assigned to a specific product\n - `nationalIdentityNumber`: Identifier assigned by the governement of the person. e.g. a social security number in the USA\n - `studentNumber`: Identifier for the student\n - `studielinkNumber`: Identifier for the person as determined by Studielink\n - `esi`: European Student Identifier\n - `userName`: The name of a user\n - `accountId`: Identifier assigned to a specific account\n - `emailAdress`: An email address\n - `groupCode`: The identifier for a group (of persons)\n - `isbn`: International Standard Book Number that serve as product identifiers for Books\n - `issn`: International Standard Book Number that serve as product identifiers for periodicals\n - `orcId`: Open Researcher and Contributor ID\n - `uuid`: A universally unique identifier\n - `schacHome`: Home organization using the domain name of the organization\n - `identifier`: Generic Identifier\n" x-ooapi-extensible-enum: - brin - crohoCreboCode - programCode - componentCode - offeringCode - organizationId - buildingId - bagId - roomCode - systemId - productId - nationalIdentityNumber - studentNumber - studielinkNumber - esi - userName - accountId - emailAdress - groupCode - isbn - issn - orcId - uuid - schacHome - identifier example: identifier modesOfDelivery: type: array description: 'The mode of delivery of the component (ECTS-mode of delivery) - distance-learning: afstandsleren - on campus: op de campus - online: online - hybrid: hybride - situated: op locatie ' items: type: string enum: - distance-learning - on campus - online - hybrid - situated example: situated organizationType: type: string description: 'The type of this organization. Each OOAPI endpoint should have a single organization with type `root`, describing the root organization. - root: the root of this organization, representing the Educational Institution itself - institute: instituut - department: departement - faculty: faculteit - branch: vestiging - academy: academie - school: school ' enum: - root - institute - department - faculty - branch - academy - school example: root CourseResult: allOf: - $ref: '#/components/schemas/Result' - type: object required: - studyLoad properties: studyLoad: $ref: '#/components/schemas/StudyLoadDescriptor' Cost: type: object required: - costType properties: costType: $ref: '#/components/schemas/costType' amount: type: string pattern: ^\d+(?:\.\d+)?$ description: The total amount of the cost as a string. Use a '.' (dot) as an optional separator. The numbers before the separator signify the major units of the currency, after the dot the minor units. Only a single separator is allowed. Do not use a comma. example: '340.84' vatAmount: type: string pattern: ^\d+(?:\.\d+)?$ description: The part of the cost that is VAT, as a string. Use a '.' (dot) as an optional separator. The numbers before the separator signify the major units of the currency, after the dot the minor units. Only a single separator is allowed. Do not use a comma. example: '40' amountWithoutVat: type: string pattern: ^\d+(?:\.\d+)?$ description: The part of the cost that is non-VAT. as a string. Use a '.' (dot) as an optional separator. The numbers before the separator signify the major units of the currency, after the dot the minor units. Only a single separator is allowed. Do not use a comma. example: '300.84' currency: type: string description: The currency this cost is in. Should correspond to one of the currency codes from ISO 4217. example: EUR displayAmount: type: array items: $ref: '#/components/schemas/LanguageTypedString' description: An array of optional pre-formatted strings in different locales. Clients can choose to use this string instead of rendering their own based on the current locale of the user. example: - language: nl-NL value: €380,84 - language: en-US value: $401.17 ext: $ref: '#/components/schemas/Ext' additionalProperties: false ProgramProperties: type: object description: A collection of courses that lead to a certifiable learning outcome required: - programType - name - abbreviation - description - primaryCode - teachingLanguage properties: primaryCode: description: The primary human readable identifier for the program. This is often the source identifier as defined by the institution. $ref: '#/components/schemas/IdentifierEntry' example: codeType: programCode code: BIO readOnly: true programType: $ref: '#/components/schemas/programType' name: description: The name of this program type: array minItems: 1 items: $ref: '#/components/schemas/LanguageTypedString' example: - language: en-GB value: Biology abbreviation: type: string description: The abbreviation of this program maxLength: 256 example: BIO description: type: array description: The description of this program minItems: 1 items: $ref: '#/components/schemas/LanguageTypedString' example: - language: en-GB value: The study of life teachingLanguage: type: string description: The (primary) teaching language in which this program is given, should be a three-letter language code as specified by ISO 639-2. minLength: 3 maxLength: 3 pattern: ^[a-z]{3}$ example: nld studyLoad: $ref: '#/components/schemas/StudyLoadDescriptor' qualificationAwarded: $ref: '#/components/schemas/qualificationAwarded' modeOfStudy: $ref: '#/components/schemas/modeOfStudy' modeOfDelivery: $ref: '#/components/schemas/modesOfDelivery' duration: type: string description: The duration of this program. The duration format is from the ISO 8601 ABNF as given in Appendix A of RFC 3339. pattern: ^(-?)P(?=\d|T\d)(?:(\d+)Y)?(?:(\d+)M)?(?:(\d+)([DW]))?(?:T(?:(\d+)H)?(?:(\d+)M)?(?:(\d+(?:\.\d+)?)S)?)?$ example: P1DT30H4S firstStartDate: type: string description: The date when participants can follow this program for the first time. format: date levelOfQualification: $ref: '#/components/schemas/levelOfQualification' level: $ref: '#/components/schemas/level' sector: $ref: '#/components/schemas/sector' fieldsOfStudy: type: string description: Field(s) of study (e.g. ISCED-F) (https://unesdoc.unesco.org/ark:/48223/pf0000228085.locale=en). maxLength: 4 example: '0732' enrollment: type: array items: $ref: '#/components/schemas/LanguageTypedString' description: The extra information that is provided for enrollment example: - language: en-GB value: enrollment through SIS. [The limited implementation of Git Hub Markdown syntax](#tag/formatting-and-displaying-results-from-API) MAY be used for rich text representation. resources: type: array description: An overview of the literature and other resources that is used in this course (ECTS-recommended reading and other sources) items: type: string example: - book to be announced - on-line resource x learningOutcomes: type: array description: List of learning outcomes at program level. It is advisable to limit the number of learning outcomes to approximately 20. It is also advisable to make sure that the program learning outcomes in the course catalogue correspond with those on the Diploma Supplement. items: type: array minItems: 1 items: $ref: '#/components/schemas/LanguageTypedString' example: - language: en-GB value: 'Executable knowledge of research methods, including: Acquire knowledge of HCI research paradigms.' assessment: type: array description: A description of the way exams for this course are taken (ECTS-assessment method and criteria). minItems: 1 items: $ref: '#/components/schemas/LanguageTypedString' example: - language: en-GB value: Exam on campus admissionRequirements: type: array description: This information may be given at an institutional level and/or at the level of individual programmes. Make sure that it is clear whether the information applies to fee-paying students (national and/or international) or to exchange students. example: - language: en-GB value: Students need to be enrolled at qualifying institutions of higher education that participate in this alliance minItems: 1 items: $ref: '#/components/schemas/LanguageTypedString' qualificationRequirements: type: array description: Normally, students will receive a diploma when they have completed the (official) study program and have obtained the required number of credits. If there are any other specific requirements that students need to have fulfilled, mention them here. minItems: 1 items: $ref: '#/components/schemas/LanguageTypedString' link: type: string description: URL of the program's website format: uri maxLength: 2048 example: https://bijvak.nl educationSpecification: description: The educationSpecification of which this program is a more concrete implementation. [`expandable`](#tag/education_specification_model) oneOf: - $ref: '#/components/schemas/Identifier' title: educationSpecificationId - $ref: '#/components/schemas/EducationSpecification' title: EducationSpecification otherCodes: type: array description: An array of additional human readable codes/identifiers for the entity being described. items: $ref: '#/components/schemas/IdentifierEntry' example: - codeType: crohoCreboCode code: '59312' addresses: type: array description: Addresses for this program items: $ref: '#/components/schemas/Address' parent: description: Parent program of which the current program is a child. This object is [`expandable`](#tag/program_model) oneOf: - $ref: '#/components/schemas/Identifier' title: programId - $ref: '#/components/schemas/Program' title: Expanded Program children: type: array description: Programs which are a part of this program (e.g specializations). This object is [`expandable`](#tag/program_model) items: oneOf: - $ref: '#/components/schemas/Identifier' title: programId - $ref: '#/components/schemas/Program' title: Expanded Program coordinators: description: The person(s) responsible for this program. This object is [`expandable`](#tag/person_model) type: array items: oneOf: - $ref: '#/components/schemas/Identifier' title: personId - $ref: '#/components/schemas/Person' title: Person object organization: description: 'The organization providing this program. [`expandable`](#tag/organization_model) By default only the `organizationId` (a string) is returned. If the client requested an expansion of `organization` the full organization object should be returned. ' oneOf: - $ref: '#/components/schemas/Identifier' title: organizationId - $ref: '#/components/schemas/Organization' title: Organization object consumers: description: The additional consumer elements that can be provided, see the [documentation on support for specific consumers](https://openonderwijsapi.nl/v5/#/technical/consumers-and-profiles/) for more information about this mechanism. type: array items: $ref: '#/components/schemas/Consumer' example: - consumerKey: rio educationOffererCode: 122A112 educationLocationCode: 123X122 jointPartnerCodes: - 122A113 foreignPartners: - Harvard University deficiency: deficiencies requirementsActivities: requirements propaedeuticPhase: no_propaedeutic_phase studyChoiceCheck: no_study_choice_check acceleratedRoute: accelerated_route lastStartDate: 01-09-2025 teachingLanguages: - nld - eng ext: $ref: '#/components/schemas/Ext' PersonId: type: object properties: personId: type: string description: Unique id of this person format: uuid example: 123e4567-e89b-12d3-a456-426614174000 required: - personId Component: type: object description: A component is a part of a course required: - componentId - componentType - name - teachingLanguage - abbreviation - primaryCode properties: componentId: type: string description: Unique id of this component format: uuid example: 123e4567-e89b-12d3-a456-426614174000 readOnly: true primaryCode: description: The primary human readable identifier for this component. This is often the source identifier as defined by the institution. $ref: '#/components/schemas/IdentifierEntry' example: codeType: componentCode code: INFOMQNM-WRKCLG-1 readOnly: true componentType: $ref: '#/components/schemas/componentType' name: type: array description: The name of this component minItems: 1 items: $ref: '#/components/schemas/LanguageTypedString' example: - language: en-GB value: Written test for INFOMQNM abbreviation: type: string description: The abbreviation of this component maxLength: 256 example: Test-INFOMQNM modeOfDelivery: $ref: '#/components/schemas/modesOfDelivery' duration: type: string description: The duration of this component. The duration format is from the ISO 8601 ABNF as given in Appendix A of RFC 3339. pattern: ^(-?)P(?=\d|T\d)(?:(\d+)Y)?(?:(\d+)M)?(?:(\d+)([DW]))?(?:T(?:(\d+)H)?(?:(\d+)M)?(?:(\d+(?:\.\d+)?)S)?)?$ example: P1DT30H4S description: type: array description: The description of this component. minItems: 1 items: $ref: '#/components/schemas/LanguageTypedString' example: - language: en-GB value: '''Prove executable knowledge of research methods, including: Acquire knowledge of HCI research paradigms Able to design suitable research studies (e.g., choose between within and between subject designs) Define/apply/design metrics and scales Define/produce materials (e.g., stimuli and questionnaires) Define protocols for research studies Understands and take in account concepts of reliability and validity Analyze and improve methods and analysis of published scientific articles Able to deliver scientific reports Prove executable knowledge of ­­­statistics, including: Handle hypothesis testing with complex designs (e.g., including , dependent, independent, and co variates) Data preparation (e.g., coding and feature selection) Reason towards adequate techniques to ensure valid outcomes (e.g., be aware of type I, type II errors) Select an appropriate sampling method (e.g., stratified) Perform parametric tests (e.g., repeated measures (M)ANOVA) Perform non-parametric tests (e.g., Chi-square, Mann-Whitney, and Kruskal-Wallis)'' ' teachingLanguage: type: string description: The (primary) teaching language in which this component is given, should be a three-letter language code as specified by ISO 639-2. minLength: 3 maxLength: 3 pattern: ^[a-z]{3}$ example: nld learningOutcomes: type: array description: Statements that describe the knowledge or skills students should acquire by the end of a particular course (ECTS-learningoutcome). items: type: array minItems: 1 items: $ref: '#/components/schemas/LanguageTypedString' example: - language: en-GB value: 'Executable knowledge of research methods, including: Acquire knowledge of HCI research paradigms.' enrollment: type: array items: $ref: '#/components/schemas/LanguageTypedString' description: The extra information that is provided for enrollment example: - language: en-GB value: enrollment through SIS. [The limited implementation of Git Hub Markdown syntax](#tag/formatting-and-displaying-results-from-API) MAY be used for rich text representation. resources: type: array description: An overview of the literature and other resources that is used in this course (ECTS-recommended reading and other sources) items: type: string example: - book to be announced - on-line resource x assessment: type: array description: A description of the way exams for this course are taken (ECTS-assessment method and criteria). minItems: 1 items: $ref: '#/components/schemas/LanguageTypedString' example: - language: en-GB value: Exam on campus addresses: type: array description: Addresses for this component items: $ref: '#/components/schemas/Address' otherCodes: type: array description: An array of additional human readable codes/identifiers for the entity being described. items: $ref: '#/components/schemas/IdentifierEntry' course: description: 'The course of which this component is a part. [`expandable`](#tag/course_model) By default only the `courseId` (a string) is returned. If the client requested an expansion of `course` the full course object should be returned. ' oneOf: - $ref: '#/components/schemas/Identifier' title: courseId - $ref: '#/components/schemas/Course' title: Course object organization: description: 'The organization which provides this component. [`expandable`](#tag/organization_model) By default only the `organizationId` (a string) is returned. If the client requested an expansion of `organization` the full organization object should be returned. ' oneOf: - $ref: '#/components/schemas/Identifier' title: organizationId - $ref: '#/components/schemas/Organization' title: Organization object consumers: description: The additional consumer elements that can be provided, see the [documentation on support for specific consumers](https://openonderwijsapi.nl/v5/#/technical/consumers-and-profiles/) for more information about this mechanism. type: array items: $ref: '#/components/schemas/Consumer' example: - consumerKey: x-test-consumer additional: custom attributes: here ext: $ref: '#/components/schemas/Ext' AssociationProperties: type: object description: A relationship between a person object and an offering required: - associationType - role - state properties: associationType: type: string description: The type of this association enum: - programOfferingAssociation - courseOfferingAssociation - componentOfferingAssociation example: componentOfferingAssociation readOnly: true role: $ref: '#/components/schemas/associationRole' state: $ref: '#/components/schemas/associationState' readOnly: true remoteState: $ref: '#/components/schemas/remoteAssociationState' writeOnly: true consumers: description: The additional consumer elements that can be provided, see the [documentation on support for specific consumers](https://openonderwijsapi.nl/v5/#/technical/consumers-and-profiles/) for more information about this mechanism. type: array items: $ref: '#/components/schemas/Consumer' example: - consumerKey: x-test-consumer additional: custom attributes: here ext: $ref: '#/components/schemas/Ext' remoteAssociationState: type: string description: The state of this association for the institution performing the request. enum: - pending - canceled - denied - associated - queued example: associated CourseProperties: type: object description: An object describing the metadata of a course required: - name - abbreviation - description - teachingLanguage - level - primaryCode properties: primaryCode: description: The primary human readable identifier for this course. This is often the source identifier as defined by the institution. $ref: '#/components/schemas/IdentifierEntry' readOnly: true name: type: array description: The name of this course (ECTS-title) minItems: 1 items: $ref: '#/components/schemas/LanguageTypedString' example: - language: en-GB value: Academic and Professional Writing abbreviation: type: string description: The abbreviation or internal code used to identify this course (ECTS-code) maxLength: 256 example: INFOMQNM studyLoad: $ref: '#/components/schemas/StudyLoadDescriptor' modeOfDelivery: $ref: '#/components/schemas/modesOfDelivery' duration: type: string description: The duration of this course. The duration format is from the ISO 8601 ABNF as given in Appendix A of RFC 3339. pattern: ^(-?)P(?=\d|T\d)(?:(\d+)Y)?(?:(\d+)M)?(?:(\d+)([DW]))?(?:T(?:(\d+)H)?(?:(\d+)M)?(?:(\d+(?:\.\d+)?)S)?)?$ example: P1DT30H4S firstStartDate: type: string description: The date when participants can follow this course for the first time. format: date description: type: array description: The description of this course (ECTS-description). minItems: 1 items: $ref: '#/components/schemas/LanguageTypedString' example: - language: en-GB value: As with all empirical sciences, to assure valid outcomes, HCI studies heavily rely on research methods and statistics. This holds for the design of user interfaces, personalized recommender systems, and interaction paradigms for the internet of things. This course prepares you to do so by learning you to collect data, design experiments, and analyze the results. By the end of the course, you will have a detailed understanding of how to select and apply quantitative research methods and analysis to address virtually all HCI challenges. Quantitative research and data analysis will be taught in the context of state-of-the-art HCI challenges. Lectures will be alternated with hands-on learning, including work with predefined datasets (e.g., addressing facial features, cognitive load, and emotion). Additionally, students will set up their own research (e.g., using eye tracking). Data processing and analysis will be executed using R. teachingLanguage: type: string description: The (primary) teaching language in which this course is given, should be a three-letter language code as specified by ISO 639-2. minLength: 3 maxLength: 3 pattern: ^[a-z]{3}$ example: nld fieldsOfStudy: type: string description: Field(s) of study (e.g. ISCED-F) (https://unesdoc.unesco.org/ark:/48223/pf0000228085.locale=en). maxLength: 4 example: '0732' learningOutcomes: type: array description: Statements that describe the knowledge or skills students should acquire by the end of a particular course (ECTS-learningoutcome). items: type: array minItems: 1 items: $ref: '#/components/schemas/LanguageTypedString' example: - language: en-GB value: 'Executable knowledge of research methods, including: Acquire knowledge of HCI research paradigms.' admissionRequirements: type: array description: This information may be given at an institutional level and/or at the level of individual programmes. Make sure that it is clear whether the information applies to fee-paying students (national and/or international) or to exchange students. example: - language: en-GB value: Students need to be enrolled at qualifying institutions of higher education that participate in this alliance minItems: 1 items: $ref: '#/components/schemas/LanguageTypedString' qualificationRequirements: type: array description: Normally, students will receive a diploma when they have completed the (official) study program and have obtained the required number of credits. If there are any other specific requirements that students need to have fulfilled, mention them here. minItems: 1 items: $ref: '#/components/schemas/LanguageTypedString' level: $ref: '#/components/schemas/level' enrollment: type: array items: $ref: '#/components/schemas/LanguageTypedString' description: The extra information that is provided for enrollment example: - language: en-GB value: enrollment through SIS. [The limited implementation of Git Hub Markdown syntax](#tag/formatting-and-displaying-results-from-API) MAY be used for rich text representation. resources: type: array description: An overview of the literature and other resources that is used in this course (ECTS-recommended reading and other sources) items: type: string example: - book to be announced - on-line resource x assessment: type: array description: A description of the way exams for this course are taken (ECTS-assessment method and criteria). minItems: 1 items: $ref: '#/components/schemas/LanguageTypedString' example: - language: en-GB value: Exam on campus link: type: string description: URL of the course's website format: uri maxLength: 2048 example: https://osiris.uu.nl/osiris_student_uuprd/OnderwijsCatalogusZoekCursus.do#submitForm?cursuscode=INFOMQNM educationSpecification: description: The educationSpecification of which this course is a more concrete implementation. [`expandable`](#tag/education_specification_model) oneOf: - $ref: '#/components/schemas/Identifier' title: educationSpecificationId - $ref: '#/components/schemas/EducationSpecification' title: EducationSpecification addresses: type: array description: Addresses for this course items: $ref: '#/components/schemas/Address' otherCodes: type: array description: An array of additional human readable codes/identifiers for the entity being described. items: $ref: '#/components/schemas/IdentifierEntry' consumers: description: The additional consumer elements that can be provided, see the [documentation on support for specific consumers](https://openonderwijsapi.nl/v5/#/technical/consumers-and-profiles/) for more information about this mechanism. type: array items: $ref: '#/components/schemas/Consumer' example: - consumerKey: rio educationOffererCode: 123A321 educationLocationCode: 334X123 jointPartnerCodes: - 123A123 foreignPartners: - Harvard University lastStartDate: 01-09-2025 teachingLanguages: - nld - eng ext: $ref: '#/components/schemas/Ext' programs: description: The program of which this course is a part of. This object is [`expandable`](#tag/program_model) type: array items: oneOf: - $ref: '#/components/schemas/Identifier' title: programId - $ref: '#/components/schemas/Program' title: Program object coordinators: description: The person(s) responsible for this course. This object is [`expandable`](#tag/person_model) type: array items: oneOf: - $ref: '#/components/schemas/Identifier' title: personId - $ref: '#/components/schemas/Person' title: Person object organization: description: 'The organization that manages this group. [`expandable`](#tag/organization_model) By default only the `organizationId` (a string) is returned. If the client requested an expansion of `organization` the full organization object should be returned. ' oneOf: - $ref: '#/components/schemas/Identifier' title: organizationId - $ref: '#/components/schemas/Organization' title: Organization object OfferingProperties: type: object description: Either a program, course or component offering which descrbes the program, course or offering in time required: - primaryCode - offeringType - name - description - teachingLanguage - resultExpected properties: primaryCode: description: The primary human readable identifier for this offering. This is often the source identifier as defined by the institution. $ref: '#/components/schemas/IdentifierEntry' example: codeType: offeringCode code: INFOMQNM-20FS readOnly: true offeringType: type: string description: The type of this offering enum: - program - course - component example: component academicSession: description: 'The academicsession during which this courseoffering takes place. [`expandable`](#tag/academic_session_model) By default only the `academicSessionId` (a string) is returned. If the client requested an expansion of `academicSession` the full academicsession object should be returned. ' oneOf: - $ref: '#/components/schemas/Identifier' title: academicSessionId - $ref: '#/components/schemas/AcademicSession' title: AcademicSession object name: type: array description: The name of this offering minItems: 1 items: $ref: '#/components/schemas/LanguageTypedString' example: - language: en-GB value: Final written test for INFOMQNM for fall semseter 2020 abbreviation: type: string description: The abbreviation or internal code used to identify this offering maxLength: 256 example: Test-INFOMQNM-20FS description: type: array description: The description of this offering. minItems: 1 items: $ref: '#/components/schemas/LanguageTypedString' example: - language: en-GB value: '''Prove in writing knowledge of research methods, including: Acquire knowledge of HCI research paradigms Able to design suitable research studies (e.g., choose between within and between subject designs) Define/apply/design metrics and scales Define/produce materials (e.g., stimuli and questionnaires) Define protocols for research studies Understands and take in account concepts of reliability and validity Analyze and improve methods and analysis of published scientific articles Able to deliver scientific reports Prove in writing knowledge of ­­­statistics, including: Handle hypothesis testing with complex designs (e.g., including , dependent, independent, and co variates) Data preparation (e.g., coding and feature selection) Reason towards adequate techniques to ensure valid outcomes (e.g., be aware of type I, type II errors) Select an appropriate sampling method (e.g., stratified) Perform parametric tests (e.g., repeated measures (M)ANOVA) Perform non-parametric tests (e.g., Chi-square, Mann-Whitney, and Kruskal-Wallis)'' ' teachingLanguage: type: string description: The (primary) teaching language in which this offering is given, should be a three-letter language code as specified by ISO 639-2. minLength: 3 maxLength: 3 pattern: ^[a-z]{3}$ example: nld modeOfDelivery: $ref: '#/components/schemas/modesOfDelivery' maxNumberStudents: type: number description: The maximum number of students allowed to enroll for this offering format: int32 minimum: 0 example: 200 enrolledNumberStudents: type: number description: The number of students that have already enrolled for this offering format: int32 minimum: 0 example: 150 pendingNumberStudents: type: number description: The number of students that have a pending enrollment request for this offering format: int32 minimum: 0 example: 50 minNumberStudents: type: number description: The minimum number of students needed for this offering to proceed format: int32 minimum: 0 example: 15 resultExpected: type: boolean description: "resultExpected, previously knwon as isLineItem is used so the specific instance of the object is identified as being an element that CAN contain “grade” information.\nOfferings do not always have to result in a grade or an other type of result. \nIf there is a result expected from a programOffering/courseOffering/componentOffering the is resultExpected field should parse true\n" example: true resultValueType: $ref: '#/components/schemas/resultValueType' link: type: string description: URL of this offering's webpage. format: uri maxLength: 2048 example: https://osiris.uu.nl/osiris_student_uuprd/OnderwijsCatalogusZoekCursus.do#submitForm?cursuscode=INFOMQNM otherCodes: type: array description: An array of additional human readable codes/identifiers for the entity being described. items: $ref: '#/components/schemas/IdentifierEntry' consumers: description: The additional consumer elements that can be provided, see the [documentation on support for specific consumers](https://openonderwijsapi.nl/v5/#/technical/consumers-and-profiles/) for more information about this mechanism. type: array items: $ref: '#/components/schemas/Consumer' example: - consumerKey: rio explanationRequiredPermission: Toestemming is vereist omdat we daarom vragen. requiredPermissionRegistration: 'yes' registrationStatus: open modeOfDelivery: - coaching ext: $ref: '#/components/schemas/Ext' responses: ErrorUnauthorized: description: Unauthorized content: application/problem+json: schema: $ref: '#/components/schemas/Problem' ErrorBadRequest: description: Bad request content: application/problem+json: schema: $ref: '#/components/schemas/Problem' ErrorInternalServerError: description: Internal Server Error content: application/problem+json: schema: $ref: '#/components/schemas/Problem' ErrorTooManyRequests: description: Too many requests content: application/problem+json: schema: $ref: '#/components/schemas/Problem' ErrorForbidden: description: Forbidden content: application/problem+json: schema: $ref: '#/components/schemas/Problem' ErrorMethodNotAllowed: description: Method not allowed content: application/problem+json: schema: $ref: '#/components/schemas/Problem' ErrorNotFound: description: Not Found content: application/problem+json: schema: $ref: '#/components/schemas/Problem' securitySchemes: bearerAuth: type: http scheme: bearer openId: type: openIdConnect openIdConnectUrl: https://example.nl/.well-known/openid-configuration x-refined-from: - ooapi-v5.yaml - open-education-api-v5-openapi.yml x-tagGroups: - name: Requests and responses tags: - security - service metadata - academic sessions - associations - buildings - courses - course offerings - course offering associations - components - documents - groups - learning components - learning component offerings - learning component offering associations - learning outcomes - news - organisations - persons - programmes - programme offerings - programme offering associations - rooms - test components - test component offerings - test component offering associations - test component offering association attempts - name: Models tags: - data_model - service_model - learning_outcome_model - academic_session_model - building_model - course_model - course_offering_model - course_offering_association_model - document_model - learning_component_model - learning_component_offering_model - learning_component_offering_association_model - test_component_model - test_component_offering_model - test_component_offering_association_model - test_component_offering_association_attempt_model - group_model - membership_model - organisation_model - person_model - programme_model - programme_offering_model - programme_offering_association_model - room_model