CampusAPI Course Services API documentation version 1.0.2
Based on OSID version 3.0.0
https://base.url/course
Overview
The Course Services package defines course management services for educational offerings or other learning units related to an event or curriculum. Courses may be used to model a class, conference tutorial session, or even a meetup group. Systems that manage course information to which these services can be applied include Student Information, Curriculum Management and Learning Management systems.
This package includes the following entities:
Courses
A Course is a canonical learning unit describing the overall content of a course, related learning Objectives, and any credit or grading options available that serve to constrain related offerings. The structure of a canonical Course can be managed through a set of ActivityUnits.
Field | Description | Type |
---|---|---|
id(read‑only) | The unique id of this course, provided by system. | string(osid‑id) |
uri(read‑only) | The uri of this course, provided by system. | string(uri) |
displayName | The name of this course for display. | string |
description | The description of this course. | string |
genusTypeId (read‑only) | Id of the immutable type of this course. Default type set by system unless specified in query parameter. | string(osid‑id) |
recordTypeIds (read‑only) | Type Ids of record types available on this course. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere. | string(osid‑id)[] |
title | The formal title of this course. | string |
number | The course number which is a label generally used to index the course in a catalog, such as T101 or 16. | string |
sponsorIds | The sponsors. References an array of resource.Resource objects. | string(osid‑id)[] |
creditIds | The credits in which this course can be offered. References an array of grading.Grade objects. | string(osid‑id)[] |
prerequisitesInfo | An informational string for the course prerequisites. | string |
prerequisiteIds | The requisites for the course prerequisites. References an array of requisite.Requisite objects. | string(osid‑id)[] |
levelIds | The grade levels of this course. References an array of grading.Grade objects. | string(osid‑id)[] |
gradingOptionIds | The various grading options available to register in this course. References an array of grading.GradeSystem objects. | string(osid‑id)[] |
learningObjectiveIds | The overall learning objectives for this course. References an array of learning.Objective objects. | string(osid‑id)[] |
ActivityUnits
An ActivityUnit is a component of a canonical Course that describes in more detail a learning activity. An ActivityUnit relates to a set of learning Objectives. Learning Objectives managed at the ActivityUnit level can be rolled up to the canonical Course. Also describes target efforts split between contact and individual durations, and whether the offering of an ActivityUnit is intended to repeat on a weekly basis. The ActivityUnit maintains the high-level data to which offerings are scheduled. ActivityUnits define canonical "sections", "labs", "lectures", etc.
Example: Course 6.111 Digital Systems Laboratory has a prerequisite of 6.002 and offered at 12 credits. It as three associated activity units. One activity unit is the lecture recurring weekly at 3 hours per week. The second activity unit is the lab recurring weekly at 7 hours per week. The third activity is preparation recurring weekly at 2 hours per week. for instance, MIT calculates the credits ("units" as they would call them) as the sum of the weekly effort hours; 12 credits (transformable to 4 semester hours in the Grading service). The total target effort for all three activity units is 168 hours. When an offering is scheduled during a Term, the actual effort can be compared to the target effort based in the weekly effort estimates.
Field | Description | Type |
---|---|---|
id(read‑only) | The unique id of this activity unit, provided by system. | string(osid‑id) |
uri(read‑only) | The uri of this activity unit, provided by system. | string(uri) |
displayName | The name of this activity unit for display. | string |
description | The description of this activity unit. | string |
genusTypeId (read‑only) | Id of the immutable type of this activity unit. Default type set by system unless specified in query parameter. | string(osid‑id) |
recordTypeIds (read‑only) | Type Ids of record types available on this activity unit. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere. | string(osid‑id)[] |
courseId (read‑only) | The course associated with this activity unit. References a course.Course object. | string(osid‑id) |
totalTargetEffort | The total time required for this activity. | string(duration) |
contact | Tests if this is a contact activity. | boolean |
totalTargetContactTime | The total contact time for this activity. | string(duration) |
totalTargetIndividualEffort | The total indivudal time required for this activity. | string(duration) |
recurringWeekly | Tests if this activity is recurring. | boolean |
weeklyEffort | The time required for this recurring effort on a weekly basis. | string(duration) |
weeklyContactTime | The weekly contact time for ths activity. | string(duration) |
weeklyIndividualEffort | The weekly individual time for ths activity. | string(duration) |
learningObjectiveIds | The overall learning objectives for this activity unit. References an array of learning.Objective objects. | string(osid‑id)[] |
CourseOfferings
A CourseOffering is a canonical Course offered during a Term. CourseOffering replicates some of the data managed in the Course in the case it is refined or tweaked but serves to snapshot the canonical Course for the term in which it was offered. CourseOffering adds some logistical information such as requiring registration, instructors, and overall constraints on seating count. Like its canonical counterpart, a CourseOffering is made up of Activities.
Field | Description | Type |
---|---|---|
id(read‑only) | The unique id of this course offering, provided by system. | string(osid‑id) |
uri(read‑only) | The uri of this course offering, provided by system. | string(uri) |
displayName | The name of this course offering for display. | string |
description | The description of this course offering. | string |
genusTypeId (read‑only) | Id of the immutable type of this course offering. Default type set by system unless specified in query parameter. | string(osid‑id) |
recordTypeIds (read‑only) | Type Ids of record types available on this course offering. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere. | string(osid‑id)[] |
startDate | The starting date of this course offering. | string(date‑time) |
endDate | The ending date of this course offering. | string(date‑time) |
endReasonId | The reason this course offering ended. References a process.State object. | string(osid‑id) |
courseId (read‑only) | The course associated with this course offering. References a course.Course object. | string(osid‑id) |
termId (read‑only) | The term associated with this course offering. References a course.Term object. | string(osid‑id) |
title | The formal title of this course. | string |
number | The course number which is a label generally used to index the course offering in a catalog, such as T101 or 16. | string |
instructorIds | The instructors. References an array of resource.Resource objects. | string(osid‑id)[] |
sponsorIds | The sponsors. References an array of resource.Resource objects. | string(osid‑id)[] |
creditIds | The credits in which this course can be registered. References an array of grading.Grade objects. | string(osid‑id)[] |
gradingOptionIds | The various grading options available to register in this course. References an array of grading.GradeSystem objects. | string(osid‑id)[] |
requiresRegistration | -- could someone please write a description for this -- | boolean |
minimumSeats | The minimum number of students this offering can have. | integer |
maximumSeats | The maximum number of students this offering can have. | integer |
url | An external resource, such as a class web site, associated with this offering. | string |
scheduleInfo | An informational string for the course offering schedule. | string |
eventId | The calendaring event with the schedule details. References a calendaring.Event object | string(osid‑id) |
Activities
An Activity is an offering of an ActivityUnit. The Activity supplies the logistics of offering this curriculum, such as schedule, seating constraints, and instructors, to be managed at this level instead of the CourseOffering level. The Activity also allows for the effort numbers to be refined fromits canonical counterpart.
The Activity also manages scheduling information. Schedules, as managed by the Calendaring service, can be related to an Activity. When the Schedule is applied to a Term, a series of meeting times can be visible as either a series of implicit Activities in the Course service or as a RecurringEvent in the Calendaring service.
The interplay between Calendaring and the Course service for scheduling is apparent by the similarity between the Activity and the RecurringEvent. At a conceptual level, the Activity is an ActivityUnit offered on a recurring Schedule during a Term while a RecuringEvent is an event offered on a recurring Schedule during a Term.
Like a RecurringEvent, an Activity may be "unravelled" as in expanded to a set of Activities where each Activity represents a single meeting time. This unravelling allows for a single meeting time to be identified and potentially modified to add or change information for one occurrence. An eample would be to implement a rotating instructor for each class in a series.
A "superseding" Activity be be applied to an Activity to replace individual occurrences. The Schedules for each the Activity and the superseding Activity are expanded into individual meeting times. If any individual times overlap with any individual times of the superseding Activity, the superseding Activity session replaces the original one.
Field | Description | Type |
---|---|---|
id(read‑only) | The unique id of this activity, provided by system. | string(osid‑id) |
uri(read‑only) | The uri of this activity, provided by system. | string(uri) |
displayName | The name of this activity for display. | string |
description | The description of this activity. | string |
genusTypeId (read‑only) | Id of the immutable type of this activity. Default type set by system unless specified in query parameter. | string(osid‑id) |
recordTypeIds (read‑only) | Type Ids of record types available on this activity. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere. | string(osid‑id)[] |
startDate | The starting date of this activity. | string(date‑time) |
endDate | The ending date of this activity. | string(date‑time) |
endReasonId | The reason this activity ended. References a process.State object. | string(osid‑id) |
activityUnitId (read‑only) | The activity unit associated with this activity. References a course.ActivityUnit object. | string(osid‑id) |
courseOfferingId (read‑only) | The course offering associated with this activity. References a course.CourseOffering object. | string(osid‑id) |
termId (read‑only) | The term associated with this activity. References a course.Term object. | string(osid‑id) |
instructorIds | The instructors. References an array of resource.Resource objects. | string(osid‑id)[] |
minimumSeats | The minimum number of students this activity can have. | integer |
maximumSeats | The maximum number of students this activity can accommodate. | integer |
contact | Tests if this is a contact activity. | boolean |
totalTargetContactTime | The total contact time for this activity. | string(duration) |
totalTargetIndividualEffort | The total individual time required for this activity. | string(duration) |
recurringWeekly | Tests if this activity is recurring. | boolean |
weeklyEffort | The time required for this recurring effort on a weekly basis. | string(duration) |
weeklyContactTime | The weekly contact time for ths activity. | string(duration) |
weeklyIndividualEffort | The weekly individual time for ths activity. | string(duration) |
scheduleIds | The schedules associated with this offering. References an array of calendaring.Schedule objects | string(osid‑id)[] |
meetingTimes | The specific meeting times added to this activity. References an array of MeetingTime objects | object[] |
blackouts | the blackout dates for this activity. Activitiy sessions overlapping with the time intervals do not appear in the series. References an array of DateTimeInterval objects | object[] |
Terms
A Term is a time period in which Courses can be offered. The Term includes a set of course related milestones including a date range in which classes occur. This class date range drives the expansion of the Schedules in the Activity.
The Term in the Course service is analogous to the TimePeriod in Calendaring but has extra course-related information. The Schedule expansion in the Course service is based on the class date range while the expandion of the Schedule in Calendaring is based on the date range of the Term itself.
Field | Description | Type |
---|---|---|
id(read‑only) | The unique id of this term, provided by system. | string(osid‑id) |
uri(read‑only) | The uri of this term, provided by system. | string(uri) |
displayName | The name of this term for display. | string |
description | The description of this term. | string |
genusTypeId (read‑only) | Id of the immutable type of this term. Default type set by system unless specified in query parameter. | string(osid‑id) |
recordTypeIds (read‑only) | Type Ids of record types available on this term. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere. | string(osid‑id)[] |
displayLabel | A display label for this term which may be less formal than the display name. | string |
openDate | The open date when published offerings are finalized. | string(date‑time) |
registrationStart | The start of the registration period. | string(date‑time) |
registrationEnd | The end of the registration period. | string(date‑time) |
classesStart | The start of classes. | string(date‑time) |
classesEnd | The end of classes. | string(date‑time) |
addDate | The add/drop date. | string(date‑time) |
dropDate | The add/drop date. | string(date‑time) |
finalExamStart | The start of the final exam period. | string(date‑time) |
finalExamEnd | The end of the final exam period. | string(date‑time) |
closeDate | The close date when results of course offerings are finalized. | string(date‑time) |
gradingStart | The start of the grading period. | string(date‑time) |
gradingEnd | The end of the grading period. | string(date‑time) |
CourseCatalogs
Courses, ActivityUnits, CourseOfferings, Activities, and Terms can be organized into federateble catalogs. CourseCatalogs can be used to represent a set of CourseOfferings offered in a specific Term, year, or by subject area, sponsor, campus, etc.
Field | Description | Type |
---|---|---|
id(read‑only) | The unique id of this course catalog, provided by system. | string(osid‑id) |
uri(read‑only) | The uri of this course catalog, provided by system. | string(uri) |
displayName | The name of this course catalog for display. | string |
description | The description of this course catalog. | string |
genusTypeId (read‑only) | Id of the immutable type of this course catalog. Default type set by system unless specified in query parameter. | string(osid‑id) |
recordTypeIds (read‑only) | Type Ids of record types available on this course catalog. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere. | string(osid‑id)[] |
providerId | The provider of this course catalog. References a resource.Resource object. | string(osid‑id) |
brandingIds | The branding of this course catalog. References repository.Asset objects. | string(osid‑id)[] |
license | The licensing that applies to this course catalog. | string |
License
CampusAPI REST Documentation Copyright 2020 DXtera Institute. Based on the Open Service Interface Defitions: http://osid.org
/courses
Collection of courses in a system, federation of systems, or in a default courseCatalog.
Get all courses in the system or default courseCatalog.
Create a new course in the default courseCatalog.
get /courses
Get all courses in the system or default courseCatalog.
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- genusTypeId: (string)
The id string to match a genusType
Example:
type.Type%3AexampleCourseType%40dxtera.org
- parentGenusTypeId: (string)
The id string to match a parent genusType
Example:
type.Type%3AparentTypeExampleCourseType%40dxtera.org
- recordTypeId: (string)
The id string to match a recordType
Example:
type.Type%3AexampleCourseType%40campusapi.org
- number: (string)
query string to match number.
Example:
T101
- sponsorId: (string)
Id string to match sponsor.
Example:
resource.Resource%3A23423%40demo.dxtera.org
- courseCatalogId: (string)
The id string to match a courseCatalog
Example:
course.CourseCatalog%3A8374%40base.url
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "course.Course:1366@base.url",
"uri": "http://base.url/open/campusapi/course/course/course.Course%3A1366%40base.url",
"displayName": "Display Name of this Course",
"description": "The description of this Course",
"genusTypeId": "type.Type:defaultCourseType@base.url",
"recordTypeIds": [ "type.Type:exampleCourseRecordType@campusapi.org", "..."],
"title": "This is the Title",
"number": "101",
"sponsorIds": [ "resource.Resource:5004@base.url", "..." ],
"creditIds": [ "grading.Grade:5726@base.url", "..." ],
"prerequisitesInfo": "This is the PrerequisitesInfo",
"prerequisiteIds": [ "course.requisite.Requisite:3113@base.url", "..." ],
"levelIds": [ "grading.Grade:5031@base.url", "..." ],
"gradingOptionIds": [ "grading.GradeSystem:3569@base.url", "..." ],
"learningObjectiveIds": [ "learning.Objective:5284@base.url", "..." ]
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
post /courses
Create a new course in the default courseCatalog.
Query Parameters
- genusType: (string)
specify a particular course type to create
Example:
type.Type%3AexampleCourseType%40dxtera.org
- recordType: (array of )
specify support for one or more course record types
Example:
[ "type.Type%3AexampleCourseRecordType%40campusapi.org", "..." ]
- courseCatalogId: (string)
specify in which course-catalog to create this course
Example:
course.CourseCatalog%3A8374%40base.url
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Course",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this course, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this course, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this course for display.",
"type": "string"
},
"description": {
"description": "The description of this course.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this course. Default type set by system unless specified in query parameter.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this course. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"title": {
"description": "The formal title of this course.",
"type": "string"
},
"number": {
"description": "The course number which is a label generally used to index the course in a catalog, such as T101 or 16.",
"type": "string"
},
"sponsorIds": {
"description": "The sponsors.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
}
},
"creditIds": {
"description": "The credits in which this course can be offered.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
}
},
"prerequisitesInfo": {
"description": "An informational string for the course prerequisites.",
"type": "string"
},
"prerequisiteIds": {
"description": "The requisites for the course prerequisites.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
}
},
"levelIds": {
"description": "The grade levels of this course.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
}
},
"gradingOptionIds": {
"description": "The various grading options available to register in this course.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
}
},
"learningObjectiveIds": {
"description": "The overall learning objectives for this course.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
}
}
}
}
Example:
{
"displayName": "Display Name of this Course",
"description": "The description of this Course",
"title": "This is the Title",
"number": "101",
"sponsorIds": [ "resource.Resource:6477@base.url", "..." ],
"creditIds": [ "grading.Grade:3776@base.url", "..." ],
"prerequisitesInfo": "This is the PrerequisitesInfo",
"prerequisiteIds": [ "course.requisite.Requisite:2040@base.url", "..." ],
"levelIds": [ "grading.Grade:39@base.url", "..." ],
"gradingOptionIds": [ "grading.GradeSystem:2777@base.url", "..." ],
"learningObjectiveIds": [ "learning.Objective:5982@base.url", "..." ]
}
Entity representing a course form metadata.
Get form metadata for creating a new course.
get /courses/metadata
Get form metadata for creating a new course.
Query Parameters
- genusType: (string)
specify a particular course type to create
Example:
type.Type%3AexampleCourseType%40dxtera.org
- recordType: (array of )
specify support for one or more course record types
Example:
[ "type.Type%3AexampleCourseRecordType%40campusapi.org", "..." ]
- courseCatalogId: (string)
specify in which course-catalog to create this course
Example:
course.CourseCatalog%3A8374%40base.url
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "Course",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this course, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this course, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this course for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Course.Course:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this course",
"linked": false
},
"description": {
"description": "The description of this course.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Course.Course:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this course",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this course. Default type set by system unless specified in query parameter on initial post.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this course. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"title": {
"description": "The formal title of this course.",
"type": "string",
"read-only": false,
"minLength": null,
"maxLength": null,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.Course:title@dxtera.org",
"existingValue": "The existing title",
"elementLabel": "Title",
"instructions": "Enter a title for this course.",
"linked": false
},
"number": {
"description": "The course number which is a label generally used to index the course in a catalog, such as T101 or 16.",
"type": "string",
"read-only": false,
"minLength": null,
"maxLength": null,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.Course:number@dxtera.org",
"existingValue": "The existing number",
"elementLabel": "Number",
"instructions": "Enter a number for this course.",
"linked": false
},
"sponsorIds": {
"description": "The sponsors.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id",
"pattern": "",
"enum": []
},
"read-only": false,
"elementId": "course.Course:sponsors@dxtera.org",
"existingValue": [],
"elementLabel": "Sponsors",
"instructions": "Enter Ids for sponsors of this course.",
"linked": false
},
"creditIds": {
"description": "The credits in which this course can be offered.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id",
"pattern": "",
"enum": []
},
"read-only": false,
"elementId": "course.Course:credits@dxtera.org",
"existingValue": [],
"elementLabel": "Credits",
"instructions": "Enter Ids for credits of this course.",
"linked": false
},
"prerequisitesInfo": {
"description": "An informational string for the course prerequisites.",
"type": "string",
"read-only": false,
"minLength": null,
"maxLength": null,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.Course:prerequisitesInfo@dxtera.org",
"existingValue": "The existing prerequisites info",
"elementLabel": "Prerequisites Info",
"instructions": "Enter a prerequisites info for this course.",
"linked": false
},
"prerequisiteIds": {
"description": "The requisites for the course prerequisites.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id",
"pattern": "",
"enum": []
},
"read-only": false,
"elementId": "course.Course:prerequisites@dxtera.org",
"existingValue": [],
"elementLabel": "Prerequisites",
"instructions": "Enter Ids for prerequisites of this course.",
"linked": false
},
"levelIds": {
"description": "The grade levels of this course.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id",
"pattern": "",
"enum": []
},
"read-only": false,
"elementId": "course.Course:levels@dxtera.org",
"existingValue": [],
"elementLabel": "Levels",
"instructions": "Enter Ids for levels of this course.",
"linked": false
},
"gradingOptionIds": {
"description": "The various grading options available to register in this course.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id",
"pattern": "",
"enum": []
},
"read-only": false,
"elementId": "course.Course:gradingOptions@dxtera.org",
"existingValue": [],
"elementLabel": "Grading Options",
"instructions": "Enter Ids for grading options of this course.",
"linked": false
},
"learningObjectiveIds": {
"description": "The overall learning objectives for this course.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id",
"pattern": "",
"enum": []
},
"read-only": false,
"elementId": "course.Course:learningObjective@dxtera.org",
"existingValue": [],
"elementLabel": "Learning Objective",
"instructions": "Enter Ids for learning objective of this course.",
"linked": false
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Entity representing a course
Get a course given its id.
Update a given course.
Delete a given course.
get /courses/{courseId}
Get a course given its id.
URI Parameters
- courseId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"id": "course.Course:1366@base.url",
"uri": "http://base.url/open/campusapi/course/course/course.Course%3A1366%40base.url",
"displayName": "Display Name of this Course",
"description": "The description of this Course",
"genusTypeId": "type.Type:defaultCourseType@base.url",
"recordTypeIds": [ "type.Type:exampleCourseRecordType@campusapi.org", "..."],
"title": "This is the Title",
"number": "101",
"sponsorIds": [ "resource.Resource:5004@base.url", "..." ],
"creditIds": [ "grading.Grade:5726@base.url", "..." ],
"prerequisitesInfo": "This is the PrerequisitesInfo",
"prerequisiteIds": [ "course.requisite.Requisite:3113@base.url", "..." ],
"levelIds": [ "grading.Grade:5031@base.url", "..." ],
"gradingOptionIds": [ "grading.GradeSystem:3569@base.url", "..." ],
"learningObjectiveIds": [ "learning.Objective:5284@base.url", "..." ]
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "course not found" }
put /courses/{courseId}
Update a given course.
URI Parameters
- courseId: required(string)
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Course",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this course, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this course, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this course for display.",
"type": "string"
},
"description": {
"description": "The description of this course.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this course. Default type set by system unless specified in query parameter.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this course. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"title": {
"description": "The formal title of this course.",
"type": "string"
},
"number": {
"description": "The course number which is a label generally used to index the course in a catalog, such as T101 or 16.",
"type": "string"
},
"sponsorIds": {
"description": "The sponsors.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
}
},
"creditIds": {
"description": "The credits in which this course can be offered.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
}
},
"prerequisitesInfo": {
"description": "An informational string for the course prerequisites.",
"type": "string"
},
"prerequisiteIds": {
"description": "The requisites for the course prerequisites.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
}
},
"levelIds": {
"description": "The grade levels of this course.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
}
},
"gradingOptionIds": {
"description": "The various grading options available to register in this course.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
}
},
"learningObjectiveIds": {
"description": "The overall learning objectives for this course.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
}
}
}
}
Example:
{
"displayName": "Display Name of this Course",
"description": "The description of this Course",
"title": "This is the Title",
"number": "101",
"sponsorIds": [ "resource.Resource:6477@base.url", "..." ],
"creditIds": [ "grading.Grade:3776@base.url", "..." ],
"prerequisitesInfo": "This is the PrerequisitesInfo",
"prerequisiteIds": [ "course.requisite.Requisite:2040@base.url", "..." ],
"levelIds": [ "grading.Grade:39@base.url", "..." ],
"gradingOptionIds": [ "grading.GradeSystem:2777@base.url", "..." ],
"learningObjectiveIds": [ "learning.Objective:5982@base.url", "..." ]
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The course has been updated" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "course not found" }
delete /courses/{courseId}
Delete a given course.
URI Parameters
- courseId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The course has been deleted" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "course not found" }
Entity representing a course form metadata for update
Get form metadata for updating an existing course.
get /courses/{courseId}/metadata
Get form metadata for updating an existing course.
URI Parameters
- courseId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "Course",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this course, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this course, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this course for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Course.Course:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this course",
"linked": false
},
"description": {
"description": "The description of this course.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Course.Course:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this course",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this course. Default type set by system unless specified in query parameter on initial post.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this course. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"title": {
"description": "The formal title of this course.",
"type": "string",
"read-only": false,
"minLength": null,
"maxLength": null,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.Course:title@dxtera.org",
"existingValue": "The existing title",
"elementLabel": "Title",
"instructions": "Enter a title for this course.",
"linked": false
},
"number": {
"description": "The course number which is a label generally used to index the course in a catalog, such as T101 or 16.",
"type": "string",
"read-only": false,
"minLength": null,
"maxLength": null,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.Course:number@dxtera.org",
"existingValue": "The existing number",
"elementLabel": "Number",
"instructions": "Enter a number for this course.",
"linked": false
},
"sponsorIds": {
"description": "The sponsors.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id",
"pattern": "",
"enum": []
},
"read-only": false,
"elementId": "course.Course:sponsors@dxtera.org",
"existingValue": [],
"elementLabel": "Sponsors",
"instructions": "Enter Ids for sponsors of this course.",
"linked": false
},
"creditIds": {
"description": "The credits in which this course can be offered.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id",
"pattern": "",
"enum": []
},
"read-only": false,
"elementId": "course.Course:credits@dxtera.org",
"existingValue": [],
"elementLabel": "Credits",
"instructions": "Enter Ids for credits of this course.",
"linked": false
},
"prerequisitesInfo": {
"description": "An informational string for the course prerequisites.",
"type": "string",
"read-only": false,
"minLength": null,
"maxLength": null,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.Course:prerequisitesInfo@dxtera.org",
"existingValue": "The existing prerequisites info",
"elementLabel": "Prerequisites Info",
"instructions": "Enter a prerequisites info for this course.",
"linked": false
},
"prerequisiteIds": {
"description": "The requisites for the course prerequisites.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id",
"pattern": "",
"enum": []
},
"read-only": false,
"elementId": "course.Course:prerequisites@dxtera.org",
"existingValue": [],
"elementLabel": "Prerequisites",
"instructions": "Enter Ids for prerequisites of this course.",
"linked": false
},
"levelIds": {
"description": "The grade levels of this course.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id",
"pattern": "",
"enum": []
},
"read-only": false,
"elementId": "course.Course:levels@dxtera.org",
"existingValue": [],
"elementLabel": "Levels",
"instructions": "Enter Ids for levels of this course.",
"linked": false
},
"gradingOptionIds": {
"description": "The various grading options available to register in this course.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id",
"pattern": "",
"enum": []
},
"read-only": false,
"elementId": "course.Course:gradingOptions@dxtera.org",
"existingValue": [],
"elementLabel": "Grading Options",
"instructions": "Enter Ids for grading options of this course.",
"linked": false
},
"learningObjectiveIds": {
"description": "The overall learning objectives for this course.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id",
"pattern": "",
"enum": []
},
"read-only": false,
"elementId": "course.Course:learningObjective@dxtera.org",
"existingValue": [],
"elementLabel": "Learning Objective",
"instructions": "Enter Ids for learning objective of this course.",
"linked": false
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "course not found" }
Get expanded course prerequisite tree structures. All supporting requisiteOptions, programRequirements, Programs, Program completionRequirements, Courses, Course preRequisites and requisiteRequirements will be recursively expanded for bulk consumption. All credentialRequirements, assessmentRequirement, learningObjectiveRequirements and awardRequirements will be expanded.
get /courses/{courseId}/prerequisites
Get expanded course prerequisite tree structures. All supporting requisiteOptions, programRequirements, Programs, Program completionRequirements, Courses, Course preRequisites and requisiteRequirements will be recursively expanded for bulk consumption. All credentialRequirements, assessmentRequirement, learningObjectiveRequirements and awardRequirements will be expanded.
URI Parameters
- courseId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"id": "requisite.Requisite:1488@demo.dxtera.org",
"uri": "http://demo.dxtera.org/open/campusapi/requisite/requisite/requisite.Requisite%3A31415%40demo.dxtera.org",
"displayName": "Display Name of this Program Requisite",
"description": "The description of this Program Requisite Requisite",
"genusType": "type.Type:defaultRequisiteType@dxtera.org",
"active": true,
"enabled": true,
"disabled": false,
"operational": true,
"schedule": "calendaring.Schedule:8475@demo.dxtera.org",
"event": "calendaring.Event:8475@demo.dxtera.org",
"cyclicEvent": "cycle.CyclicEvent:8475@demo.dxtera.org",
"demographic": "resource.Resource:8475@demo.dxtera.org",
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"sequestered": false,
"requisiteOptionIds": ["requisite.Requisite:1154@demo.dxtera.org"],
"requisiteOptions": [
{
"id": "requisite.Requisite:1154@demo.dxtera.org",
"uri": "http://demo.dxtera.org/open/campusapi/requisite/requisite/requisite.Requisite%3A31154%40demo.dxtera.org",
"displayName": "This is an alternate Requisite",
"description": "This alternate Requisite can be satisfied instead of the enclosing Program Requisite",
"genusType": "type.Type:defaultRequisiteType@dxtera.org",
"active": true,
"enabled": true,
"disabled": false,
"operational": true,
"ruleId": "",
"schedule": "calendaring.Schedule:8475@demo.dxtera.org",
"event": "calendaring.Event:8475@demo.dxtera.org",
"cyclicEvent": "cycle.CyclicEvent:8475@demo.dxtera.org",
"demographic": "resource.Resource:8475@demo.dxtera.org",
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"sequestered": false,
"requisiteOptionIds": [ "...", "..." ],
"requisiteOptions": [ "...", "..." ],
"courseRequirementIds": [ "...", "..." ],
"courseRequirements": [ "...", "..." ],
"programRequirementIds": [ "...", "..." ],
"programRequirements": [ "...", "..." ],
"credentialRequirementIds": [ "...", "..." ],
"credentialRequirements": [ "...", "..." ],
"learningObjectiveRequirementIds": [ "...", "..." ],
"learningObjectiveRequirements": [ "r...", "..." ],
"assessmentRequirementIds": [ "...", "..." ],
"assessmentRequirements": [ "...", "..." ],
"awardRequirementIds": [ "...", "..." ],
"awardRequirements": [ "...", "..." ],
"requisiteRequirementIds": [ "...", "..." ],
"requisiteRequirements": [ "...", "..." ],
"minimumEarnedCredits": 0,
"minimumCourseCount": 3
},
{
"...": "..."
}
],
"courseRequirementIds": ["requisite.CourseRequirement:9392@demo.dxtera.org", "..."],
"courseRequirements": [
{
"id": "requisite.CourseRequirement:9392@demo.dxtera.org",
"uri": "http://demo.dxtera.org/open/campusapi/requisite/course-requirement/requisite.CourseRequirement%3A31415%40demo.dxtera.org",
"displayName": "Display Name of this CourseRequirement",
"description": "The description of this CourseRequirement",
"genusType": "type.Type:defaultCourseRequirementType@dxtera.org",
"active": true,
"enabled": true,
"disabled": false,
"operational": true,
"ruleId": "rules.Rule:123@demo.dxtera.org",
"courseId": "course.Course:4222@demo.dxtera.org",
"requiresCompletion": true,
"timeframe": "P3DT3H",
"minimumGradeId": "grading.Grade:3813@demo.dxtera.org",
"minimumScoreSystemId": "grading.GradeSystem:2166@demo.dxtera.org",
"minimumScore": 3.14,
"minimumEarnedCredits": 3.14
},
{
"...": "..."
}
],
"programRequirementIds": ["requisite.ProgramRequirement:6423@demo.dxtera.org", "..."],
"programRequirements": [
{
"id": "requisite.ProgramRequirement:6423@demo.dxtera.org",
"uri": "http://demo.dxtera.org/open/campusapi/requisite/program-requirement/requisite.ProgramRequirement%3A31415%40demo.dxtera.org",
"displayName": "Display Name of this ProgramRequirement",
"description": "The description of this ProgramRequirement",
"genusType": "type.Type:defaultProgramRequirementType@dxtera.org",
"active": true,
"enabled": true,
"disabled": false,
"operational": true,
"ruleId": "rules.Rule:123@demo.dxtera.org",
"programId": "program.Program:9926@demo.dxtera.org",
"program": {
"id": "program.Program:9926@demo.dxtera.org",
"uri": "http://demo.dxtera.org/open/campusapi/program/program/program.Program%3A39926%40demo.dxtera.org",
"displayName": "Display Name of this Program",
"description": "This is another Program that must be completed to satisfy the enclosing Requisite ",
"genusType": "type.Type:defaultProgramType@dxtera.org",
"title": "This is the Program Title",
"number": "101",
"sponsorIds": [ "resource.Resource:8475@demo.dxtera.org", "..." ],
"completionRequirementsInfo": "This is the CompletionRequirementsInfo",
"completionRequirements": [
{
"id": "requisite.Requisite:3390@demo.dxtera.org",
"uri": "http://demo.dxtera.org/open/campusapi/requisite/requisite/requisite.Requisite%3A33390%40demo.dxtera.org",
"displayName": "Display Name of this sub-Requirement",
"description": "This Requirement, and any of its peers, must be satisfied",
"genusType": "type.Type:defaultRequisiteType@dxtera.org",
"active": true,
"enabled": true,
"disabled": false,
"operational": true,
"ruleId": "rules.Rule:123@demo.dxtera.org",
"schedule": "calendaring.Schedule:8475@demo.dxtera.org",
"event": "calendaring.Event:8475@demo.dxtera.org",
"cyclicEvent": "cycle.CyclicEvent:8475@demo.dxtera.org",
"demographic": "resource.Resource:8475@demo.dxtera.org",
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"sequestered": false,
"requisiteOptionIds": [ "...", "..." ],
"requisiteOptions": [ "...", "..." ],
"courseRequirementIds": [ "...", "..." ],
"courseRequirements": [ "...", "..." ],
"programRequirementIds": [ "...", "..." ],
"programRequirements": [ "...", "..." ],
"credentialRequirementIds": [ "...", "..." ],
"credentialRequirements": [ "...", "..." ],
"learningObjectiveRequirementIds": [ "...", "..." ],
"learningObjectiveRequirements": [ "r...", "..." ],
"assessmentRequirementIds": [ "...", "..." ],
"assessmentRequirements": [ "...", "..." ],
"awardRequirementIds": [ "...", "..." ],
"awardRequirements": [ "...", "..." ],
"requisiteRequirementIds": [ "...", "..." ],
"requisiteRequirements": [ "...", "..." ],
"minimumEarnedCredits": 10,
"minimumCourseCount": 3
},
{
"...": "..."
}
],
"completionRequirementIds": [ "course.requisite.Requisite:3390@demo.dxtera.org", "..." ],
"credentialIds": [ "course.program.Credential:2551@demo.dxtera.org", "..." ]
},
"requiresCompletion": true,
"timeframe": "P3DT3H",
"minimumGpaSystemId": "grading.GradeSystem:1860@demo.dxtera.org",
"minimumGPA": 3.14,
"minimumEarnedCredits": 3.14
},
{
"...": "..."
}
],
"credentialRequirements": [
{
"id": "requisite.CredentialRequirement:3034@demo.dxtera.org",
"uri": "http://demo.dxtera.org/open/campusapi/requisite/credential-requirement/requisite.CredentialRequirement%3A31415%40demo.dxtera.org",
"displayName": "Display Name of this CredentialRequirement",
"description": "The description of this CredentialRequirement",
"genusType": "type.Type:defaultCredentialRequirementType@dxtera.org",
"active": true,
"enabled": true,
"disabled": false,
"operational": true,
"ruleId": "rules.Rule:123@demo.dxtera.org",
"credentialId": "course.program.Credential:5876@demo.dxtera.org",
"timeframe": "P3DT3H"
},
{
"...": "..."
}
],
"learningObjectiveRequirements": [
{
"id": "requisite.LearningObjectiveRequirement:7975@demo.dxtera.org",
"uri": "http://demo.dxtera.org/open/campusapi/requisite/learning-objective-requirement/requisite.LearningObjectiveRequirement%3A31415%40demo.dxtera.org",
"displayName": "Display Name of this LearningObjectiveRequirement",
"description": "The description of this LearningObjectiveRequirement",
"genusType": "type.Type:defaultLearningObjectiveRequirementType@dxtera.org",
"active": true,
"enabled": true,
"disabled": false,
"operational": true,
"ruleId": "rules.Rule:123@demo.dxtera.org",
"learningObjectiveId": "learning.Objective:1731@demo.dxtera.org",
"minimumProficiencyId": "grading.Grade:4144@demo.dxtera.org"
},
{
"...": "..."
}
],
"assessmentRequirements": [
{
"id": "requisite.AssessmentRequirement:4897@demo.dxtera.org",
"uri": "http://demo.dxtera.org/open/campusapi/requisite/assessment-requirement/requisite.AssessmentRequirement%3A31415%40demo.dxtera.org",
"displayName": "Display Name of this AssessmentRequirement",
"description": "The description of this AssessmentRequirement",
"genusType": "type.Type:defaultAssessmentRequirementType@dxtera.org",
"active": true,
"enabled": true,
"disabled": false,
"operational": true,
"ruleId": "rules.Rule:123@demo.dxtera.org",
"assessmentId": "assessment.Assessment:7034@demo.dxtera.org",
"timeframe": "P3DT3H",
"minimumGradeId": "grading.Grade:296@demo.dxtera.org",
"minimumScoreSystemId": "grading.GradeSystem:435@demo.dxtera.org",
"minimumScore": 3.14
},
{
"...": "..."
}
],
"awardRequirements": [
{
"id": "requisite.AwardRequirement:5778@demo.dxtera.org",
"uri": "http://demo.dxtera.org/open/campusapi/requisite/award-requirement/requisite.AwardRequirement%3A31415%40demo.dxtera.org",
"displayName": "Display Name of this AwardRequirement",
"description": "The description of this AwardRequirement",
"genusType": "type.Type:defaultAwardRequirementType@dxtera.org",
"active": true,
"enabled": true,
"disabled": false,
"operational": true,
"ruleId": "rules.Rule:123@demo.dxtera.org",
"awardId": "recognition.Award:4592@demo.dxtera.org",
"timeframe": "P3DT3H"
},
{
"...": "..."
}
],
"requisiteRequirements": [
{
"id": "requisite.Requisite:1344@demo.dxtera.org",
"uri": "http://demo.dxtera.org/open/campusapi/requisite/requisite/requisite.Requisite%3A31344%40demo.dxtera.org",
"displayName": "Display Name of this sub-Requirement",
"description": "This Requirement, and any of its peers, must be satisfied",
"genusType": "type.Type:defaultRequisiteType@dxtera.org",
"active": true,
"enabled": true,
"disabled": false,
"operational": true,
"ruleId": "rules.Rule:123@demo.dxtera.org",
"schedule": "calendaring.Schedule:8475@demo.dxtera.org",
"event": "calendaring.Event:8475@demo.dxtera.org",
"cyclicEvent": "cycle.CyclicEvent:8475@demo.dxtera.org",
"demographic": "resource.Resource:8475@demo.dxtera.org",
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"sequestered": false,
"requisiteOptionIds": [ "...", "..." ],
"requisiteOptions": [ "...", "..." ],
"courseRequirementIds": [ "...", "..." ],
"courseRequirements": [ "...", "..." ],
"programRequirementIds": [ "...", "..." ],
"programRequirements": [ "...", "..." ],
"credentialRequirementIds": [ "...", "..." ],
"credentialRequirements": [ "...", "..." ],
"learningObjectiveRequirementIds": [ "...", "..." ],
"learningObjectiveRequirements": [ "r...", "..." ],
"assessmentRequirementIds": [ "...", "..." ],
"assessmentRequirements": [ "...", "..." ],
"awardRequirementIds": [ "...", "..." ],
"awardRequirements": [ "...", "..." ],
"requisiteRequirementIds": [ "...", "..." ],
"requisiteRequirements": [ "...", "..." ],
"minimumEarnedCredits": 10,
"minimumCourseCount": 3
},
{
"...": "..."
}
],
"minimumEarnedCredits": 60,
"minimumCourseCount": 0
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
/activity-units
Collection of activity-units in a system, federation of systems, or in a default courseCatalog.
Get all activity-units in the system or default courseCatalog.
Create a new activity-unit in the default courseCatalog.
get /activity-units
Get all activity-units in the system or default courseCatalog.
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- genusTypeId: (string)
The id string to match a genusType
Example:
type.Type%3AexampleActivityUnitType%40dxtera.org
- parentGenusTypeId: (string)
The id string to match a parent genusType
Example:
type.Type%3AparentTypeExampleActivityUnitType%40dxtera.org
- recordTypeId: (string)
The id string to match a recordType
Example:
type.Type%3AexampleActivityUnitType%40campusapi.org
- courseId: (string)
the id string to match a course.
Example:
course.Course%3A432%40base.url
- courseCatalogId: (string)
The id string to match a courseCatalog
Example:
course.CourseCatalog%3A8374%40base.url
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "course.ActivityUnit:7447@base.url",
"uri": "http://base.url/open/campusapi/course/activity_unit/course.ActivityUnit%3A7447%40base.url",
"displayName": "Display Name of this ActivityUnit",
"description": "The description of this ActivityUnit",
"genusTypeId": "type.Type:defaultActivityUnitType@base.url",
"recordTypeIds": [ "type.Type:exampleActivityUnitRecordType@campusapi.org", "..."],
"courseId": "course.Course:3054@base.url",
"totalTargetEffort": "P3DT3H",
"contact": true,
"totalTargetContactTime": "P3DT3H",
"totalTargetIndividualEffort": "P3DT3H",
"recurringWeekly": true,
"weeklyEffort": "PT4H",
"weeklyContactTime": "PT4H",
"weeklyIndividualEffort": "PT4H",
"learningObjectiveIds": [ "learning.Objective:9876@base.url", "..." ]
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
post /activity-units
Create a new activity-unit in the default courseCatalog.
Query Parameters
- courseId: required(string)
the course of this activity-unit.
Example:
course.Course%3A432%40base.url
- genusType: (string)
specify a particular activityUnit type to create
Example:
type.Type%3AexampleActivityUnitType%40dxtera.org
- recordType: (array of )
specify support for one or more activityUnit record types
Example:
[ "type.Type%3AexampleActivityUnitRecordType%40campusapi.org", "..." ]
- courseCatalogId: (string)
specify in which course-catalog to create this activityUnit
Example:
course.CourseCatalog%3A8374%40base.url
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "ActivityUnit",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this activity unit, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this activity unit, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this activity unit for display.",
"type": "string"
},
"description": {
"description": "The description of this activity unit.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this activity unit. Default type set by system unless specified in query parameter.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this activity unit. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"courseId": {
"description": "The course associated with this activity unit.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"totalTargetEffort": {
"description": "The total time required for this activity.",
"type": "string",
"format": "duration"
},
"contact": {
"description": "Tests if this is a contact activity.",
"type": "boolean"
},
"totalTargetContactTime": {
"description": "The total contact time for this activity.",
"type": "string",
"format": "duration"
},
"totalTargetIndividualEffort": {
"description": "The total indivudal time required for this activity.",
"type": "string",
"format": "duration"
},
"recurringWeekly": {
"description": "Tests if this activity is recurring.",
"type": "boolean"
},
"weeklyEffort": {
"description": "The time required for this recurring effort on a weekly basis.",
"type": "string",
"format": "duration"
},
"weeklyContactTime": {
"description": "The weekly contact time for ths activity.",
"type": "string",
"format": "duration"
},
"weeklyIndividualEffort": {
"description": "The weekly individual time for ths activity.",
"type": "string",
"format": "duration"
},
"learningObjectiveIds": {
"description": "The overall learning objectives for this activity unit.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
}
}
}
}
Example:
{
"displayName": "Display Name of this ActivityUnit",
"description": "The description of this ActivityUnit",
"totalTargetEffort": "P3DT3H",
"contact": true,
"totalTargetContactTime": "P3DT3H",
"totalTargetIndividualEffort": "P3DT3H",
"recurringWeekly": true,
"weeklyEffort": "PT4H",
"weeklyContactTime": "PT4H",
"weeklyIndividualEffort": "PT4H",
"learningObjectiveIds": [ "learning.Objective:36@base.url", "..." ]
}
Entity representing a activityUnit form metadata.
Get form metadata for creating a new activityUnit.
get /activity-units/metadata
Get form metadata for creating a new activityUnit.
Query Parameters
- courseId: required(string)
the course of this metadatum.
Example:
course.Course%3A432%40base.url
- genusType: (string)
specify a particular activityUnit type to create
Example:
type.Type%3AexampleActivityUnitType%40dxtera.org
- recordType: (array of )
specify support for one or more activityUnit record types
Example:
[ "type.Type%3AexampleActivityUnitRecordType%40campusapi.org", "..." ]
- courseCatalogId: (string)
specify in which course-catalog to create this activityUnit
Example:
course.CourseCatalog%3A8374%40base.url
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "ActivityUnit",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this activity unit, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this activity unit, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this activity unit for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "ActivityUnit.ActivityUnit:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this activity unit",
"linked": false
},
"description": {
"description": "The description of this activity unit.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "ActivityUnit.ActivityUnit:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this activity unit",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this activity unit. Default type set by system unless specified in query parameter on initial post.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this activity unit. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"totalTargetEffort": {
"description": "The total time required for this activity.",
"type": "string",
"format": "duration",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.ActivityUnit:totalTargetEffort@dxtera.org",
"existingValue": "",
"elementLabel": "Total Target Effort",
"instructions": "Enter the total target effort of this activity unit.",
"linked": false
},
"contact": {
"description": "Tests if this is a contact activity.",
"type": "boolean",
"elementId": "course.ActivityUnit:contact@dxtera.org",
"existingValue": false,
"elementLabel": "Contact",
"instructions": "Enter true or false.",
"linked": false
},
"totalTargetContactTime": {
"description": "The total contact time for this activity.",
"type": "string",
"format": "duration",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.ActivityUnit:totalTargetContactTime@dxtera.org",
"existingValue": "",
"elementLabel": "Total Target Contact Time",
"instructions": "Enter the total target contact time of this activity unit.",
"linked": false
},
"totalTargetIndividualEffort": {
"description": "The total indivudal time required for this activity.",
"type": "string",
"format": "duration",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.ActivityUnit:totalTargetIndividualEffort@dxtera.org",
"existingValue": "",
"elementLabel": "Total Target Individual Effort",
"instructions": "Enter the total target individual effort of this activity unit.",
"linked": false
},
"recurringWeekly": {
"description": "Tests if this activity is recurring.",
"type": "boolean",
"elementId": "course.ActivityUnit:recurringWeekly@dxtera.org",
"existingValue": false,
"elementLabel": "Recurring Weekly",
"instructions": "Enter true or false.",
"linked": false
},
"weeklyEffort": {
"description": "The time required for this recurring effort on a weekly basis.",
"type": "string",
"format": "duration",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.ActivityUnit:weeklyEffort@dxtera.org",
"existingValue": "",
"elementLabel": "Weekly Effort",
"instructions": "Enter the weekly effort of this activity unit.",
"linked": false
},
"weeklyContactTime": {
"description": "The weekly contact time for ths activity.",
"type": "string",
"format": "duration",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.ActivityUnit:weeklyContactTime@dxtera.org",
"existingValue": "",
"elementLabel": "Weekly Contact Time",
"instructions": "Enter the weekly contact time of this activity unit.",
"linked": false
},
"weeklyIndividualEffort": {
"description": "The weekly individual time for ths activity.",
"type": "string",
"format": "duration",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.ActivityUnit:weeklyIndividualEffort@dxtera.org",
"existingValue": "",
"elementLabel": "Weekly Individual Effort",
"instructions": "Enter the weekly individual effort of this activity unit.",
"linked": false
},
"learningObjectiveIds": {
"description": "The overall learning objectives for this activity unit.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id",
"pattern": "",
"enum": []
},
"read-only": false,
"elementId": "course.ActivityUnit:learningObjective@dxtera.org",
"existingValue": [],
"elementLabel": "Learning Objective",
"instructions": "Enter Ids for learning objective of this activity unit.",
"linked": false
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Entity representing a activity-unit
Get a activity-unit given its id.
Update a given activity-unit.
Delete a given activity-unit.
get /activity-units/{activityUnitId}
Get a activity-unit given its id.
URI Parameters
- activityUnitId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"id": "course.ActivityUnit:7447@base.url",
"uri": "http://base.url/open/campusapi/course/activity_unit/course.ActivityUnit%3A7447%40base.url",
"displayName": "Display Name of this ActivityUnit",
"description": "The description of this ActivityUnit",
"genusTypeId": "type.Type:defaultActivityUnitType@base.url",
"recordTypeIds": [ "type.Type:exampleActivityUnitRecordType@campusapi.org", "..."],
"courseId": "course.Course:3054@base.url",
"totalTargetEffort": "P3DT3H",
"contact": true,
"totalTargetContactTime": "P3DT3H",
"totalTargetIndividualEffort": "P3DT3H",
"recurringWeekly": true,
"weeklyEffort": "PT4H",
"weeklyContactTime": "PT4H",
"weeklyIndividualEffort": "PT4H",
"learningObjectiveIds": [ "learning.Objective:9876@base.url", "..." ]
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "activity-unit not found" }
put /activity-units/{activityUnitId}
Update a given activity-unit.
URI Parameters
- activityUnitId: required(string)
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "ActivityUnit",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this activity unit, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this activity unit, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this activity unit for display.",
"type": "string"
},
"description": {
"description": "The description of this activity unit.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this activity unit. Default type set by system unless specified in query parameter.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this activity unit. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"courseId": {
"description": "The course associated with this activity unit.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"totalTargetEffort": {
"description": "The total time required for this activity.",
"type": "string",
"format": "duration"
},
"contact": {
"description": "Tests if this is a contact activity.",
"type": "boolean"
},
"totalTargetContactTime": {
"description": "The total contact time for this activity.",
"type": "string",
"format": "duration"
},
"totalTargetIndividualEffort": {
"description": "The total indivudal time required for this activity.",
"type": "string",
"format": "duration"
},
"recurringWeekly": {
"description": "Tests if this activity is recurring.",
"type": "boolean"
},
"weeklyEffort": {
"description": "The time required for this recurring effort on a weekly basis.",
"type": "string",
"format": "duration"
},
"weeklyContactTime": {
"description": "The weekly contact time for ths activity.",
"type": "string",
"format": "duration"
},
"weeklyIndividualEffort": {
"description": "The weekly individual time for ths activity.",
"type": "string",
"format": "duration"
},
"learningObjectiveIds": {
"description": "The overall learning objectives for this activity unit.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
}
}
}
}
Example:
{
"displayName": "Display Name of this ActivityUnit",
"description": "The description of this ActivityUnit",
"totalTargetEffort": "P3DT3H",
"contact": true,
"totalTargetContactTime": "P3DT3H",
"totalTargetIndividualEffort": "P3DT3H",
"recurringWeekly": true,
"weeklyEffort": "PT4H",
"weeklyContactTime": "PT4H",
"weeklyIndividualEffort": "PT4H",
"learningObjectiveIds": [ "learning.Objective:36@base.url", "..." ]
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The activity-unit has been updated" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "activity-unit not found" }
delete /activity-units/{activityUnitId}
Delete a given activity-unit.
URI Parameters
- activityUnitId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The activity-unit has been deleted" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "activity-unit not found" }
Entity representing a activityUnit form metadata for update
Get form metadata for updating an existing activityUnit.
get /activity-units/{activityUnitId}/metadata
Get form metadata for updating an existing activityUnit.
URI Parameters
- activityUnitId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "ActivityUnit",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this activity unit, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this activity unit, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this activity unit for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "ActivityUnit.ActivityUnit:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this activity unit",
"linked": false
},
"description": {
"description": "The description of this activity unit.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "ActivityUnit.ActivityUnit:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this activity unit",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this activity unit. Default type set by system unless specified in query parameter on initial post.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this activity unit. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"totalTargetEffort": {
"description": "The total time required for this activity.",
"type": "string",
"format": "duration",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.ActivityUnit:totalTargetEffort@dxtera.org",
"existingValue": "",
"elementLabel": "Total Target Effort",
"instructions": "Enter the total target effort of this activity unit.",
"linked": false
},
"contact": {
"description": "Tests if this is a contact activity.",
"type": "boolean",
"elementId": "course.ActivityUnit:contact@dxtera.org",
"existingValue": false,
"elementLabel": "Contact",
"instructions": "Enter true or false.",
"linked": false
},
"totalTargetContactTime": {
"description": "The total contact time for this activity.",
"type": "string",
"format": "duration",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.ActivityUnit:totalTargetContactTime@dxtera.org",
"existingValue": "",
"elementLabel": "Total Target Contact Time",
"instructions": "Enter the total target contact time of this activity unit.",
"linked": false
},
"totalTargetIndividualEffort": {
"description": "The total indivudal time required for this activity.",
"type": "string",
"format": "duration",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.ActivityUnit:totalTargetIndividualEffort@dxtera.org",
"existingValue": "",
"elementLabel": "Total Target Individual Effort",
"instructions": "Enter the total target individual effort of this activity unit.",
"linked": false
},
"recurringWeekly": {
"description": "Tests if this activity is recurring.",
"type": "boolean",
"elementId": "course.ActivityUnit:recurringWeekly@dxtera.org",
"existingValue": false,
"elementLabel": "Recurring Weekly",
"instructions": "Enter true or false.",
"linked": false
},
"weeklyEffort": {
"description": "The time required for this recurring effort on a weekly basis.",
"type": "string",
"format": "duration",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.ActivityUnit:weeklyEffort@dxtera.org",
"existingValue": "",
"elementLabel": "Weekly Effort",
"instructions": "Enter the weekly effort of this activity unit.",
"linked": false
},
"weeklyContactTime": {
"description": "The weekly contact time for ths activity.",
"type": "string",
"format": "duration",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.ActivityUnit:weeklyContactTime@dxtera.org",
"existingValue": "",
"elementLabel": "Weekly Contact Time",
"instructions": "Enter the weekly contact time of this activity unit.",
"linked": false
},
"weeklyIndividualEffort": {
"description": "The weekly individual time for ths activity.",
"type": "string",
"format": "duration",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.ActivityUnit:weeklyIndividualEffort@dxtera.org",
"existingValue": "",
"elementLabel": "Weekly Individual Effort",
"instructions": "Enter the weekly individual effort of this activity unit.",
"linked": false
},
"learningObjectiveIds": {
"description": "The overall learning objectives for this activity unit.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id",
"pattern": "",
"enum": []
},
"read-only": false,
"elementId": "course.ActivityUnit:learningObjective@dxtera.org",
"existingValue": [],
"elementLabel": "Learning Objective",
"instructions": "Enter Ids for learning objective of this activity unit.",
"linked": false
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "activityUnit not found" }
/course-offerings
Collection of course-offerings in a system, federation of systems, or in a default courseCatalog.
Get all course-offerings in the system or default courseCatalog.
Create a new course-offering in the default courseCatalog.
get /course-offerings
Get all course-offerings in the system or default courseCatalog.
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- genusTypeId: (string)
The id string to match a genusType
Example:
type.Type%3AexampleCourseOfferingType%40dxtera.org
- parentGenusTypeId: (string)
The id string to match a parent genusType
Example:
type.Type%3AparentTypeExampleCourseOfferingType%40dxtera.org
- recordTypeId: (string)
The id string to match a recordType
Example:
type.Type%3AexampleCourseOfferingType%40campusapi.org
- fromDate: (string)
Get all course-offerings from this date inclusive. Use with toDate to define date range query.
Example:
2020-10-03
- toDate: (string)
Get all course-offerings up to this date inclusive. Use with fromDate to define date range query.
Example:
2020-12-18
- courseId: (string)
the id string to match a course.
Example:
course.Course%3A504%40base.url
- termId: (string)
the id string to match a term.
Example:
course.Term%3A336%40base.url
- number: (string)
query string to match number.
Example:
T101
- sponsorId: (string)
Id string to match sponsor.
Example:
resource.Resource%3A23423%40demo.dxtera.org
- courseCatalogId: (string)
The id string to match a courseCatalog
Example:
course.CourseCatalog%3A8374%40base.url
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "course.CourseOffering:5845@base.url",
"uri": "http://base.url/open/campusapi/course/courseOffering/course.CourseOffering%3A5845%40base.url",
"displayName": "Display Name of this CourseOffering",
"description": "The description of this CourseOffering",
"genusTypeId": "type.Type:defaultCourseOfferingType@base.url",
"recordTypeIds": [ "type.Type:exampleCourseOfferingRecordType@campusapi.org", "..."],
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"endReasonId": "process.State:5845@base.url",
"courseId": "course.Course:6404@base.url",
"termId": "course.Term:6488@base.url",
"title": "This is the Title",
"number": "101",
"instructorIds": [ "resource.Resource:7339@base.url", "..." ],
"sponsorIds": [ "resource.Resource:8980@base.url", "..." ],
"creditIds": [ "grading.Grade:7488@base.url", "..." ],
"gradingOptionIds": [ "grading.GradeSystem:4928@base.url", "..." ],
"requiresRegistration": true,
"minimumSeats": 1,
"maximumSeats": 42,
"url": "http://dxtera.org",
"scheduleInfo": "This is the ScheduleInfo",
"eventId": "calendaring.Event:7458@base.url"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
post /course-offerings
Create a new course-offering in the default courseCatalog.
Query Parameters
- courseId: required(string)
the course of this course-offering.
Example:
course.Course%3A504%40base.url
- termId: required(string)
the term of this course-offering.
Example:
course.Term%3A336%40base.url
- genusType: (string)
specify a particular courseOffering type to create
Example:
type.Type%3AexampleCourseOfferingType%40dxtera.org
- recordType: (array of )
specify support for one or more courseOffering record types
Example:
[ "type.Type%3AexampleCourseOfferingRecordType%40campusapi.org", "..." ]
- courseCatalogId: (string)
specify in which course-catalog to create this courseOffering
Example:
course.CourseCatalog%3A8374%40base.url
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "CourseOffering",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this course offering, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this course offering, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this course offering for display.",
"type": "string"
},
"description": {
"description": "The description of this course offering.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this course offering. Default type set by system unless specified in query parameter.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this course offering. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"startDate": {
"description": "The starting date of this course offering.",
"type": "string",
"format": "date-time"
},
"endDate": {
"description": "The ending date of this course offering.",
"type": "string",
"format": "date-time"
},
"endReasonId": {
"description": "The reason this course offering ended.",
"type": "string",
"format": "osid-id"
},
"courseId": {
"description": "The course associated with this course offering.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"termId": {
"description": "The term associated with this course offering.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"title": {
"description": "The formal title of this course.",
"type": "string"
},
"number": {
"description": "The course number which is a label generally used to index the course offering in a catalog, such as T101 or 16.",
"type": "string"
},
"instructorIds": {
"description": "The instructors.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
}
},
"sponsorIds": {
"description": "The sponsors.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
}
},
"creditIds": {
"description": "The credits in which this course can be registered.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
}
},
"gradingOptionIds": {
"description": "The various grading options available to register in this course.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
}
},
"requiresRegistration": {
"description": "-- could someone please write a description for this --",
"type": "boolean"
},
"minimumSeats": {
"description": "The minimum number of students this offering can have.",
"type": "integer",
"minimum": 1
},
"maximumSeats": {
"description": "The maximum number of students this offering can have.",
"type": "integer",
"minimum": 1
},
"url": {
"description": "An external resource, such as a class web site, associated with this offering.",
"type": "string"
},
"scheduleInfo": {
"description": "An informational string for the course offering schedule.",
"type": "string"
},
"eventId": {
"description": "The calendaring event with the schedule details.",
"type": "string",
"format": "osid-id"
}
}
}
Example:
{
"displayName": "Display Name of this CourseOffering",
"description": "The description of this CourseOffering",
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"endReasonId": "process.State:8154@base.url",
"title": "This is the Title",
"number": "101",
"instructorIds": [ "resource.Resource:6055@base.url", "..." ],
"sponsorIds": [ "resource.Resource:3495@base.url", "..." ],
"creditIds": [ "grading.Grade:2646@base.url", "..." ],
"gradingOptionIds": [ "grading.GradeSystem:7081@base.url", "..." ],
"requiresRegistration": true,
"minimumSeats": 1,
"maximumSeats": 42,
"url": "http://dxtera.org",
"scheduleInfo": "This is the ScheduleInfo",
"eventId": "calendaring.Event:8740@base.url"
}
Entity representing a courseOffering form metadata.
Get form metadata for creating a new courseOffering.
get /course-offerings/metadata
Get form metadata for creating a new courseOffering.
Query Parameters
- courseId: required(string)
the course of this metadatum.
Example:
course.Course%3A504%40base.url
- termId: required(string)
the term of this metadatum.
Example:
course.Term%3A336%40base.url
- genusType: (string)
specify a particular courseOffering type to create
Example:
type.Type%3AexampleCourseOfferingType%40dxtera.org
- recordType: (array of )
specify support for one or more courseOffering record types
Example:
[ "type.Type%3AexampleCourseOfferingRecordType%40campusapi.org", "..." ]
- courseCatalogId: (string)
specify in which course-catalog to create this courseOffering
Example:
course.CourseCatalog%3A8374%40base.url
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "CourseOffering",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this course offering, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this course offering, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this course offering for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "CourseOffering.CourseOffering:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this course offering",
"linked": false
},
"description": {
"description": "The description of this course offering.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "CourseOffering.CourseOffering:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this course offering",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this course offering. Default type set by system unless specified in query parameter on initial post.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this course offering. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"startDate": {
"description": "The starting date of this course offering.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "CourseOffering.CourseOffering:startDate@base.url",
"existingValue": "2020-10-03T08:00:00.000Z",
"elementLabel": "Start Date",
"instructions": "Enter a starting date for this course offering",
"linked": false
},
"endDate": {
"description": "The ending date of this course offering.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "CourseOffering.CourseOffering:endDate@base.url",
"existingValue": "2020-12-18T17:00:00.000Z",
"elementLabel": "End Date",
"instructions": "Enter an ending date for this course offering",
"linked": false
},
"endReasonId": {
"description": "The reason this course offering ended. A process/State object.",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "CourseOffering.CourseOffering:endReason@base.url",
"existingValue": "process.State:1860@base.url",
"elementLabel": "End Reason",
"instructions": "Select the reason this course offering ended",
"linked": false
},
"title": {
"description": "The formal title of this course.",
"type": "string",
"read-only": false,
"minLength": null,
"maxLength": null,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.CourseOffering:title@dxtera.org",
"existingValue": "The existing title",
"elementLabel": "Title",
"instructions": "Enter a title for this course offering.",
"linked": false
},
"number": {
"description": "The course number which is a label generally used to index the course offering in a catalog, such as T101 or 16.",
"type": "string",
"read-only": false,
"minLength": null,
"maxLength": null,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.CourseOffering:number@dxtera.org",
"existingValue": "The existing number",
"elementLabel": "Number",
"instructions": "Enter a number for this course offering.",
"linked": false
},
"instructorIds": {
"description": "The instructors.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id",
"pattern": "",
"enum": []
},
"read-only": false,
"elementId": "course.CourseOffering:instructors@dxtera.org",
"existingValue": [],
"elementLabel": "Instructors",
"instructions": "Enter Ids for instructors of this course offering.",
"linked": false
},
"sponsorIds": {
"description": "The sponsors.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id",
"pattern": "",
"enum": []
},
"read-only": false,
"elementId": "course.CourseOffering:sponsors@dxtera.org",
"existingValue": [],
"elementLabel": "Sponsors",
"instructions": "Enter Ids for sponsors of this course offering.",
"linked": false
},
"creditIds": {
"description": "The credits in which this course can be registered.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id",
"pattern": "",
"enum": []
},
"read-only": false,
"elementId": "course.CourseOffering:credits@dxtera.org",
"existingValue": [],
"elementLabel": "Credits",
"instructions": "Enter Ids for credits of this course offering.",
"linked": false
},
"gradingOptionIds": {
"description": "The various grading options available to register in this course.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id",
"pattern": "",
"enum": []
},
"read-only": false,
"elementId": "course.CourseOffering:gradingOptions@dxtera.org",
"existingValue": [],
"elementLabel": "Grading Options",
"instructions": "Enter Ids for grading options of this course offering.",
"linked": false
},
"requiresRegistration": {
"description": "-- could someone please write a description for this --",
"type": "boolean",
"elementId": "course.CourseOffering:requiresRegistration@dxtera.org",
"existingValue": false,
"elementLabel": "Requires Registration",
"instructions": "Enter true or false.",
"linked": false
},
"minimumSeats": {
"description": "The minimum number of students this offering can have.",
"type": "integer",
"minimum": 1,
"maximum": null,
"units": "",
"default": null,
"enum": [],
"elementId": "course.CourseOffering:minimumSeats@dxtera.org",
"existingValue": 42,
"elementLabel": "Minimum Seats",
"instructions": "Enter the minimum seats of this course offering.",
"linked": false
},
"maximumSeats": {
"description": "The maximum number of students this offering can have.",
"type": "integer",
"minimum": 1,
"maximum": null,
"units": "",
"default": null,
"enum": [],
"elementId": "course.CourseOffering:maximumSeats@dxtera.org",
"existingValue": 42,
"elementLabel": "Maximum Seats",
"instructions": "Enter the maximum seats of this course offering.",
"linked": false
},
"url": {
"description": "An external resource, such as a class web site, associated with this offering.",
"type": "string",
"read-only": false,
"minLength": null,
"maxLength": null,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.CourseOffering:url@dxtera.org",
"existingValue": "The existing url",
"elementLabel": "URL",
"instructions": "Enter a url for this course offering.",
"linked": false
},
"scheduleInfo": {
"description": "An informational string for the course offering schedule.",
"type": "string",
"read-only": false,
"minLength": null,
"maxLength": null,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.CourseOffering:scheduleInfo@dxtera.org",
"existingValue": "The existing schedule info",
"elementLabel": "Schedule Info",
"instructions": "Enter a schedule info for this course offering.",
"linked": false
},
"eventId": {
"description": "The calendaring event with the schedule details.",
"type": "string",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.CourseOffering:event@dxtera.org",
"existingValue": null,
"elementLabel": "Event",
"instructions": "Enter the Id of the event for this course offering.",
"linked": false
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Entity representing a course-offering
Get a course-offering given its id.
Update a given course-offering.
Delete a given course-offering.
get /course-offerings/{courseOfferingId}
Get a course-offering given its id.
URI Parameters
- courseOfferingId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"id": "course.CourseOffering:5845@base.url",
"uri": "http://base.url/open/campusapi/course/courseOffering/course.CourseOffering%3A5845%40base.url",
"displayName": "Display Name of this CourseOffering",
"description": "The description of this CourseOffering",
"genusTypeId": "type.Type:defaultCourseOfferingType@base.url",
"recordTypeIds": [ "type.Type:exampleCourseOfferingRecordType@campusapi.org", "..."],
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"endReasonId": "process.State:5845@base.url",
"courseId": "course.Course:6404@base.url",
"termId": "course.Term:6488@base.url",
"title": "This is the Title",
"number": "101",
"instructorIds": [ "resource.Resource:7339@base.url", "..." ],
"sponsorIds": [ "resource.Resource:8980@base.url", "..." ],
"creditIds": [ "grading.Grade:7488@base.url", "..." ],
"gradingOptionIds": [ "grading.GradeSystem:4928@base.url", "..." ],
"requiresRegistration": true,
"minimumSeats": 1,
"maximumSeats": 42,
"url": "http://dxtera.org",
"scheduleInfo": "This is the ScheduleInfo",
"eventId": "calendaring.Event:7458@base.url"
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "course-offering not found" }
put /course-offerings/{courseOfferingId}
Update a given course-offering.
URI Parameters
- courseOfferingId: required(string)
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "CourseOffering",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this course offering, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this course offering, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this course offering for display.",
"type": "string"
},
"description": {
"description": "The description of this course offering.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this course offering. Default type set by system unless specified in query parameter.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this course offering. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"startDate": {
"description": "The starting date of this course offering.",
"type": "string",
"format": "date-time"
},
"endDate": {
"description": "The ending date of this course offering.",
"type": "string",
"format": "date-time"
},
"endReasonId": {
"description": "The reason this course offering ended.",
"type": "string",
"format": "osid-id"
},
"courseId": {
"description": "The course associated with this course offering.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"termId": {
"description": "The term associated with this course offering.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"title": {
"description": "The formal title of this course.",
"type": "string"
},
"number": {
"description": "The course number which is a label generally used to index the course offering in a catalog, such as T101 or 16.",
"type": "string"
},
"instructorIds": {
"description": "The instructors.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
}
},
"sponsorIds": {
"description": "The sponsors.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
}
},
"creditIds": {
"description": "The credits in which this course can be registered.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
}
},
"gradingOptionIds": {
"description": "The various grading options available to register in this course.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
}
},
"requiresRegistration": {
"description": "-- could someone please write a description for this --",
"type": "boolean"
},
"minimumSeats": {
"description": "The minimum number of students this offering can have.",
"type": "integer",
"minimum": 1
},
"maximumSeats": {
"description": "The maximum number of students this offering can have.",
"type": "integer",
"minimum": 1
},
"url": {
"description": "An external resource, such as a class web site, associated with this offering.",
"type": "string"
},
"scheduleInfo": {
"description": "An informational string for the course offering schedule.",
"type": "string"
},
"eventId": {
"description": "The calendaring event with the schedule details.",
"type": "string",
"format": "osid-id"
}
}
}
Example:
{
"displayName": "Display Name of this CourseOffering",
"description": "The description of this CourseOffering",
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"endReasonId": "process.State:8154@base.url",
"title": "This is the Title",
"number": "101",
"instructorIds": [ "resource.Resource:6055@base.url", "..." ],
"sponsorIds": [ "resource.Resource:3495@base.url", "..." ],
"creditIds": [ "grading.Grade:2646@base.url", "..." ],
"gradingOptionIds": [ "grading.GradeSystem:7081@base.url", "..." ],
"requiresRegistration": true,
"minimumSeats": 1,
"maximumSeats": 42,
"url": "http://dxtera.org",
"scheduleInfo": "This is the ScheduleInfo",
"eventId": "calendaring.Event:8740@base.url"
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The course-offering has been updated" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "course-offering not found" }
delete /course-offerings/{courseOfferingId}
Delete a given course-offering.
URI Parameters
- courseOfferingId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The course-offering has been deleted" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "course-offering not found" }
Entity representing a courseOffering form metadata for update
Get form metadata for updating an existing courseOffering.
get /course-offerings/{courseOfferingId}/metadata
Get form metadata for updating an existing courseOffering.
URI Parameters
- courseOfferingId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "CourseOffering",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this course offering, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this course offering, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this course offering for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "CourseOffering.CourseOffering:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this course offering",
"linked": false
},
"description": {
"description": "The description of this course offering.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "CourseOffering.CourseOffering:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this course offering",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this course offering. Default type set by system unless specified in query parameter on initial post.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this course offering. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"startDate": {
"description": "The starting date of this course offering.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "CourseOffering.CourseOffering:startDate@base.url",
"existingValue": "2020-10-03T08:00:00.000Z",
"elementLabel": "Start Date",
"instructions": "Enter a starting date for this course offering",
"linked": false
},
"endDate": {
"description": "The ending date of this course offering.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "CourseOffering.CourseOffering:endDate@base.url",
"existingValue": "2020-12-18T17:00:00.000Z",
"elementLabel": "End Date",
"instructions": "Enter an ending date for this course offering",
"linked": false
},
"endReasonId": {
"description": "The reason this course offering ended. A process/State object.",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "CourseOffering.CourseOffering:endReason@base.url",
"existingValue": "process.State:1860@base.url",
"elementLabel": "End Reason",
"instructions": "Select the reason this course offering ended",
"linked": false
},
"title": {
"description": "The formal title of this course.",
"type": "string",
"read-only": false,
"minLength": null,
"maxLength": null,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.CourseOffering:title@dxtera.org",
"existingValue": "The existing title",
"elementLabel": "Title",
"instructions": "Enter a title for this course offering.",
"linked": false
},
"number": {
"description": "The course number which is a label generally used to index the course offering in a catalog, such as T101 or 16.",
"type": "string",
"read-only": false,
"minLength": null,
"maxLength": null,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.CourseOffering:number@dxtera.org",
"existingValue": "The existing number",
"elementLabel": "Number",
"instructions": "Enter a number for this course offering.",
"linked": false
},
"instructorIds": {
"description": "The instructors.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id",
"pattern": "",
"enum": []
},
"read-only": false,
"elementId": "course.CourseOffering:instructors@dxtera.org",
"existingValue": [],
"elementLabel": "Instructors",
"instructions": "Enter Ids for instructors of this course offering.",
"linked": false
},
"sponsorIds": {
"description": "The sponsors.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id",
"pattern": "",
"enum": []
},
"read-only": false,
"elementId": "course.CourseOffering:sponsors@dxtera.org",
"existingValue": [],
"elementLabel": "Sponsors",
"instructions": "Enter Ids for sponsors of this course offering.",
"linked": false
},
"creditIds": {
"description": "The credits in which this course can be registered.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id",
"pattern": "",
"enum": []
},
"read-only": false,
"elementId": "course.CourseOffering:credits@dxtera.org",
"existingValue": [],
"elementLabel": "Credits",
"instructions": "Enter Ids for credits of this course offering.",
"linked": false
},
"gradingOptionIds": {
"description": "The various grading options available to register in this course.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id",
"pattern": "",
"enum": []
},
"read-only": false,
"elementId": "course.CourseOffering:gradingOptions@dxtera.org",
"existingValue": [],
"elementLabel": "Grading Options",
"instructions": "Enter Ids for grading options of this course offering.",
"linked": false
},
"requiresRegistration": {
"description": "-- could someone please write a description for this --",
"type": "boolean",
"elementId": "course.CourseOffering:requiresRegistration@dxtera.org",
"existingValue": false,
"elementLabel": "Requires Registration",
"instructions": "Enter true or false.",
"linked": false
},
"minimumSeats": {
"description": "The minimum number of students this offering can have.",
"type": "integer",
"minimum": 1,
"maximum": null,
"units": "",
"default": null,
"enum": [],
"elementId": "course.CourseOffering:minimumSeats@dxtera.org",
"existingValue": 42,
"elementLabel": "Minimum Seats",
"instructions": "Enter the minimum seats of this course offering.",
"linked": false
},
"maximumSeats": {
"description": "The maximum number of students this offering can have.",
"type": "integer",
"minimum": 1,
"maximum": null,
"units": "",
"default": null,
"enum": [],
"elementId": "course.CourseOffering:maximumSeats@dxtera.org",
"existingValue": 42,
"elementLabel": "Maximum Seats",
"instructions": "Enter the maximum seats of this course offering.",
"linked": false
},
"url": {
"description": "An external resource, such as a class web site, associated with this offering.",
"type": "string",
"read-only": false,
"minLength": null,
"maxLength": null,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.CourseOffering:url@dxtera.org",
"existingValue": "The existing url",
"elementLabel": "URL",
"instructions": "Enter a url for this course offering.",
"linked": false
},
"scheduleInfo": {
"description": "An informational string for the course offering schedule.",
"type": "string",
"read-only": false,
"minLength": null,
"maxLength": null,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.CourseOffering:scheduleInfo@dxtera.org",
"existingValue": "The existing schedule info",
"elementLabel": "Schedule Info",
"instructions": "Enter a schedule info for this course offering.",
"linked": false
},
"eventId": {
"description": "The calendaring event with the schedule details.",
"type": "string",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.CourseOffering:event@dxtera.org",
"existingValue": null,
"elementLabel": "Event",
"instructions": "Enter the Id of the event for this course offering.",
"linked": false
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "courseOffering not found" }
/activities
Collection of activities in a system, federation of systems, or in a default courseCatalog.
Get all activities in the system or default courseCatalog.
Create a new activity in the default courseCatalog.
get /activities
Get all activities in the system or default courseCatalog.
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- genusTypeId: (string)
The id string to match a genusType
Example:
type.Type%3AexampleActivityType%40dxtera.org
- parentGenusTypeId: (string)
The id string to match a parent genusType
Example:
type.Type%3AparentTypeExampleActivityType%40dxtera.org
- recordTypeId: (string)
The id string to match a recordType
Example:
type.Type%3AexampleActivityType%40campusapi.org
- fromDate: (string)
Get all activities from this date inclusive. Use with toDate to define date range query.
Example:
2020-10-03
- toDate: (string)
Get all activities up to this date inclusive. Use with fromDate to define date range query.
Example:
2020-12-18
- activityUnitId: (string)
the id string to match a activity-unit.
Example:
course.ActivityUnit%3A624%40base.url
- courseOfferingId: (string)
the id string to match a course-offering.
Example:
course.CourseOffering%3A720%40base.url
- termId: (string)
the id string to match a term.
Example:
course.Term%3A192%40base.url
- courseCatalogId: (string)
The id string to match a courseCatalog
Example:
course.CourseCatalog%3A8374%40base.url
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "course.Activity:6569@base.url",
"uri": "http://base.url/open/campusapi/course/activity/course.Activity%3A6569%40base.url",
"displayName": "Display Name of this Activity",
"description": "The description of this Activity",
"genusTypeId": "type.Type:defaultActivityType@base.url",
"recordTypeIds": [ "type.Type:exampleActivityRecordType@campusapi.org", "..."],
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"endReasonId": "process.State:6569@base.url",
"activityUnitId": "course.ActivityUnit:5072@base.url",
"courseOfferingId": "course.CourseOffering:9462@base.url",
"termId": "course.Term:6905@base.url",
"instructorIds": [ "resource.Resource:198@base.url", "..." ],
"minimumSeats": 1,
"maximumSeats": 42,
"totalTargetEffort": "P3DT3H",
"contact": true,
"totalTargetContactTime": "P3DT3H",
"totalTargetIndividualEffort": "P3DT3H",
"recurringWeekly": true,
"weeklyEffort": "PT4H",
"weeklyContactTime": "PT4H",
"weeklyIndividualEffort": "PT4H",
"scheduleIds": [ "calendaring.Schedule:764438@demo.dxtera.org", "..." ],
"meetingTimes": [
{ "date": "2020-10-18T06:30:00.000Z",
"locationDescription": "Building 20, Room 201",
"locationId": "mapping.Location:6985@base.url" },
{ "...": "..." } ],
"blackouts": [
{ "from": "2020-10-03T06:30:00.000Z",
"to": "2020-10-5T19:30:00.000Z"},
{"...": "..."} ]
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
post /activities
Create a new activity in the default courseCatalog.
Query Parameters
- activityUnitId: required(string)
the activity-unit of this activity.
Example:
course.ActivityUnit%3A624%40base.url
- courseOfferingId: required(string)
the course-offering of this activity.
Example:
course.CourseOffering%3A720%40base.url
- termId: required(string)
the term of this activity.
Example:
course.Term%3A192%40base.url
- genusType: (string)
specify a particular activity type to create
Example:
type.Type%3AexampleActivityType%40dxtera.org
- recordType: (array of )
specify support for one or more activity record types
Example:
[ "type.Type%3AexampleActivityRecordType%40campusapi.org", "..." ]
- courseCatalogId: (string)
specify in which course-catalog to create this activity
Example:
course.CourseCatalog%3A8374%40base.url
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Activity",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this activity, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this activity, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this activity for display.",
"type": "string"
},
"description": {
"description": "The description of this activity.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this activity. Default type set by system unless specified in query parameter.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this activity. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"startDate": {
"description": "The starting date of this activity.",
"type": "string",
"format": "date-time"
},
"endDate": {
"description": "The ending date of this activity.",
"type": "string",
"format": "date-time"
},
"endReasonId": {
"description": "The reason this activity ended.",
"type": "string",
"format": "osid-id"
},
"activityUnitId": {
"description": "The activity unit associated with this activity.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"courseOfferingId": {
"description": "The course offering associated with this activity.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"termId": {
"description": "The term associated with this activity.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"instructorIds": {
"description": "The instructors.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
}
},
"minimumSeats": {
"description": "The minimum number of students this activity can have.",
"type": "integer",
"minimum": 1
},
"maximumSeats": {
"description": "The maximum number of students this activity can accommodate.",
"type": "integer",
"minimum": 1
},
"contact": {
"description": "Tests if this is a contact activity.",
"type": "boolean"
},
"totalTargetContactTime": {
"description": "The total contact time for this activity.",
"type": "string",
"format": "duration"
},
"totalTargetIndividualEffort": {
"description": "The total individual time required for this activity.",
"type": "string",
"format": "duration"
},
"recurringWeekly": {
"description": "Tests if this activity is recurring.",
"type": "boolean"
},
"weeklyEffort": {
"description": "The time required for this recurring effort on a weekly basis.",
"type": "string",
"format": "duration"
},
"weeklyContactTime": {
"description": "The weekly contact time for ths activity.",
"type": "string",
"format": "duration"
},
"weeklyIndividualEffort": {
"description": "The weekly individual time for ths activity.",
"type": "string",
"format": "duration"
}
}
}
Example:
{
"displayName": "Display Name of this Activity",
"description": "The description of this Activity",
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"endReasonId": "process.State:8861@base.url",
"instructorIds": [ "resource.Resource:2691@base.url", "..." ],
"minimumSeats": 1,
"maximumSeats": 42,
"totalTargetEffort": "P3DT3H",
"contact": true,
"totalTargetContactTime": "P3DT3H",
"totalTargetIndividualEffort": "P3DT3H",
"recurringWeekly": true,
"weeklyEffort": "PT4H",
"weeklyContactTime": "PT4H",
"weeklyIndividualEffort": "PT4H"
}
Entity representing a activity form metadata.
Get form metadata for creating a new activity.
get /activities/metadata
Get form metadata for creating a new activity.
Query Parameters
- activityUnitId: required(string)
the activity-unit of this metadatum.
Example:
course.ActivityUnit%3A624%40base.url
- courseOfferingId: required(string)
the course-offering of this metadatum.
Example:
course.CourseOffering%3A720%40base.url
- termId: required(string)
the term of this metadatum.
Example:
course.Term%3A192%40base.url
- genusType: (string)
specify a particular activity type to create
Example:
type.Type%3AexampleActivityType%40dxtera.org
- recordType: (array of )
specify support for one or more activity record types
Example:
[ "type.Type%3AexampleActivityRecordType%40campusapi.org", "..." ]
- courseCatalogId: (string)
specify in which course-catalog to create this activity
Example:
course.CourseCatalog%3A8374%40base.url
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "Activity",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this activity, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this activity, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this activity for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Activity.Activity:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this activity",
"linked": false
},
"description": {
"description": "The description of this activity.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Activity.Activity:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this activity",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this activity. Default type set by system unless specified in query parameter on initial post.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this activity. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"startDate": {
"description": "The starting date of this activity.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Activity.Activity:startDate@base.url",
"existingValue": "2020-10-03T08:00:00.000Z",
"elementLabel": "Start Date",
"instructions": "Enter a starting date for this activity",
"linked": false
},
"endDate": {
"description": "The ending date of this activity.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Activity.Activity:endDate@base.url",
"existingValue": "2020-12-18T17:00:00.000Z",
"elementLabel": "End Date",
"instructions": "Enter an ending date for this activity",
"linked": false
},
"endReasonId": {
"description": "The reason this activity ended. A process/State object.",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Activity.Activity:endReason@base.url",
"existingValue": "process.State:1860@base.url",
"elementLabel": "End Reason",
"instructions": "Select the reason this activity ended",
"linked": false
},
"instructorIds": {
"description": "The instructors.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id",
"pattern": "",
"enum": []
},
"read-only": false,
"elementId": "course.Activity:instructors@dxtera.org",
"existingValue": [],
"elementLabel": "Instructors",
"instructions": "Enter Ids for instructors of this activity.",
"linked": false
},
"minimumSeats": {
"description": "The minimum number of students this activity can have.",
"type": "integer",
"minimum": 1,
"maximum": null,
"units": "",
"default": null,
"enum": [],
"elementId": "course.Activity:minimumSeats@dxtera.org",
"existingValue": 42,
"elementLabel": "Minimum Seats",
"instructions": "Enter the minimum seats of this activity.",
"linked": false
},
"maximumSeats": {
"description": "The maximum number of students this activity can accommodate.",
"type": "integer",
"minimum": 1,
"maximum": null,
"units": "",
"default": null,
"enum": [],
"elementId": "course.Activity:maximumSeats@dxtera.org",
"existingValue": 42,
"elementLabel": "Maximum Seats",
"instructions": "Enter the maximum seats of this activity.",
"linked": false
},
"contact": {
"description": "Tests if this is a contact activity.",
"type": "boolean",
"elementId": "course.Activity:contact@dxtera.org",
"existingValue": false,
"elementLabel": "Contact",
"instructions": "Enter true or false.",
"linked": false
},
"totalTargetContactTime": {
"description": "The total contact time for this activity.",
"type": "string",
"format": "duration",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.Activity:totalTargetContactTime@dxtera.org",
"existingValue": "",
"elementLabel": "Total Target Contact Time",
"instructions": "Enter the total target contact time of this activity.",
"linked": false
},
"totalTargetIndividualEffort": {
"description": "The total individual time required for this activity.",
"type": "string",
"format": "duration",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.Activity:totalTargetIndividualEffort@dxtera.org",
"existingValue": "",
"elementLabel": "Total Target Individual Effort",
"instructions": "Enter the total target individual effort of this activity.",
"linked": false
},
"recurringWeekly": {
"description": "Tests if this activity is recurring.",
"type": "boolean",
"elementId": "course.Activity:recurringWeekly@dxtera.org",
"existingValue": false,
"elementLabel": "Recurring Weekly",
"instructions": "Enter true or false.",
"linked": false
},
"weeklyEffort": {
"description": "The time required for this recurring effort on a weekly basis.",
"type": "string",
"format": "duration",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.Activity:weeklyEffort@dxtera.org",
"existingValue": "",
"elementLabel": "Weekly Effort",
"instructions": "Enter the weekly effort of this activity.",
"linked": false
},
"weeklyContactTime": {
"description": "The weekly contact time for ths activity.",
"type": "string",
"format": "duration",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.Activity:weeklyContactTime@dxtera.org",
"existingValue": "",
"elementLabel": "Weekly Contact Time",
"instructions": "Enter the weekly contact time of this activity.",
"linked": false
},
"weeklyIndividualEffort": {
"description": "The weekly individual time for ths activity.",
"type": "string",
"format": "duration",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.Activity:weeklyIndividualEffort@dxtera.org",
"existingValue": "",
"elementLabel": "Weekly Individual Effort",
"instructions": "Enter the weekly individual effort of this activity.",
"linked": false
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Entity representing a activity
Get a activity given its id.
Update a given activity.
Delete a given activity.
get /activities/{activityId}
Get a activity given its id.
URI Parameters
- activityId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"id": "course.Activity:6569@base.url",
"uri": "http://base.url/open/campusapi/course/activity/course.Activity%3A6569%40base.url",
"displayName": "Display Name of this Activity",
"description": "The description of this Activity",
"genusTypeId": "type.Type:defaultActivityType@base.url",
"recordTypeIds": [ "type.Type:exampleActivityRecordType@campusapi.org", "..."],
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"endReasonId": "process.State:6569@base.url",
"activityUnitId": "course.ActivityUnit:5072@base.url",
"courseOfferingId": "course.CourseOffering:9462@base.url",
"termId": "course.Term:6905@base.url",
"instructorIds": [ "resource.Resource:198@base.url", "..." ],
"minimumSeats": 1,
"maximumSeats": 42,
"totalTargetEffort": "P3DT3H",
"contact": true,
"totalTargetContactTime": "P3DT3H",
"totalTargetIndividualEffort": "P3DT3H",
"recurringWeekly": true,
"weeklyEffort": "PT4H",
"weeklyContactTime": "PT4H",
"weeklyIndividualEffort": "PT4H",
"scheduleIds": [ "calendaring.Schedule:764438@demo.dxtera.org", "..." ],
"meetingTimes": [
{ "date": "2020-10-18T06:30:00.000Z",
"locationDescription": "Building 20, Room 201",
"locationId": "mapping.Location:6985@base.url" },
{ "...": "..." } ],
"blackouts": [
{ "from": "2020-10-03T06:30:00.000Z",
"to": "2020-10-5T19:30:00.000Z"},
{"...": "..."} ]
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "activity not found" }
put /activities/{activityId}
Update a given activity.
URI Parameters
- activityId: required(string)
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Activity",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this activity, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this activity, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this activity for display.",
"type": "string"
},
"description": {
"description": "The description of this activity.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this activity. Default type set by system unless specified in query parameter.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this activity. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"startDate": {
"description": "The starting date of this activity.",
"type": "string",
"format": "date-time"
},
"endDate": {
"description": "The ending date of this activity.",
"type": "string",
"format": "date-time"
},
"endReasonId": {
"description": "The reason this activity ended.",
"type": "string",
"format": "osid-id"
},
"activityUnitId": {
"description": "The activity unit associated with this activity.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"courseOfferingId": {
"description": "The course offering associated with this activity.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"termId": {
"description": "The term associated with this activity.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"instructorIds": {
"description": "The instructors.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
}
},
"minimumSeats": {
"description": "The minimum number of students this activity can have.",
"type": "integer",
"minimum": 1
},
"maximumSeats": {
"description": "The maximum number of students this activity can accommodate.",
"type": "integer",
"minimum": 1
},
"contact": {
"description": "Tests if this is a contact activity.",
"type": "boolean"
},
"totalTargetContactTime": {
"description": "The total contact time for this activity.",
"type": "string",
"format": "duration"
},
"totalTargetIndividualEffort": {
"description": "The total individual time required for this activity.",
"type": "string",
"format": "duration"
},
"recurringWeekly": {
"description": "Tests if this activity is recurring.",
"type": "boolean"
},
"weeklyEffort": {
"description": "The time required for this recurring effort on a weekly basis.",
"type": "string",
"format": "duration"
},
"weeklyContactTime": {
"description": "The weekly contact time for ths activity.",
"type": "string",
"format": "duration"
},
"weeklyIndividualEffort": {
"description": "The weekly individual time for ths activity.",
"type": "string",
"format": "duration"
}
}
}
Example:
{
"displayName": "Display Name of this Activity",
"description": "The description of this Activity",
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"endReasonId": "process.State:8861@base.url",
"instructorIds": [ "resource.Resource:2691@base.url", "..." ],
"minimumSeats": 1,
"maximumSeats": 42,
"totalTargetEffort": "P3DT3H",
"contact": true,
"totalTargetContactTime": "P3DT3H",
"totalTargetIndividualEffort": "P3DT3H",
"recurringWeekly": true,
"weeklyEffort": "PT4H",
"weeklyContactTime": "PT4H",
"weeklyIndividualEffort": "PT4H"
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The activity has been updated" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "activity not found" }
delete /activities/{activityId}
Delete a given activity.
URI Parameters
- activityId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The activity has been deleted" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "activity not found" }
Entity representing a activity form metadata for update
Get form metadata for updating an existing activity.
get /activities/{activityId}/metadata
Get form metadata for updating an existing activity.
URI Parameters
- activityId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "Activity",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this activity, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this activity, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this activity for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Activity.Activity:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this activity",
"linked": false
},
"description": {
"description": "The description of this activity.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Activity.Activity:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this activity",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this activity. Default type set by system unless specified in query parameter on initial post.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this activity. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"startDate": {
"description": "The starting date of this activity.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Activity.Activity:startDate@base.url",
"existingValue": "2020-10-03T08:00:00.000Z",
"elementLabel": "Start Date",
"instructions": "Enter a starting date for this activity",
"linked": false
},
"endDate": {
"description": "The ending date of this activity.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Activity.Activity:endDate@base.url",
"existingValue": "2020-12-18T17:00:00.000Z",
"elementLabel": "End Date",
"instructions": "Enter an ending date for this activity",
"linked": false
},
"endReasonId": {
"description": "The reason this activity ended. A process/State object.",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Activity.Activity:endReason@base.url",
"existingValue": "process.State:1860@base.url",
"elementLabel": "End Reason",
"instructions": "Select the reason this activity ended",
"linked": false
},
"instructorIds": {
"description": "The instructors.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id",
"pattern": "",
"enum": []
},
"read-only": false,
"elementId": "course.Activity:instructors@dxtera.org",
"existingValue": [],
"elementLabel": "Instructors",
"instructions": "Enter Ids for instructors of this activity.",
"linked": false
},
"minimumSeats": {
"description": "The minimum number of students this activity can have.",
"type": "integer",
"minimum": 1,
"maximum": null,
"units": "",
"default": null,
"enum": [],
"elementId": "course.Activity:minimumSeats@dxtera.org",
"existingValue": 42,
"elementLabel": "Minimum Seats",
"instructions": "Enter the minimum seats of this activity.",
"linked": false
},
"maximumSeats": {
"description": "The maximum number of students this activity can accommodate.",
"type": "integer",
"minimum": 1,
"maximum": null,
"units": "",
"default": null,
"enum": [],
"elementId": "course.Activity:maximumSeats@dxtera.org",
"existingValue": 42,
"elementLabel": "Maximum Seats",
"instructions": "Enter the maximum seats of this activity.",
"linked": false
},
"contact": {
"description": "Tests if this is a contact activity.",
"type": "boolean",
"elementId": "course.Activity:contact@dxtera.org",
"existingValue": false,
"elementLabel": "Contact",
"instructions": "Enter true or false.",
"linked": false
},
"totalTargetContactTime": {
"description": "The total contact time for this activity.",
"type": "string",
"format": "duration",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.Activity:totalTargetContactTime@dxtera.org",
"existingValue": "",
"elementLabel": "Total Target Contact Time",
"instructions": "Enter the total target contact time of this activity.",
"linked": false
},
"totalTargetIndividualEffort": {
"description": "The total individual time required for this activity.",
"type": "string",
"format": "duration",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.Activity:totalTargetIndividualEffort@dxtera.org",
"existingValue": "",
"elementLabel": "Total Target Individual Effort",
"instructions": "Enter the total target individual effort of this activity.",
"linked": false
},
"recurringWeekly": {
"description": "Tests if this activity is recurring.",
"type": "boolean",
"elementId": "course.Activity:recurringWeekly@dxtera.org",
"existingValue": false,
"elementLabel": "Recurring Weekly",
"instructions": "Enter true or false.",
"linked": false
},
"weeklyEffort": {
"description": "The time required for this recurring effort on a weekly basis.",
"type": "string",
"format": "duration",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.Activity:weeklyEffort@dxtera.org",
"existingValue": "",
"elementLabel": "Weekly Effort",
"instructions": "Enter the weekly effort of this activity.",
"linked": false
},
"weeklyContactTime": {
"description": "The weekly contact time for ths activity.",
"type": "string",
"format": "duration",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.Activity:weeklyContactTime@dxtera.org",
"existingValue": "",
"elementLabel": "Weekly Contact Time",
"instructions": "Enter the weekly contact time of this activity.",
"linked": false
},
"weeklyIndividualEffort": {
"description": "The weekly individual time for ths activity.",
"type": "string",
"format": "duration",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.Activity:weeklyIndividualEffort@dxtera.org",
"existingValue": "",
"elementLabel": "Weekly Individual Effort",
"instructions": "Enter the weekly individual effort of this activity.",
"linked": false
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "activity not found" }
Administer activity schedules.
Add schedule to the given activity.
Remove the given schedule the activity.
put /activities/{activityId}/schedules/{scheduleId}
Add schedule to the given activity.
URI Parameters
- activityId: required(string)
- scheduleId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The schedule has been added to the activity" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{ "message": "activity not found" }
delete /activities/{activityId}/schedules/{scheduleId}
Remove the given schedule the activity.
URI Parameters
- activityId: required(string)
- scheduleId: required(string)
Administer activity specific meeting times
Add a specific meeting time to the given activity.
Remove meeting times within the specified date range
put /activities/{activityId}/meeting-times
Add a specific meeting time to the given activity.
URI Parameters
- activityId: required(string)
Query Parameters
- time: required(string)
A time.
- locationId: required(string)
A location Id.
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The meetingTime has been added to the activity" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{ "message": "activity not found" }
delete /activities/{activityId}/meeting-times
Remove meeting times within the specified date range
URI Parameters
- activityId: required(string)
Query Parameters
- from: required(string)
Start date inclusive.
- to: required(string)
End date inclusive.
Administer activity blackout dates.
Add a blackout to the given activity that blocks events in the series.
Clear any specific meeting times between the given dates inclusive
put /activities/{activityId}/blackouts
Add a blackout to the given activity that blocks events in the series.
URI Parameters
- activityId: required(string)
Query Parameters
- from: required(string)
Start date inclusive.
- to: required(string)
End date inclusive.
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The blackout has been added to the activity" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{ "message": "activity not found" }
delete /activities/{activityId}/blackouts
Clear any specific meeting times between the given dates inclusive
URI Parameters
- activityId: required(string)
Query Parameters
- from: required(string)
Start date inclusive.
- to: required(string)
End date inclusive.
/terms
Collection of terms in a system, federation of systems, or in a default courseCatalog.
Get all terms in the system or default courseCatalog.
Create a new term in the default courseCatalog.
get /terms
Get all terms in the system or default courseCatalog.
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- genusTypeId: (string)
The id string to match a genusType
Example:
type.Type%3AexampleTermType%40dxtera.org
- parentGenusTypeId: (string)
The id string to match a parent genusType
Example:
type.Type%3AparentTypeExampleTermType%40dxtera.org
- recordTypeId: (string)
The id string to match a recordType
Example:
type.Type%3AexampleTermType%40campusapi.org
- classesDate: (string)
query string to match date-time within classes date range.
Example:
2020-10-03
- courseCatalogId: (string)
The id string to match a courseCatalog
Example:
course.CourseCatalog%3A8374%40base.url
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "course.Term:7135@base.url",
"uri": "http://base.url/open/campusapi/course/term/course.Term%3A7135%40base.url",
"displayName": "Display Name of this Term",
"description": "The description of this Term",
"genusTypeId": "type.Type:defaultTermType@base.url",
"recordTypeIds": [ "type.Type:exampleTermRecordType@campusapi.org", "..."],
"displayLabel": "This is the DisplayLabel",
"openDate": "2020-10-03T08:00:00.000Z",
"registrationStart": "2020-10-03T08:00:00.000Z",
"registrationEnd": "2020-12-18T17:00:00.000Z",
"classesStart": "2020-10-03T08:00:00.000Z",
"classesEnd": "2020-12-18T17:00:00.000Z",
"addDate": "2020-10-03T08:00:00.000Z",
"dropDate": "2020-12-18T17:00:00.000Z",
"finalExamStart": "2020-10-03T08:00:00.000Z",
"finalExamEnd": "2020-12-18T17:00:00.000Z",
"closeDate": "2020-12-18T17:00:00.000Z",
"gradingStart": "2020-12-10T08:00:00.000Z",
"gradingEnd": "2020-12-18T17:00:00.000Z",
"parentTermIds": [ "course.Term:7648@demo.dxtera.org", "..." ],
"childTermIds": [ "course.Term:72348@demo.dxtera.org", "..." ]
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
post /terms
Create a new term in the default courseCatalog.
Query Parameters
- genusType: (string)
specify a particular term type to create
Example:
type.Type%3AexampleTermType%40dxtera.org
- recordType: (array of )
specify support for one or more term record types
Example:
[ "type.Type%3AexampleTermRecordType%40campusapi.org", "..." ]
- courseCatalogId: (string)
specify in which course-catalog to create this term
Example:
course.CourseCatalog%3A8374%40base.url
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Term",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this term, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this term, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this term for display.",
"type": "string"
},
"description": {
"description": "The description of this term.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this term. Default type set by system unless specified in query parameter.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this term. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"displayLabel": {
"description": "A display label for this term which may be less formal than the display name.",
"type": "string"
},
"openDate": {
"description": "The open date when published offerings are finalized.",
"type": "string",
"format": "date-time"
},
"registrationStart": {
"description": "The start of the registration period.",
"type": "string",
"format": "date-time"
},
"registrationEnd": {
"description": "The end of the registration period.",
"type": "string",
"format": "date-time"
},
"classesStart": {
"description": "The start of classes.",
"type": "string",
"format": "date-time"
},
"classesEnd": {
"description": "The end of classes.",
"type": "string",
"format": "date-time"
},
"addDate": {
"description": "The add/drop date.",
"type": "string",
"format": "date-time"
},
"dropDate": {
"description": "The add/drop date.",
"type": "string",
"format": "date-time"
},
"finalExamStart": {
"description": "The start of the final exam period.",
"type": "string",
"format": "date-time"
},
"finalExamEnd": {
"description": "The end of the final exam period.",
"type": "string",
"format": "date-time"
},
"closeDate": {
"description": "The close date when results of course offerings are finalized.",
"type": "string",
"format": "date-time"
},
"gradingStart": {
"description": "The start of the grading period.",
"type": "string",
"format": "date-time"
},
"gradingEnd": {
"description": "The end of the grading period.",
"type": "string",
"format": "date-time"
}
}
}
Example:
{
"displayName": "Display Name of this Term",
"description": "The description of this Term",
"displayLabel": "This is the DisplayLabel",
"openDate": "2020-10-03T08:00:00.000Z",
"registrationStart": "2020-10-03T08:00:00.000Z",
"registrationEnd": "2020-12-18T17:00:00.000Z",
"classesStart": "2020-10-03T08:00:00.000Z",
"classesEnd": "2020-12-18T17:00:00.000Z",
"addDate": "2020-10-03T08:00:00.000Z",
"dropDate": "2020-12-18T17:00:00.000Z",
"finalExamStart": "2020-10-03T08:00:00.000Z",
"finalExamEnd": "2020-12-18T17:00:00.000Z",
"closeDate": "2020-12-18T17:00:00.000Z"
}
Entity representing a term form metadata.
Get form metadata for creating a new term.
get /terms/metadata
Get form metadata for creating a new term.
Query Parameters
- genusType: (string)
specify a particular term type to create
Example:
type.Type%3AexampleTermType%40dxtera.org
- recordType: (array of )
specify support for one or more term record types
Example:
[ "type.Type%3AexampleTermRecordType%40campusapi.org", "..." ]
- courseCatalogId: (string)
specify in which course-catalog to create this term
Example:
course.CourseCatalog%3A8374%40base.url
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "Term",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this term, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this term, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this term for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Term.Term:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this term",
"linked": false
},
"description": {
"description": "The description of this term.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Term.Term:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this term",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this term. Default type set by system unless specified in query parameter on initial post.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this term. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"displayLabel": {
"description": "A display label for this term which may be less formal than the display name.",
"type": "string",
"read-only": false,
"minLength": null,
"maxLength": null,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.Term:displayLabel@dxtera.org",
"existingValue": "The existing display label",
"elementLabel": "Display Label",
"instructions": "Enter a display label for this term.",
"linked": false
},
"openDate": {
"description": "The open date when published offerings are finalized.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.Term:openDate@dxtera.org",
"existingValue": "",
"elementLabel": "Open Date",
"instructions": "Enter the open date of this term.",
"linked": false
},
"registrationStart": {
"description": "The start of the registration period.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.Term:registrationStart@dxtera.org",
"existingValue": "",
"elementLabel": "Registration Start",
"instructions": "Enter the registration start of this term.",
"linked": false
},
"registrationEnd": {
"description": "The end of the registration period.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.Term:registrationEnd@dxtera.org",
"existingValue": "",
"elementLabel": "Registration End",
"instructions": "Enter the registration end of this term.",
"linked": false
},
"classesStart": {
"description": "The start of classes.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.Term:classesStart@dxtera.org",
"existingValue": "",
"elementLabel": "Classes Start",
"instructions": "Enter the classes start of this term.",
"linked": false
},
"classesEnd": {
"description": "The end of classes.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.Term:classesEnd@dxtera.org",
"existingValue": "",
"elementLabel": "Classes End",
"instructions": "Enter the classes end of this term.",
"linked": false
},
"addDate": {
"description": "The add/drop date.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.Term:addDate@dxtera.org",
"existingValue": "",
"elementLabel": "Add Date",
"instructions": "Enter the add date of this term.",
"linked": false
},
"dropDate": {
"description": "The add/drop date.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.Term:dropDate@dxtera.org",
"existingValue": "",
"elementLabel": "Drop Date",
"instructions": "Enter the drop date of this term.",
"linked": false
},
"finalExamStart": {
"description": "The start of the final exam period.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.Term:finalExamStart@dxtera.org",
"existingValue": "",
"elementLabel": "Final Exam Start",
"instructions": "Enter the final exam start of this term.",
"linked": false
},
"finalExamEnd": {
"description": "The end of the final exam period.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.Term:finalExamEnd@dxtera.org",
"existingValue": "",
"elementLabel": "Final Exam End",
"instructions": "Enter the final exam end of this term.",
"linked": false
},
"closeDate": {
"description": "The close date when results of course offerings are finalized.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.Term:closeDate@dxtera.org",
"existingValue": "",
"elementLabel": "Close Date",
"instructions": "Enter the close date of this term.",
"linked": false
},
"gradingStart": {
"description": "The start of the grading period.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.Term:gradingStart@dxtera.org",
"existingValue": "",
"elementLabel": "Grading Start",
"instructions": "Enter the grading start of this term.",
"linked": false
},
"gradingEnd": {
"description": "The end of the grading period.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.Term:gradingEnd@dxtera.org",
"existingValue": "",
"elementLabel": "Grading End",
"instructions": "Enter the grading end of this term.",
"linked": false
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
The root terms in the term hierarchy. A node with no parents is an orphan. While all term Ids are known to the hierarchy, an orphan does not appear in the hierarchy unless explicitly added as a root node or child of another node.
Get all root root-terms
get /terms/root-terms
Get all root root-terms
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "course.Term:7135@base.url",
"uri": "http://base.url/open/campusapi/course/term/course.Term%3A7135%40base.url",
"displayName": "Display Name of this Term",
"description": "The description of this Term",
"genusTypeId": "type.Type:defaultTermType@base.url",
"recordTypeIds": [ "type.Type:exampleTermRecordType@campusapi.org", "..."],
"displayLabel": "This is the DisplayLabel",
"openDate": "2020-10-03T08:00:00.000Z",
"registrationStart": "2020-10-03T08:00:00.000Z",
"registrationEnd": "2020-12-18T17:00:00.000Z",
"classesStart": "2020-10-03T08:00:00.000Z",
"classesEnd": "2020-12-18T17:00:00.000Z",
"addDate": "2020-10-03T08:00:00.000Z",
"dropDate": "2020-12-18T17:00:00.000Z",
"finalExamStart": "2020-10-03T08:00:00.000Z",
"finalExamEnd": "2020-12-18T17:00:00.000Z",
"closeDate": "2020-12-18T17:00:00.000Z",
"gradingStart": "2020-12-10T08:00:00.000Z",
"gradingEnd": "2020-12-18T17:00:00.000Z",
"parentTermIds": [ "course.Term:7648@demo.dxtera.org", "..." ],
"childTermIds": [ "course.Term:72348@demo.dxtera.org", "..." ]
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Add the given term as a root in the term hierarchy
Remove the given term as a root in the term hierarchy.
put /terms/root-terms/{termId}
Add the given term as a root in the term hierarchy
URI Parameters
- termId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The term has been added as a root" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{ "message": "term not found" }
delete /terms/root-terms/{termId}
Remove the given term as a root in the term hierarchy.
URI Parameters
- termId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The term has been removed as a root from the hierarchy" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{ "message": "term not found" }
Entity representing a term
Get a term given its id.
Update a given term.
Delete a given term.
get /terms/{termId}
Get a term given its id.
URI Parameters
- termId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"id": "course.Term:7135@base.url",
"uri": "http://base.url/open/campusapi/course/term/course.Term%3A7135%40base.url",
"displayName": "Display Name of this Term",
"description": "The description of this Term",
"genusTypeId": "type.Type:defaultTermType@base.url",
"recordTypeIds": [ "type.Type:exampleTermRecordType@campusapi.org", "..."],
"displayLabel": "This is the DisplayLabel",
"openDate": "2020-10-03T08:00:00.000Z",
"registrationStart": "2020-10-03T08:00:00.000Z",
"registrationEnd": "2020-12-18T17:00:00.000Z",
"classesStart": "2020-10-03T08:00:00.000Z",
"classesEnd": "2020-12-18T17:00:00.000Z",
"addDate": "2020-10-03T08:00:00.000Z",
"dropDate": "2020-12-18T17:00:00.000Z",
"finalExamStart": "2020-10-03T08:00:00.000Z",
"finalExamEnd": "2020-12-18T17:00:00.000Z",
"closeDate": "2020-12-18T17:00:00.000Z",
"gradingStart": "2020-12-10T08:00:00.000Z",
"gradingEnd": "2020-12-18T17:00:00.000Z",
"parentTermIds": [ "course.Term:7648@demo.dxtera.org", "..." ],
"childTermIds": [ "course.Term:72348@demo.dxtera.org", "..." ]
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "term not found" }
put /terms/{termId}
Update a given term.
URI Parameters
- termId: required(string)
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Term",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this term, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this term, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this term for display.",
"type": "string"
},
"description": {
"description": "The description of this term.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this term. Default type set by system unless specified in query parameter.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this term. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"displayLabel": {
"description": "A display label for this term which may be less formal than the display name.",
"type": "string"
},
"openDate": {
"description": "The open date when published offerings are finalized.",
"type": "string",
"format": "date-time"
},
"registrationStart": {
"description": "The start of the registration period.",
"type": "string",
"format": "date-time"
},
"registrationEnd": {
"description": "The end of the registration period.",
"type": "string",
"format": "date-time"
},
"classesStart": {
"description": "The start of classes.",
"type": "string",
"format": "date-time"
},
"classesEnd": {
"description": "The end of classes.",
"type": "string",
"format": "date-time"
},
"addDate": {
"description": "The add/drop date.",
"type": "string",
"format": "date-time"
},
"dropDate": {
"description": "The add/drop date.",
"type": "string",
"format": "date-time"
},
"finalExamStart": {
"description": "The start of the final exam period.",
"type": "string",
"format": "date-time"
},
"finalExamEnd": {
"description": "The end of the final exam period.",
"type": "string",
"format": "date-time"
},
"closeDate": {
"description": "The close date when results of course offerings are finalized.",
"type": "string",
"format": "date-time"
},
"gradingStart": {
"description": "The start of the grading period.",
"type": "string",
"format": "date-time"
},
"gradingEnd": {
"description": "The end of the grading period.",
"type": "string",
"format": "date-time"
}
}
}
Example:
{
"displayName": "Display Name of this Term",
"description": "The description of this Term",
"displayLabel": "This is the DisplayLabel",
"openDate": "2020-10-03T08:00:00.000Z",
"registrationStart": "2020-10-03T08:00:00.000Z",
"registrationEnd": "2020-12-18T17:00:00.000Z",
"classesStart": "2020-10-03T08:00:00.000Z",
"classesEnd": "2020-12-18T17:00:00.000Z",
"addDate": "2020-10-03T08:00:00.000Z",
"dropDate": "2020-12-18T17:00:00.000Z",
"finalExamStart": "2020-10-03T08:00:00.000Z",
"finalExamEnd": "2020-12-18T17:00:00.000Z",
"closeDate": "2020-12-18T17:00:00.000Z"
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The term has been updated" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "term not found" }
delete /terms/{termId}
Delete a given term.
URI Parameters
- termId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The term has been deleted" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "term not found" }
Entity representing a term form metadata for update
Get form metadata for updating an existing term.
get /terms/{termId}/metadata
Get form metadata for updating an existing term.
URI Parameters
- termId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "Term",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this term, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this term, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this term for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Term.Term:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this term",
"linked": false
},
"description": {
"description": "The description of this term.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Term.Term:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this term",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this term. Default type set by system unless specified in query parameter on initial post.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this term. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"displayLabel": {
"description": "A display label for this term which may be less formal than the display name.",
"type": "string",
"read-only": false,
"minLength": null,
"maxLength": null,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.Term:displayLabel@dxtera.org",
"existingValue": "The existing display label",
"elementLabel": "Display Label",
"instructions": "Enter a display label for this term.",
"linked": false
},
"openDate": {
"description": "The open date when published offerings are finalized.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.Term:openDate@dxtera.org",
"existingValue": "",
"elementLabel": "Open Date",
"instructions": "Enter the open date of this term.",
"linked": false
},
"registrationStart": {
"description": "The start of the registration period.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.Term:registrationStart@dxtera.org",
"existingValue": "",
"elementLabel": "Registration Start",
"instructions": "Enter the registration start of this term.",
"linked": false
},
"registrationEnd": {
"description": "The end of the registration period.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.Term:registrationEnd@dxtera.org",
"existingValue": "",
"elementLabel": "Registration End",
"instructions": "Enter the registration end of this term.",
"linked": false
},
"classesStart": {
"description": "The start of classes.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.Term:classesStart@dxtera.org",
"existingValue": "",
"elementLabel": "Classes Start",
"instructions": "Enter the classes start of this term.",
"linked": false
},
"classesEnd": {
"description": "The end of classes.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.Term:classesEnd@dxtera.org",
"existingValue": "",
"elementLabel": "Classes End",
"instructions": "Enter the classes end of this term.",
"linked": false
},
"addDate": {
"description": "The add/drop date.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.Term:addDate@dxtera.org",
"existingValue": "",
"elementLabel": "Add Date",
"instructions": "Enter the add date of this term.",
"linked": false
},
"dropDate": {
"description": "The add/drop date.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.Term:dropDate@dxtera.org",
"existingValue": "",
"elementLabel": "Drop Date",
"instructions": "Enter the drop date of this term.",
"linked": false
},
"finalExamStart": {
"description": "The start of the final exam period.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.Term:finalExamStart@dxtera.org",
"existingValue": "",
"elementLabel": "Final Exam Start",
"instructions": "Enter the final exam start of this term.",
"linked": false
},
"finalExamEnd": {
"description": "The end of the final exam period.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.Term:finalExamEnd@dxtera.org",
"existingValue": "",
"elementLabel": "Final Exam End",
"instructions": "Enter the final exam end of this term.",
"linked": false
},
"closeDate": {
"description": "The close date when results of course offerings are finalized.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.Term:closeDate@dxtera.org",
"existingValue": "",
"elementLabel": "Close Date",
"instructions": "Enter the close date of this term.",
"linked": false
},
"gradingStart": {
"description": "The start of the grading period.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.Term:gradingStart@dxtera.org",
"existingValue": "",
"elementLabel": "Grading Start",
"instructions": "Enter the grading start of this term.",
"linked": false
},
"gradingEnd": {
"description": "The end of the grading period.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.Term:gradingEnd@dxtera.org",
"existingValue": "",
"elementLabel": "Grading End",
"instructions": "Enter the grading end of this term.",
"linked": false
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "term not found" }
Get child terms for the given term in the hierarchy.
get /terms/{termId}/children
Get child terms for the given term in the hierarchy.
URI Parameters
- termId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "course.Term:7135@base.url",
"uri": "http://base.url/open/campusapi/course/term/course.Term%3A7135%40base.url",
"displayName": "Display Name of this Term",
"description": "The description of this Term",
"genusTypeId": "type.Type:defaultTermType@base.url",
"recordTypeIds": [ "type.Type:exampleTermRecordType@campusapi.org", "..."],
"displayLabel": "This is the DisplayLabel",
"openDate": "2020-10-03T08:00:00.000Z",
"registrationStart": "2020-10-03T08:00:00.000Z",
"registrationEnd": "2020-12-18T17:00:00.000Z",
"classesStart": "2020-10-03T08:00:00.000Z",
"classesEnd": "2020-12-18T17:00:00.000Z",
"addDate": "2020-10-03T08:00:00.000Z",
"dropDate": "2020-12-18T17:00:00.000Z",
"finalExamStart": "2020-10-03T08:00:00.000Z",
"finalExamEnd": "2020-12-18T17:00:00.000Z",
"closeDate": "2020-12-18T17:00:00.000Z",
"gradingStart": "2020-12-10T08:00:00.000Z",
"gradingEnd": "2020-12-18T17:00:00.000Z",
"parentTermIds": [ "course.Term:7648@demo.dxtera.org", "..." ],
"childTermIds": [ "course.Term:72348@demo.dxtera.org", "..." ]
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Add term as child of the given term in the hierarchy.
Remove the given term as a child of the given term in the hierarchy.
put /terms/{termId}/children/{childId}
Add term as child of the given term in the hierarchy.
URI Parameters
- termId: required(string)
- childId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The child term has been added to the hierarchy" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{ "message": "term not found" }
delete /terms/{termId}/children/{childId}
Remove the given term as a child of the given term in the hierarchy.
URI Parameters
- termId: required(string)
- childId: required(string)
Get parent terms for the given term in the hierarchy.
get /terms/{termId}/parents
Get parent terms for the given term in the hierarchy.
URI Parameters
- termId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "course.Term:7135@base.url",
"uri": "http://base.url/open/campusapi/course/term/course.Term%3A7135%40base.url",
"displayName": "Display Name of this Term",
"description": "The description of this Term",
"genusTypeId": "type.Type:defaultTermType@base.url",
"recordTypeIds": [ "type.Type:exampleTermRecordType@campusapi.org", "..."],
"displayLabel": "This is the DisplayLabel",
"openDate": "2020-10-03T08:00:00.000Z",
"registrationStart": "2020-10-03T08:00:00.000Z",
"registrationEnd": "2020-12-18T17:00:00.000Z",
"classesStart": "2020-10-03T08:00:00.000Z",
"classesEnd": "2020-12-18T17:00:00.000Z",
"addDate": "2020-10-03T08:00:00.000Z",
"dropDate": "2020-12-18T17:00:00.000Z",
"finalExamStart": "2020-10-03T08:00:00.000Z",
"finalExamEnd": "2020-12-18T17:00:00.000Z",
"closeDate": "2020-12-18T17:00:00.000Z",
"gradingStart": "2020-12-10T08:00:00.000Z",
"gradingEnd": "2020-12-18T17:00:00.000Z",
"parentTermIds": [ "course.Term:7648@demo.dxtera.org", "..." ],
"childTermIds": [ "course.Term:72348@demo.dxtera.org", "..." ]
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
/course-catalogs
Collection of course-catalogs in a system or federation of systems.
Get all course-catalogs.
Create a new course-catalog.
get /course-catalogs
Get all course-catalogs.
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- genusTypeId: (string)
The id string to match a genusType
Example:
type.Type%3AexampleCourseCatalogType%40dxtera.org
- parentGenusTypeId: (string)
The id string to match a parent genusType
Example:
type.Type%3AparentTypeExampleCourseCatalogType%40dxtera.org
- recordTypeId: (string)
The id string to match a recordType
Example:
type.Type%3AexampleCourseCatalogType%40campusapi.org
- providerId: (string)
Id string to match provider.
Example:
resource.Resource%3A3007%40demo.dxtera.org
- courseId: (string)
Get course-catalogs mapped to this course.
Example:
course.Course%3A468%40demo.dxtera.org
- activityUnitId: (string)
Get course-catalogs mapped to this activity-unit.
Example:
course.ActivityUnit%3A1014%40demo.dxtera.org
- courseOfferingId: (string)
Get course-catalogs mapped to this course-offering.
Example:
course.CourseOffering%3A1170%40demo.dxtera.org
- activityId: (string)
Get course-catalogs mapped to this activity.
Example:
course.Activity%3A624%40demo.dxtera.org
- termId: (string)
Get course-catalogs mapped to this term.
Example:
course.Term%3A312%40demo.dxtera.org
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "course.CourseCatalog:2322@base.url",
"uri": "http://base.url/open/campusapi/course/courseCatalog/course.CourseCatalog%3A2322%40base.url",
"displayName": "Display Name of this CourseCatalog",
"description": "The description of this CourseCatalog",
"genusTypeId": "type.Type:defaultCourseCatalogType@base.url",
"recordTypeIds": [ "type.Type:exampleCourseCatalogRecordType@campusapi.org", "..."],
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:CourseCatalog@base.url",
"license": "The license that applies to this CourseCatalog"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
post /course-catalogs
Create a new course-catalog.
Query Parameters
- genusType: (string)
specify a particular courseCatalog type to create
Example:
type.Type%3AexampleCourseCatalogType%40dxtera.org
- recordType: (array of )
specify support for one or more courseCatalog record types
Example:
[ "type.Type%3AexampleCourseCatalogRecordType%40campusapi.org", "..." ]
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "CourseCatalog",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this course catalog, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this course catalog, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this course catalog for display.",
"type": "string"
},
"description": {
"description": "The description of this course catalog.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this course catalog. Default type set by system unless specified in query parameter.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this course catalog. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"providerId": {
"description": "The provider of this course catalog.",
"type": "string",
"format": "osid-id"
},
"brandingIds": {
"description": "The branding of this course catalog. A collection of Assets.",
"type": "array",
"items" : {
"type": "string",
"format": "osid-id"
}
},
"license": {
"description": "The licensing that applies to this course catalog.",
"type": "string"
}
}
}
Example:
{
"displayName": "Display Name of this CourseCatalog",
"description": "The description of this CourseCatalog",
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:CourseCatalog@base.url",
"license": "The license that applies to this CourseCatalog"
}
Entity representing a courseCatalog form metadata.
Get form metadata for creating a new courseCatalog.
get /course-catalogs/metadata
Get form metadata for creating a new courseCatalog.
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "CourseCatalog",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this course catalog, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this course catalog, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this course catalog for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "CourseCatalog.CourseCatalog:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this course catalog",
"linked": false
},
"description": {
"description": "The description of this course catalog.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "CourseCatalog.CourseCatalog:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this course catalog",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this course catalog. Default type set by system unless specified in query parameter on initial post.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this course catalog. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"providerId": {
"description": "The provider of this course catalog.",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "CourseCatalog.CourseCatalog:provider@base.url",
"existingValue": "",
"elementLabel": "Provider",
"instructions": "Enter the provider of this course catalog",
"linked": false
},
"brandingIds": {
"description": "The branding of this course catalog. A list of Assets.",
"type": "array",
"items" : {
"type": "string",
"format": "osid-id",
"pattern": "",
"enum": []
},
"read-only": false,
"default": [],
"elementId": "CourseCatalog.CourseCatalog:branding@base.url",
"existingValue": "",
"elementLabel": "Branding",
"instructions": "Enter the branding images for this course catalog",
"linked": false
},
"license": {
"description": "The licensing that applies to this course catalog.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "CourseCatalog.CourseCatalog:license@base.url",
"existingValue": "The Existing License",
"elementLabel": "License",
"instructions": "Include a license for this course catalog",
"linked": false
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
The root courseCatalogs in the courseCatalog hierarchy. A node with no parents is an orphan. While all courseCatalog Ids are known to the hierarchy, an orphan does not appear in the hierarchy unless explicitly added as a root node or child of another node.
Get all root root-course-catalog
get /course-catalogs/root-course-catalog
Get all root root-course-catalog
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "course.CourseCatalog:2322@base.url",
"uri": "http://base.url/open/campusapi/course/courseCatalog/course.CourseCatalog%3A2322%40base.url",
"displayName": "Display Name of this CourseCatalog",
"description": "The description of this CourseCatalog",
"genusTypeId": "type.Type:defaultCourseCatalogType@base.url",
"recordTypeIds": [ "type.Type:exampleCourseCatalogRecordType@campusapi.org", "..."],
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:CourseCatalog@base.url",
"license": "The license that applies to this CourseCatalog"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Entity representing a course-catalog
Get a course-catalog given its id.
Update a given course-catalog.
Delete a given course-catalog.
get /course-catalogs/{courseCatalogId}
Get a course-catalog given its id.
URI Parameters
- courseCatalogId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"id": "course.CourseCatalog:2322@base.url",
"uri": "http://base.url/open/campusapi/course/courseCatalog/course.CourseCatalog%3A2322%40base.url",
"displayName": "Display Name of this CourseCatalog",
"description": "The description of this CourseCatalog",
"genusTypeId": "type.Type:defaultCourseCatalogType@base.url",
"recordTypeIds": [ "type.Type:exampleCourseCatalogRecordType@campusapi.org", "..."],
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:CourseCatalog@base.url",
"license": "The license that applies to this CourseCatalog"
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "course-catalog not found" }
put /course-catalogs/{courseCatalogId}
Update a given course-catalog.
URI Parameters
- courseCatalogId: required(string)
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "CourseCatalog",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this course catalog, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this course catalog, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this course catalog for display.",
"type": "string"
},
"description": {
"description": "The description of this course catalog.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this course catalog. Default type set by system unless specified in query parameter.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this course catalog. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"providerId": {
"description": "The provider of this course catalog.",
"type": "string",
"format": "osid-id"
},
"brandingIds": {
"description": "The branding of this course catalog. A collection of Assets.",
"type": "array",
"items" : {
"type": "string",
"format": "osid-id"
}
},
"license": {
"description": "The licensing that applies to this course catalog.",
"type": "string"
}
}
}
Example:
{
"displayName": "Display Name of this CourseCatalog",
"description": "The description of this CourseCatalog",
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:CourseCatalog@base.url",
"license": "The license that applies to this CourseCatalog"
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The course-catalog has been updated" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "course-catalog not found" }
delete /course-catalogs/{courseCatalogId}
Delete a given course-catalog.
URI Parameters
- courseCatalogId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The course-catalog has been deleted" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "course-catalog not found" }
Entity representing a courseCatalog form metadata for update
Get form metadata for updating an existing courseCatalog.
get /course-catalogs/{courseCatalogId}/metadata
Get form metadata for updating an existing courseCatalog.
URI Parameters
- courseCatalogId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "CourseCatalog",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this course catalog, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this course catalog, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this course catalog for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "CourseCatalog.CourseCatalog:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this course catalog",
"linked": false
},
"description": {
"description": "The description of this course catalog.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "CourseCatalog.CourseCatalog:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this course catalog",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this course catalog. Default type set by system unless specified in query parameter on initial post.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this course catalog. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"providerId": {
"description": "The provider of this course catalog.",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "CourseCatalog.CourseCatalog:provider@base.url",
"existingValue": "",
"elementLabel": "Provider",
"instructions": "Enter the provider of this course catalog",
"linked": false
},
"brandingIds": {
"description": "The branding of this course catalog. A list of Assets.",
"type": "array",
"items" : {
"type": "string",
"format": "osid-id",
"pattern": "",
"enum": []
},
"read-only": false,
"default": [],
"elementId": "CourseCatalog.CourseCatalog:branding@base.url",
"existingValue": "",
"elementLabel": "Branding",
"instructions": "Enter the branding images for this course catalog",
"linked": false
},
"license": {
"description": "The licensing that applies to this course catalog.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "CourseCatalog.CourseCatalog:license@base.url",
"existingValue": "The Existing License",
"elementLabel": "License",
"instructions": "Include a license for this course catalog",
"linked": false
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "courseCatalog not found" }
Get child courseCatalogs for the given courseCatalog in the hierarchy.
get /course-catalogs/{courseCatalogId}/children
Get child courseCatalogs for the given courseCatalog in the hierarchy.
URI Parameters
- courseCatalogId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "course.CourseCatalog:2322@base.url",
"uri": "http://base.url/open/campusapi/course/courseCatalog/course.CourseCatalog%3A2322%40base.url",
"displayName": "Display Name of this CourseCatalog",
"description": "The description of this CourseCatalog",
"genusTypeId": "type.Type:defaultCourseCatalogType@base.url",
"recordTypeIds": [ "type.Type:exampleCourseCatalogRecordType@campusapi.org", "..."],
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:CourseCatalog@base.url",
"license": "The license that applies to this CourseCatalog"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Add courseCatalog as child of the given courseCatalog in the hierarchy.
Remove the given courseCatalog as a child of the given courseCatalog in the hierarchy.
put /course-catalogs/{courseCatalogId}/children/{childId}
Add courseCatalog as child of the given courseCatalog in the hierarchy.
URI Parameters
- courseCatalogId: required(string)
- childId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The child courseCatalog has been added to the hierarchy" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{ "message": "courseCatalog not found" }
delete /course-catalogs/{courseCatalogId}/children/{childId}
Remove the given courseCatalog as a child of the given courseCatalog in the hierarchy.
URI Parameters
- courseCatalogId: required(string)
- childId: required(string)
Get parent courseCatalogs for the given courseCatalog in the hierarchy.
get /course-catalogs/{courseCatalogId}/parents
Get parent courseCatalogs for the given courseCatalog in the hierarchy.
URI Parameters
- courseCatalogId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "course.CourseCatalog:2322@base.url",
"uri": "http://base.url/open/campusapi/course/courseCatalog/course.CourseCatalog%3A2322%40base.url",
"displayName": "Display Name of this CourseCatalog",
"description": "The description of this CourseCatalog",
"genusTypeId": "type.Type:defaultCourseCatalogType@base.url",
"recordTypeIds": [ "type.Type:exampleCourseCatalogRecordType@campusapi.org", "..."],
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:CourseCatalog@base.url",
"license": "The license that applies to this CourseCatalog"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Get all courses in this courseCatalog
get /course-catalogs/{courseCatalogId}/courses
Get all courses in this courseCatalog
URI Parameters
- courseCatalogId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "course.Course:1366@base.url",
"uri": "http://base.url/open/campusapi/course/course/course.Course%3A1366%40base.url",
"displayName": "Display Name of this Course",
"description": "The description of this Course",
"genusTypeId": "type.Type:defaultCourseType@base.url",
"recordTypeIds": [ "type.Type:exampleCourseRecordType@campusapi.org", "..."],
"title": "This is the Title",
"number": "101",
"sponsorIds": [ "resource.Resource:5004@base.url", "..." ],
"creditIds": [ "grading.Grade:5726@base.url", "..." ],
"prerequisitesInfo": "This is the PrerequisitesInfo",
"prerequisiteIds": [ "course.requisite.Requisite:3113@base.url", "..." ],
"levelIds": [ "grading.Grade:5031@base.url", "..." ],
"gradingOptionIds": [ "grading.GradeSystem:3569@base.url", "..." ],
"learningObjectiveIds": [ "learning.Objective:5284@base.url", "..." ]
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Add the given course to this courseCatalog
Remove the given course from the courseCatalog.
put /course-catalogs/{courseCatalogId}/courses/{courseId}
Add the given course to this courseCatalog
URI Parameters
- courseCatalogId: required(string)
- courseId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "course has been added to courseCatalog" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{ "message": "course not found" }
delete /course-catalogs/{courseCatalogId}/courses/{courseId}
Remove the given course from the courseCatalog.
URI Parameters
- courseCatalogId: required(string)
- courseId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "course has been removed" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{ "message": "course not found" }
Get all activity-units in this courseCatalog
get /course-catalogs/{courseCatalogId}/activity-units
Get all activity-units in this courseCatalog
URI Parameters
- courseCatalogId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "course.ActivityUnit:7447@base.url",
"uri": "http://base.url/open/campusapi/course/activity_unit/course.ActivityUnit%3A7447%40base.url",
"displayName": "Display Name of this ActivityUnit",
"description": "The description of this ActivityUnit",
"genusTypeId": "type.Type:defaultActivityUnitType@base.url",
"recordTypeIds": [ "type.Type:exampleActivityUnitRecordType@campusapi.org", "..."],
"courseId": "course.Course:3054@base.url",
"totalTargetEffort": "P3DT3H",
"contact": true,
"totalTargetContactTime": "P3DT3H",
"totalTargetIndividualEffort": "P3DT3H",
"recurringWeekly": true,
"weeklyEffort": "PT4H",
"weeklyContactTime": "PT4H",
"weeklyIndividualEffort": "PT4H",
"learningObjectiveIds": [ "learning.Objective:9876@base.url", "..." ]
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Add the given activity-unit to this courseCatalog
Remove the given activity-unit from the courseCatalog.
put /course-catalogs/{courseCatalogId}/activity-units/{activityUnitId}
Add the given activity-unit to this courseCatalog
URI Parameters
- courseCatalogId: required(string)
- activityUnitId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "activity-unit has been added to courseCatalog" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{ "message": "activity-unit not found" }
delete /course-catalogs/{courseCatalogId}/activity-units/{activityUnitId}
Remove the given activity-unit from the courseCatalog.
URI Parameters
- courseCatalogId: required(string)
- activityUnitId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "activity-unit has been removed" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{ "message": "activity-unit not found" }
Get all course-offerings in this courseCatalog
get /course-catalogs/{courseCatalogId}/course-offerings
Get all course-offerings in this courseCatalog
URI Parameters
- courseCatalogId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "course.CourseOffering:5845@base.url",
"uri": "http://base.url/open/campusapi/course/courseOffering/course.CourseOffering%3A5845%40base.url",
"displayName": "Display Name of this CourseOffering",
"description": "The description of this CourseOffering",
"genusTypeId": "type.Type:defaultCourseOfferingType@base.url",
"recordTypeIds": [ "type.Type:exampleCourseOfferingRecordType@campusapi.org", "..."],
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"endReasonId": "process.State:5845@base.url",
"courseId": "course.Course:6404@base.url",
"termId": "course.Term:6488@base.url",
"title": "This is the Title",
"number": "101",
"instructorIds": [ "resource.Resource:7339@base.url", "..." ],
"sponsorIds": [ "resource.Resource:8980@base.url", "..." ],
"creditIds": [ "grading.Grade:7488@base.url", "..." ],
"gradingOptionIds": [ "grading.GradeSystem:4928@base.url", "..." ],
"requiresRegistration": true,
"minimumSeats": 1,
"maximumSeats": 42,
"url": "http://dxtera.org",
"scheduleInfo": "This is the ScheduleInfo",
"eventId": "calendaring.Event:7458@base.url"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Add the given course-offering to this courseCatalog
Remove the given course-offering from the courseCatalog.
put /course-catalogs/{courseCatalogId}/course-offerings/{courseOfferingId}
Add the given course-offering to this courseCatalog
URI Parameters
- courseCatalogId: required(string)
- courseOfferingId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "course-offering has been added to courseCatalog" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{ "message": "course-offering not found" }
delete /course-catalogs/{courseCatalogId}/course-offerings/{courseOfferingId}
Remove the given course-offering from the courseCatalog.
URI Parameters
- courseCatalogId: required(string)
- courseOfferingId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "course-offering has been removed" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{ "message": "course-offering not found" }
Get all activities in this courseCatalog
get /course-catalogs/{courseCatalogId}/activities
Get all activities in this courseCatalog
URI Parameters
- courseCatalogId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "course.Activity:6569@base.url",
"uri": "http://base.url/open/campusapi/course/activity/course.Activity%3A6569%40base.url",
"displayName": "Display Name of this Activity",
"description": "The description of this Activity",
"genusTypeId": "type.Type:defaultActivityType@base.url",
"recordTypeIds": [ "type.Type:exampleActivityRecordType@campusapi.org", "..."],
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"endReasonId": "process.State:6569@base.url",
"activityUnitId": "course.ActivityUnit:5072@base.url",
"courseOfferingId": "course.CourseOffering:9462@base.url",
"termId": "course.Term:6905@base.url",
"instructorIds": [ "resource.Resource:198@base.url", "..." ],
"minimumSeats": 1,
"maximumSeats": 42,
"totalTargetEffort": "P3DT3H",
"contact": true,
"totalTargetContactTime": "P3DT3H",
"totalTargetIndividualEffort": "P3DT3H",
"recurringWeekly": true,
"weeklyEffort": "PT4H",
"weeklyContactTime": "PT4H",
"weeklyIndividualEffort": "PT4H",
"scheduleIds": [ "calendaring.Schedule:764438@demo.dxtera.org", "..." ],
"meetingTimes": [
{ "date": "2020-10-18T06:30:00.000Z",
"locationDescription": "Building 20, Room 201",
"locationId": "mapping.Location:6985@base.url" },
{ "...": "..." } ],
"blackouts": [
{ "from": "2020-10-03T06:30:00.000Z",
"to": "2020-10-5T19:30:00.000Z"},
{"...": "..."} ]
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Add the given activity to this courseCatalog
Remove the given activity from the courseCatalog.
put /course-catalogs/{courseCatalogId}/activities/{activityId}
Add the given activity to this courseCatalog
URI Parameters
- courseCatalogId: required(string)
- activityId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "activity has been added to courseCatalog" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{ "message": "activity not found" }
delete /course-catalogs/{courseCatalogId}/activities/{activityId}
Remove the given activity from the courseCatalog.
URI Parameters
- courseCatalogId: required(string)
- activityId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "activity has been removed" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{ "message": "activity not found" }
Get all terms in this courseCatalog
get /course-catalogs/{courseCatalogId}/terms
Get all terms in this courseCatalog
URI Parameters
- courseCatalogId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "course.Term:7135@base.url",
"uri": "http://base.url/open/campusapi/course/term/course.Term%3A7135%40base.url",
"displayName": "Display Name of this Term",
"description": "The description of this Term",
"genusTypeId": "type.Type:defaultTermType@base.url",
"recordTypeIds": [ "type.Type:exampleTermRecordType@campusapi.org", "..."],
"displayLabel": "This is the DisplayLabel",
"openDate": "2020-10-03T08:00:00.000Z",
"registrationStart": "2020-10-03T08:00:00.000Z",
"registrationEnd": "2020-12-18T17:00:00.000Z",
"classesStart": "2020-10-03T08:00:00.000Z",
"classesEnd": "2020-12-18T17:00:00.000Z",
"addDate": "2020-10-03T08:00:00.000Z",
"dropDate": "2020-12-18T17:00:00.000Z",
"finalExamStart": "2020-10-03T08:00:00.000Z",
"finalExamEnd": "2020-12-18T17:00:00.000Z",
"closeDate": "2020-12-18T17:00:00.000Z",
"gradingStart": "2020-12-10T08:00:00.000Z",
"gradingEnd": "2020-12-18T17:00:00.000Z",
"parentTermIds": [ "course.Term:7648@demo.dxtera.org", "..." ],
"childTermIds": [ "course.Term:72348@demo.dxtera.org", "..." ]
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Add the given term to this courseCatalog
Remove the given term from the courseCatalog.
put /course-catalogs/{courseCatalogId}/terms/{termId}
Add the given term to this courseCatalog
URI Parameters
- courseCatalogId: required(string)
- termId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "term has been added to courseCatalog" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{ "message": "term not found" }
delete /course-catalogs/{courseCatalogId}/terms/{termId}
Remove the given term from the courseCatalog.
URI Parameters
- courseCatalogId: required(string)
- termId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "term has been removed" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{ "message": "term not found" }