CampusAPI Course Services API documentation version 1.0.5
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 2023 DXtera Institute. Based on the Open Service Interface Definitions: 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
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "sponsors", "credits", "prerequisites", "levels", "gradingOptions", "learningObjectives", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
- 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%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.Course:8112@base.url",
"uri": "http://base.url/open/campusapi/course/course/course.Course%3A8112%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:7846@base.url", "..." ],
"creditIds": [ "grading.Grade:3688@base.url", "..." ],
"prerequisitesInfo": "This is the PrerequisitesInfo",
"prerequisiteIds": [ "course.requisite.Requisite:6755@base.url", "..." ],
"levelIds": [ "grading.Grade:5521@base.url", "..." ],
"gradingOptionIds": [ "grading.GradeSystem:9182@base.url", "..." ],
"learningObjectiveIds": [ "learning.Objective:4510@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:5109@base.url", "..." ],
"creditIds": [ "grading.Grade:4895@base.url", "..." ],
"prerequisitesInfo": "This is the PrerequisitesInfo",
"prerequisiteIds": [ "course.requisite.Requisite:4909@base.url", "..." ],
"levelIds": [ "grading.Grade:9050@base.url", "..." ],
"gradingOptionIds": [ "grading.GradeSystem:6089@base.url", "..." ],
"learningObjectiveIds": [ "learning.Objective:2707@base.url", "..." ]
}
Query the collection of Courses in a system, federation of systems, or in a default courseCatalog by posting a Query object.
Submit a query using a CourseQuery object.
post /courses/course-query
Submit a query using a CourseQuery object.
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
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "sponsors", "credits", "prerequisites", "levels", "gradingOptions", "learningObjectives", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "CourseQuery",
"type": "object",
"properties": {
"matchIds": {
"description": "List of Ids to match. Boolean OR performed among multiple Ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchKeywords": {
"description": "List keywords to match. Multiple keywords can be added to perform a boolean OR among them. A keyword may be applied to any of the elements defined in this object such as the display name, description or any attribute defined in or implemented by this object.",
"type": "array",
"items": {
"type": "object",
"properties": {
"keyword": {
"description": "keyword to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchDisplayNames": {
"description": "List of displayName strings to match. Boolean OR performed among multiple displayNames.",
"type": "array",
"items": {
"type": "object",
"properties": {
"displayName": {
"description": "displayName to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchDescriptions": {
"description": "List of discription strings to match. Boolean OR performed among multiple descriptions.",
"type": "array",
"items": {
"type": "object",
"properties": {
"description": {
"description": "description to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchGenusTypeIds": {
"description": "List of genus type ids to match. Boolean OR performed among multiple ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"genusTypeid": {
"description": "genus type id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchRecordTypeIds": {
"description": "List of record type ids to match. Boolean OR performed among multiple ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"genusTypeid": {
"description": "record type id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchTitle": {
"description": "List of Title strings to match. Boolean OR performed among multiple titles.",
"type": "array",
"items": {
"type": "object",
"properties": {
"titles": {
"description": "titles to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyTitle": {
"description": "Match titles with any value. true to match Courses with any title, false to match ProgramOfferings with no title",
"type": "boolean"
},
"matchNumber": {
"description": "List of Number strings to match. Boolean OR performed among multiple numbers.",
"type": "array",
"items": {
"type": "object",
"properties": {
"numbers": {
"description": "numbers to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyNumber": {
"description": "Match numbers with any value. true to match Courses with any number, false to match ProgramOfferings with no number",
"type": "boolean"
},
"matchSponsorIds": {
"description": "List of Resource Ids for this query to match sponsors.",
"type": "array",
"items": {
"type": "object",
"properties": {
"sponsorId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"sponsorQueries": {
"description": "resource.ResourceQueries to match the Sponsors. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchAnySponsor": {
"description": "Match sponsors with any value. true to match Courses with any sponsors, false to match Courses with no sponsors",
"type": "boolean"
},
"matchCreditIds": {
"description": "List of Grade Ids for this query to match credits.",
"type": "array",
"items": {
"type": "object",
"properties": {
"creditId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"creditQueries": {
"description": "grading.GradeQueries to match the Credits. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchAnyCredit": {
"description": "Match credits with any value. true to match Courses with any credits, false to match Courses with no credits",
"type": "boolean"
},
"matchPrerequisitesInfo": {
"description": "List of PrerequisitesInfo strings to match. Boolean OR performed among multiple prerequisitesInfos.",
"type": "array",
"items": {
"type": "object",
"properties": {
"prerequisitesInfos": {
"description": "prerequisitesInfos to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyPrerequisitesInfo": {
"description": "Match prerequisitesInfos with any value. true to match Courses with any prerequisites info, false to match ProgramOfferings with no prerequisites info",
"type": "boolean"
},
"matchPrerequisiteIds": {
"description": "List of Requisite Ids for this query to match prerequisites.",
"type": "array",
"items": {
"type": "object",
"properties": {
"prerequisiteId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"prerequisiteQueries": {
"description": "requisite.RequisiteQueries to match the Prerequisites. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchAnyPrerequisite": {
"description": "Match prerequisites with any value. true to match Courses with any prerequisites, false to match Courses with no prerequisites",
"type": "boolean"
},
"matchLevelIds": {
"description": "List of Grade Ids for this query to match levels.",
"type": "array",
"items": {
"type": "object",
"properties": {
"levelId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"levelQueries": {
"description": "grading.GradeQueries to match the Levels. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchAnyLevel": {
"description": "Match levels with any value. true to match Courses with any levels, false to match Courses with no levels",
"type": "boolean"
},
"matchGradingOptionIds": {
"description": "List of GradeSystem Ids for this query to match gradingOptions.",
"type": "array",
"items": {
"type": "object",
"properties": {
"gradingOptionId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"gradingOptionQueries": {
"description": "grading.GradeSystemQueries to match the Grading Options. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchAnyGradingOption": {
"description": "Match grading options with any value. true to match Courses with any grading options, false to match Courses with no grading options",
"type": "boolean"
},
"matchLearningObjectiveIds": {
"description": "List of Objective Ids for this query to match learningObjective.",
"type": "array",
"items": {
"type": "object",
"properties": {
"learningObjectiveId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"learningObjectiveQueries": {
"description": "learning.ObjectiveQueries to match the Learning Objective. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchAnyLearningObjective": {
"description": "Match learning objective with any value. true to match Courses with any learning objective, false to match Courses with no learning objective",
"type": "boolean"
},
"matchCourseCatalogIds": {
"description": "List of CourseCatalog Id's to match.",
"type": "array",
"items": {
"type": "object",
"properties": {
"courseCatalogId": {
"description": "Course Catalog id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"courseCatalogQueries": {
"description": "CourseCatalogQueries to match Course Catalog. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
}
}
}
Example:
{
"matchDisplayNames": [
{
"displayName": "string to exclude",
"match": false
}
]
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "course.Course:8112@base.url",
"uri": "http://base.url/open/campusapi/course/course/course.Course%3A8112%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:7846@base.url", "..." ],
"creditIds": [ "grading.Grade:3688@base.url", "..." ],
"prerequisitesInfo": "This is the PrerequisitesInfo",
"prerequisiteIds": [ "course.requisite.Requisite:6755@base.url", "..." ],
"levelIds": [ "grading.Grade:5521@base.url", "..." ],
"gradingOptionIds": [ "grading.GradeSystem:9182@base.url", "..." ],
"learningObjectiveIds": [ "learning.Objective:4510@base.url", "..." ]
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
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 particular Course given its id.
Update a particular Course given its id.
Delete a particular Course given its id.
get /courses/{courseId}
Get a particular Course given its id.
URI Parameters
- courseId: required(string)
Query Parameters
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "sponsors", "credits", "prerequisites", "levels", "gradingOptions", "learningObjectives", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"id": "course.Course:8112@base.url",
"uri": "http://base.url/open/campusapi/course/course/course.Course%3A8112%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:7846@base.url", "..." ],
"creditIds": [ "grading.Grade:3688@base.url", "..." ],
"prerequisitesInfo": "This is the PrerequisitesInfo",
"prerequisiteIds": [ "course.requisite.Requisite:6755@base.url", "..." ],
"levelIds": [ "grading.Grade:5521@base.url", "..." ],
"gradingOptionIds": [ "grading.GradeSystem:9182@base.url", "..." ],
"learningObjectiveIds": [ "learning.Objective:4510@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 particular Course given its id.
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:5109@base.url", "..." ],
"creditIds": [ "grading.Grade:4895@base.url", "..." ],
"prerequisitesInfo": "This is the PrerequisitesInfo",
"prerequisiteIds": [ "course.requisite.Requisite:4909@base.url", "..." ],
"levelIds": [ "grading.Grade:9050@base.url", "..." ],
"gradingOptionIds": [ "grading.GradeSystem:6089@base.url", "..." ],
"learningObjectiveIds": [ "learning.Objective:2707@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 particular Course given its id.
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 ActivityUnits in a system, federation of systems, or in a default CourseCatalog.
Get all ActivityUnits in the system or default CourseCatalog.
Create a new ActivityUnit in the default CourseCatalog.
get /activity-units
Get all ActivityUnits 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
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "learningObjectives", "course", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
- 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:6181@base.url",
"uri": "http://base.url/open/campusapi/course/activity_unit/course.ActivityUnit%3A6181%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:2553@base.url",
"totalTargetEffort": "P3DT3H",
"contact": true,
"totalTargetContactTime": "P3DT3H",
"totalTargetIndividualEffort": "P3DT3H",
"recurringWeekly": true,
"weeklyEffort": "PT4H",
"weeklyContactTime": "PT4H",
"weeklyIndividualEffort": "PT4H",
"learningObjectiveIds": [ "learning.Objective:2889@base.url", "..." ]
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
post /activity-units
Create a new ActivityUnit 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:855@base.url", "..." ]
}
Query the collection of ActivityUnits in a system, federation of systems, or in a default courseCatalog by posting a Query object.
Submit a query using a ActivityUnitQuery object.
post /activity-units/activity-unit-query
Submit a query using a ActivityUnitQuery object.
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
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "learningObjectives", "course", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "ActivityUnitQuery",
"type": "object",
"properties": {
"matchIds": {
"description": "List of Ids to match. Boolean OR performed among multiple Ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchKeywords": {
"description": "List keywords to match. Multiple keywords can be added to perform a boolean OR among them. A keyword may be applied to any of the elements defined in this object such as the display name, description or any attribute defined in or implemented by this object.",
"type": "array",
"items": {
"type": "object",
"properties": {
"keyword": {
"description": "keyword to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchDisplayNames": {
"description": "List of displayName strings to match. Boolean OR performed among multiple displayNames.",
"type": "array",
"items": {
"type": "object",
"properties": {
"displayName": {
"description": "displayName to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchDescriptions": {
"description": "List of discription strings to match. Boolean OR performed among multiple descriptions.",
"type": "array",
"items": {
"type": "object",
"properties": {
"description": {
"description": "description to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchGenusTypeIds": {
"description": "List of genus type ids to match. Boolean OR performed among multiple ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"genusTypeid": {
"description": "genus type id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchRecordTypeIds": {
"description": "List of record type ids to match. Boolean OR performed among multiple ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"genusTypeid": {
"description": "record type id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchCourseIds": {
"description": "List of course Ids for this query to match activity unit that have a related course.",
"type": "array",
"items": {
"type": "object",
"properties": {
"ruleId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"courseQueries": {
"description": "CourseQueries to match the course. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchTotalTargetEffort": {
"description": "Matches totalTargetEfforts in the given range inclusive.",
"type": "array",
"items": {
"type": "object",
"properties": {
"from": {
"description": "start range",
"type": "string",
"format": "duration"
},
"to": {
"description": "end range",
"type": "string",
"format": "duration"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyTotalTargetEffort": {
"description": "Match totalTargetEfforts with any value. true to match ActivityUnits with any total target effort, false to match ProgramOfferings with no total target effort",
"type": "boolean"
},
"matchContact": {
"description": "Match boolean value for contact.",
"type": "object",
"properties": {
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
},
"matchTotalTargetContactTime": {
"description": "Matches totalTargetContactTimes in the given range inclusive.",
"type": "array",
"items": {
"type": "object",
"properties": {
"from": {
"description": "start range",
"type": "string",
"format": "duration"
},
"to": {
"description": "end range",
"type": "string",
"format": "duration"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyTotalTargetContactTime": {
"description": "Match totalTargetContactTimes with any value. true to match ActivityUnits with any total target contact time, false to match ProgramOfferings with no total target contact time",
"type": "boolean"
},
"matchTotalTargetIndividualEffort": {
"description": "Matches totalTargetIndividualEfforts in the given range inclusive.",
"type": "array",
"items": {
"type": "object",
"properties": {
"from": {
"description": "start range",
"type": "string",
"format": "duration"
},
"to": {
"description": "end range",
"type": "string",
"format": "duration"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyTotalTargetIndividualEffort": {
"description": "Match totalTargetIndividualEfforts with any value. true to match ActivityUnits with any total target individual effort, false to match ProgramOfferings with no total target individual effort",
"type": "boolean"
},
"matchRecurringWeekly": {
"description": "Match boolean value for recurringWeekly.",
"type": "object",
"properties": {
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
},
"matchWeeklyEffort": {
"description": "Matches weeklyEfforts in the given range inclusive.",
"type": "array",
"items": {
"type": "object",
"properties": {
"from": {
"description": "start range",
"type": "string",
"format": "duration"
},
"to": {
"description": "end range",
"type": "string",
"format": "duration"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyWeeklyEffort": {
"description": "Match weeklyEfforts with any value. true to match ActivityUnits with any weekly effort, false to match ProgramOfferings with no weekly effort",
"type": "boolean"
},
"matchWeeklyContactTime": {
"description": "Matches weeklyContactTimes in the given range inclusive.",
"type": "array",
"items": {
"type": "object",
"properties": {
"from": {
"description": "start range",
"type": "string",
"format": "duration"
},
"to": {
"description": "end range",
"type": "string",
"format": "duration"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyWeeklyContactTime": {
"description": "Match weeklyContactTimes with any value. true to match ActivityUnits with any weekly contact time, false to match ProgramOfferings with no weekly contact time",
"type": "boolean"
},
"matchWeeklyIndividualEffort": {
"description": "Matches weeklyIndividualEfforts in the given range inclusive.",
"type": "array",
"items": {
"type": "object",
"properties": {
"from": {
"description": "start range",
"type": "string",
"format": "duration"
},
"to": {
"description": "end range",
"type": "string",
"format": "duration"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyWeeklyIndividualEffort": {
"description": "Match weeklyIndividualEfforts with any value. true to match ActivityUnits with any weekly individual effort, false to match ProgramOfferings with no weekly individual effort",
"type": "boolean"
},
"matchLearningObjectiveIds": {
"description": "List of Objective Ids for this query to match learningObjective.",
"type": "array",
"items": {
"type": "object",
"properties": {
"learningObjectiveId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"learningObjectiveQueries": {
"description": "learning.ObjectiveQueries to match the Learning Objective. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchAnyLearningObjective": {
"description": "Match learning objective with any value. true to match ActivityUnits with any learning objective, false to match ActivityUnits with no learning objective",
"type": "boolean"
},
"matchCourseCatalogIds": {
"description": "List of CourseCatalog Id's to match.",
"type": "array",
"items": {
"type": "object",
"properties": {
"courseCatalogId": {
"description": "Course Catalog id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"courseCatalogQueries": {
"description": "CourseCatalogQueries to match Course Catalog. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
}
}
}
Example:
{
"matchDisplayNames": [
{
"displayName": "string to exclude",
"match": false
}
]
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "course.ActivityUnit:6181@base.url",
"uri": "http://base.url/open/campusapi/course/activity_unit/course.ActivityUnit%3A6181%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:2553@base.url",
"totalTargetEffort": "P3DT3H",
"contact": true,
"totalTargetContactTime": "P3DT3H",
"totalTargetIndividualEffort": "P3DT3H",
"recurringWeekly": true,
"weeklyEffort": "PT4H",
"weeklyContactTime": "PT4H",
"weeklyIndividualEffort": "PT4H",
"learningObjectiveIds": [ "learning.Objective:2889@base.url", "..." ]
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
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 ActivityUnit
Get a particular ActivityUnit given its id.
Update a particular ActivityUnit given its id.
Delete a particular ActivityUnit given its id.
get /activity-units/{activityUnitId}
Get a particular ActivityUnit given its id.
URI Parameters
- activityUnitId: required(string)
Query Parameters
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "learningObjectives", "course", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"id": "course.ActivityUnit:6181@base.url",
"uri": "http://base.url/open/campusapi/course/activity_unit/course.ActivityUnit%3A6181%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:2553@base.url",
"totalTargetEffort": "P3DT3H",
"contact": true,
"totalTargetContactTime": "P3DT3H",
"totalTargetIndividualEffort": "P3DT3H",
"recurringWeekly": true,
"weeklyEffort": "PT4H",
"weeklyContactTime": "PT4H",
"weeklyIndividualEffort": "PT4H",
"learningObjectiveIds": [ "learning.Objective:2889@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": "ActivityUnit not found" }
put /activity-units/{activityUnitId}
Update a particular ActivityUnit given its id.
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:855@base.url", "..." ]
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The ActivityUnit 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": "ActivityUnit not found" }
delete /activity-units/{activityUnitId}
Delete a particular ActivityUnit given its id.
URI Parameters
- activityUnitId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The ActivityUnit 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": "ActivityUnit 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 CourseOfferings in a system, federation of systems, or in a default CourseCatalog.
Get all CourseOfferings in the system or default CourseCatalog.
Create a new CourseOffering in the default CourseCatalog.
get /course-offerings
Get all CourseOfferings 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
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "endReason", "instructors", "sponsors", "credits", "gradingOptions", "event", "course", "term", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
- 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%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.CourseOffering:8439@base.url",
"uri": "http://base.url/open/campusapi/course/courseOffering/course.CourseOffering%3A8439%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:8439@base.url",
"courseId": "course.Course:4181@base.url",
"termId": "course.Term:1656@base.url",
"title": "This is the Title",
"number": "101",
"instructorIds": [ "resource.Resource:2701@base.url", "..." ],
"sponsorIds": [ "resource.Resource:8917@base.url", "..." ],
"creditIds": [ "grading.Grade:667@base.url", "..." ],
"gradingOptionIds": [ "grading.GradeSystem:8589@base.url", "..." ],
"requiresRegistration": true,
"minimumSeats": 1,
"maximumSeats": 42,
"url": "http://dxtera.org",
"scheduleInfo": "This is the ScheduleInfo",
"eventId": "calendaring.Event:1482@base.url"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
post /course-offerings
Create a new CourseOffering 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:6509@base.url",
"title": "This is the Title",
"number": "101",
"instructorIds": [ "resource.Resource:2700@base.url", "..." ],
"sponsorIds": [ "resource.Resource:5333@base.url", "..." ],
"creditIds": [ "grading.Grade:7179@base.url", "..." ],
"gradingOptionIds": [ "grading.GradeSystem:2070@base.url", "..." ],
"requiresRegistration": true,
"minimumSeats": 1,
"maximumSeats": 42,
"url": "http://dxtera.org",
"scheduleInfo": "This is the ScheduleInfo",
"eventId": "calendaring.Event:7995@base.url"
}
Query the collection of CourseOfferings in a system, federation of systems, or in a default courseCatalog by posting a Query object.
Submit a query using a CourseOfferingQuery object.
post /course-offerings/course-offering-query
Submit a query using a CourseOfferingQuery object.
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
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "endReason", "instructors", "sponsors", "credits", "gradingOptions", "event", "course", "term", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "CourseOfferingQuery",
"type": "object",
"properties": {
"matchIds": {
"description": "List of Ids to match. Boolean OR performed among multiple Ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchKeywords": {
"description": "List keywords to match. Multiple keywords can be added to perform a boolean OR among them. A keyword may be applied to any of the elements defined in this object such as the display name, description or any attribute defined in or implemented by this object.",
"type": "array",
"items": {
"type": "object",
"properties": {
"keyword": {
"description": "keyword to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchDisplayNames": {
"description": "List of displayName strings to match. Boolean OR performed among multiple displayNames.",
"type": "array",
"items": {
"type": "object",
"properties": {
"displayName": {
"description": "displayName to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchDescriptions": {
"description": "List of discription strings to match. Boolean OR performed among multiple descriptions.",
"type": "array",
"items": {
"type": "object",
"properties": {
"description": {
"description": "description to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchGenusTypeIds": {
"description": "List of genus type ids to match. Boolean OR performed among multiple ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"genusTypeid": {
"description": "genus type id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchRecordTypeIds": {
"description": "List of record type ids to match. Boolean OR performed among multiple ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"genusTypeid": {
"description": "record type id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchEffective": {
"description": "Match effective objects where the current date falls within the start and end dates inclusive. true to match any effective, false to match ineffective",
"type": "boolean"
},
"matchStartDate": {
"description": "Matches temporals whose start date falls in between the given dates inclusive.",
"type": "object",
"properties": {
"start": {
"description": "start of date range",
"type": "string",
"format": "date-time"
},
"end": {
"description": "end of date range",
"type": "string",
"format": "date-time"
},
"match": {
"description": "true if a positive match, false for negative match",
"type": "boolean"
}
}
},
"matchEndDate": {
"description": "Matches temporals whose end date falls in between the given dates inclusive.",
"type": "object",
"properties": {
"start": {
"description": "start of date range",
"type": "string",
"format": "date-time"
},
"end": {
"description": "end of date range",
"type": "string",
"format": "date-time"
},
"match": {
"description": "true if a positive match, false for negative match",
"type": "boolean"
}
}
},
"matchEndReasonIds": {
"description": "List of end reason Id's to match.",
"type": "array",
"items": {
"type": "object",
"properties": {
"stateId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"endReasonQueries": {
"description": "process.StateQueries to match end reason state. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchAnyEndReason": {
"description": "Match end reasons with any value. true to match CourseOfferings with any end reason, false to match CourseOfferings with no end reason",
"type": "boolean"
},
"matchCourseIds": {
"description": "List of course Ids for this query to match course offering that have a related course.",
"type": "array",
"items": {
"type": "object",
"properties": {
"ruleId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"courseQueries": {
"description": "CourseQueries to match the course. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchTermIds": {
"description": "List of term Ids for this query to match course offering that have a related term.",
"type": "array",
"items": {
"type": "object",
"properties": {
"ruleId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"termQueries": {
"description": "TermQueries to match the term. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchTitle": {
"description": "List of Title strings to match. Boolean OR performed among multiple titles.",
"type": "array",
"items": {
"type": "object",
"properties": {
"titles": {
"description": "titles to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyTitle": {
"description": "Match titles with any value. true to match CourseOfferings with any title, false to match ProgramOfferings with no title",
"type": "boolean"
},
"matchNumber": {
"description": "List of Number strings to match. Boolean OR performed among multiple numbers.",
"type": "array",
"items": {
"type": "object",
"properties": {
"numbers": {
"description": "numbers to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyNumber": {
"description": "Match numbers with any value. true to match CourseOfferings with any number, false to match ProgramOfferings with no number",
"type": "boolean"
},
"matchInstructorIds": {
"description": "List of Resource Ids for this query to match instructors.",
"type": "array",
"items": {
"type": "object",
"properties": {
"instructorId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"instructorQueries": {
"description": "resource.ResourceQueries to match the Instructors. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchAnyInstructor": {
"description": "Match instructors with any value. true to match CourseOfferings with any instructors, false to match CourseOfferings with no instructors",
"type": "boolean"
},
"matchSponsorIds": {
"description": "List of Resource Ids for this query to match sponsors.",
"type": "array",
"items": {
"type": "object",
"properties": {
"sponsorId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"sponsorQueries": {
"description": "resource.ResourceQueries to match the Sponsors. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchAnySponsor": {
"description": "Match sponsors with any value. true to match CourseOfferings with any sponsors, false to match CourseOfferings with no sponsors",
"type": "boolean"
},
"matchCreditIds": {
"description": "List of Grade Ids for this query to match credits.",
"type": "array",
"items": {
"type": "object",
"properties": {
"creditId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"creditQueries": {
"description": "grading.GradeQueries to match the Credits. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchAnyCredit": {
"description": "Match credits with any value. true to match CourseOfferings with any credits, false to match CourseOfferings with no credits",
"type": "boolean"
},
"matchGradingOptionIds": {
"description": "List of GradeSystem Ids for this query to match gradingOptions.",
"type": "array",
"items": {
"type": "object",
"properties": {
"gradingOptionId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"gradingOptionQueries": {
"description": "grading.GradeSystemQueries to match the Grading Options. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchAnyGradingOption": {
"description": "Match grading options with any value. true to match CourseOfferings with any grading options, false to match CourseOfferings with no grading options",
"type": "boolean"
},
"matchRequiresRegistration": {
"description": "Match boolean value for requiresRegistration.",
"type": "object",
"properties": {
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
},
"matchMinimumSeats": {
"description": "Match CourseOfferings with minimumSeats between the given integers inclusive.",
"type": "array",
"items": {
"type": "object",
"properties": {
"min": {
"description": "low number",
"type": "integer"
},
"max": {
"description": "high number",
"type": "integer"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyMinimumSeats": {
"description": "Match minimumSeats with any value. true to match CourseOfferings with any minimum seats, false to match ProgramOfferings with no minimum seats",
"type": "boolean"
},
"matchMaximumSeats": {
"description": "Match CourseOfferings with maximumSeats between the given integers inclusive.",
"type": "array",
"items": {
"type": "object",
"properties": {
"min": {
"description": "low number",
"type": "integer"
},
"max": {
"description": "high number",
"type": "integer"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyMaximumSeats": {
"description": "Match maximumSeats with any value. true to match CourseOfferings with any maximum seats, false to match ProgramOfferings with no maximum seats",
"type": "boolean"
},
"matchURL": {
"description": "List of URL strings to match. Boolean OR performed among multiple urls.",
"type": "array",
"items": {
"type": "object",
"properties": {
"urls": {
"description": "urls to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyURL": {
"description": "Match urls with any value. true to match CourseOfferings with any url, false to match ProgramOfferings with no url",
"type": "boolean"
},
"matchScheduleInfo": {
"description": "List of ScheduleInfo strings to match. Boolean OR performed among multiple scheduleInfos.",
"type": "array",
"items": {
"type": "object",
"properties": {
"scheduleInfos": {
"description": "scheduleInfos to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyScheduleInfo": {
"description": "Match scheduleInfos with any value. true to match CourseOfferings with any schedule info, false to match ProgramOfferings with no schedule info",
"type": "boolean"
},
"matchEventIds": {
"description": "List of Event Ids for this query to match event.",
"type": "array",
"items": {
"type": "object",
"properties": {
"eventId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"eventQueries": {
"description": "calendaring.EventQueries to match the Event. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchAnyEvent": {
"description": "Match event with any value. true to match CourseOfferings with any event, false to match CourseOfferings with no event",
"type": "boolean"
},
"matchCourseCatalogIds": {
"description": "List of CourseCatalog Id's to match.",
"type": "array",
"items": {
"type": "object",
"properties": {
"courseCatalogId": {
"description": "Course Catalog id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"courseCatalogQueries": {
"description": "CourseCatalogQueries to match Course Catalog. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
}
}
}
Example:
{
"matchDisplayNames": [
{
"displayName": "string to exclude",
"match": false
}
]
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "course.CourseOffering:8439@base.url",
"uri": "http://base.url/open/campusapi/course/courseOffering/course.CourseOffering%3A8439%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:8439@base.url",
"courseId": "course.Course:4181@base.url",
"termId": "course.Term:1656@base.url",
"title": "This is the Title",
"number": "101",
"instructorIds": [ "resource.Resource:2701@base.url", "..." ],
"sponsorIds": [ "resource.Resource:8917@base.url", "..." ],
"creditIds": [ "grading.Grade:667@base.url", "..." ],
"gradingOptionIds": [ "grading.GradeSystem:8589@base.url", "..." ],
"requiresRegistration": true,
"minimumSeats": 1,
"maximumSeats": 42,
"url": "http://dxtera.org",
"scheduleInfo": "This is the ScheduleInfo",
"eventId": "calendaring.Event:1482@base.url"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
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 CourseOffering
Get a particular CourseOffering given its id.
Update a particular CourseOffering given its id.
Delete a particular CourseOffering given its id.
get /course-offerings/{courseOfferingId}
Get a particular CourseOffering given its id.
URI Parameters
- courseOfferingId: required(string)
Query Parameters
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "endReason", "instructors", "sponsors", "credits", "gradingOptions", "event", "course", "term", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"id": "course.CourseOffering:8439@base.url",
"uri": "http://base.url/open/campusapi/course/courseOffering/course.CourseOffering%3A8439%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:8439@base.url",
"courseId": "course.Course:4181@base.url",
"termId": "course.Term:1656@base.url",
"title": "This is the Title",
"number": "101",
"instructorIds": [ "resource.Resource:2701@base.url", "..." ],
"sponsorIds": [ "resource.Resource:8917@base.url", "..." ],
"creditIds": [ "grading.Grade:667@base.url", "..." ],
"gradingOptionIds": [ "grading.GradeSystem:8589@base.url", "..." ],
"requiresRegistration": true,
"minimumSeats": 1,
"maximumSeats": 42,
"url": "http://dxtera.org",
"scheduleInfo": "This is the ScheduleInfo",
"eventId": "calendaring.Event:1482@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": "CourseOffering not found" }
put /course-offerings/{courseOfferingId}
Update a particular CourseOffering given its id.
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:6509@base.url",
"title": "This is the Title",
"number": "101",
"instructorIds": [ "resource.Resource:2700@base.url", "..." ],
"sponsorIds": [ "resource.Resource:5333@base.url", "..." ],
"creditIds": [ "grading.Grade:7179@base.url", "..." ],
"gradingOptionIds": [ "grading.GradeSystem:2070@base.url", "..." ],
"requiresRegistration": true,
"minimumSeats": 1,
"maximumSeats": 42,
"url": "http://dxtera.org",
"scheduleInfo": "This is the ScheduleInfo",
"eventId": "calendaring.Event:7995@base.url"
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The CourseOffering 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": "CourseOffering not found" }
delete /course-offerings/{courseOfferingId}
Delete a particular CourseOffering given its id.
URI Parameters
- courseOfferingId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The CourseOffering 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": "CourseOffering 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
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "endReason", "instructors", "activityUnit", "courseOffering", "term", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
- 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:6208@base.url",
"uri": "http://base.url/open/campusapi/course/activity/course.Activity%3A6208%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:6208@base.url",
"activityUnitId": "course.ActivityUnit:66@base.url",
"courseOfferingId": "course.CourseOffering:3111@base.url",
"termId": "course.Term:8657@base.url",
"instructorIds": [ "resource.Resource:9165@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:3969@base.url",
"instructorIds": [ "resource.Resource:4267@base.url", "..." ],
"minimumSeats": 1,
"maximumSeats": 42,
"totalTargetEffort": "P3DT3H",
"contact": true,
"totalTargetContactTime": "P3DT3H",
"totalTargetIndividualEffort": "P3DT3H",
"recurringWeekly": true,
"weeklyEffort": "PT4H",
"weeklyContactTime": "PT4H",
"weeklyIndividualEffort": "PT4H"
}
Query the collection of Activities in a system, federation of systems, or in a default courseCatalog by posting a Query object.
Submit a query using a ActivityQuery object.
post /activities/activity-query
Submit a query using a ActivityQuery object.
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
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "endReason", "instructors", "activityUnit", "courseOffering", "term", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "ActivityQuery",
"type": "object",
"properties": {
"matchIds": {
"description": "List of Ids to match. Boolean OR performed among multiple Ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchKeywords": {
"description": "List keywords to match. Multiple keywords can be added to perform a boolean OR among them. A keyword may be applied to any of the elements defined in this object such as the display name, description or any attribute defined in or implemented by this object.",
"type": "array",
"items": {
"type": "object",
"properties": {
"keyword": {
"description": "keyword to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchDisplayNames": {
"description": "List of displayName strings to match. Boolean OR performed among multiple displayNames.",
"type": "array",
"items": {
"type": "object",
"properties": {
"displayName": {
"description": "displayName to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchDescriptions": {
"description": "List of discription strings to match. Boolean OR performed among multiple descriptions.",
"type": "array",
"items": {
"type": "object",
"properties": {
"description": {
"description": "description to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchGenusTypeIds": {
"description": "List of genus type ids to match. Boolean OR performed among multiple ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"genusTypeid": {
"description": "genus type id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchRecordTypeIds": {
"description": "List of record type ids to match. Boolean OR performed among multiple ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"genusTypeid": {
"description": "record type id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchEffective": {
"description": "Match effective objects where the current date falls within the start and end dates inclusive. true to match any effective, false to match ineffective",
"type": "boolean"
},
"matchStartDate": {
"description": "Matches temporals whose start date falls in between the given dates inclusive.",
"type": "object",
"properties": {
"start": {
"description": "start of date range",
"type": "string",
"format": "date-time"
},
"end": {
"description": "end of date range",
"type": "string",
"format": "date-time"
},
"match": {
"description": "true if a positive match, false for negative match",
"type": "boolean"
}
}
},
"matchEndDate": {
"description": "Matches temporals whose end date falls in between the given dates inclusive.",
"type": "object",
"properties": {
"start": {
"description": "start of date range",
"type": "string",
"format": "date-time"
},
"end": {
"description": "end of date range",
"type": "string",
"format": "date-time"
},
"match": {
"description": "true if a positive match, false for negative match",
"type": "boolean"
}
}
},
"matchEndReasonIds": {
"description": "List of end reason Id's to match.",
"type": "array",
"items": {
"type": "object",
"properties": {
"stateId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"endReasonQueries": {
"description": "process.StateQueries to match end reason state. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchAnyEndReason": {
"description": "Match end reasons with any value. true to match Activities with any end reason, false to match Activities with no end reason",
"type": "boolean"
},
"matchActivityUnitIds": {
"description": "List of activityUnit Ids for this query to match activity that have a related activityUnit.",
"type": "array",
"items": {
"type": "object",
"properties": {
"ruleId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"activityUnitQueries": {
"description": "ActivityUnitQueries to match the activityUnit. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchCourseOfferingIds": {
"description": "List of courseOffering Ids for this query to match activity that have a related courseOffering.",
"type": "array",
"items": {
"type": "object",
"properties": {
"ruleId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"courseOfferingQueries": {
"description": "CourseOfferingQueries to match the courseOffering. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchTermIds": {
"description": "List of term Ids for this query to match activity that have a related term.",
"type": "array",
"items": {
"type": "object",
"properties": {
"ruleId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"termQueries": {
"description": "TermQueries to match the term. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchInstructorIds": {
"description": "List of Resource Ids for this query to match instructors.",
"type": "array",
"items": {
"type": "object",
"properties": {
"instructorId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"instructorQueries": {
"description": "resource.ResourceQueries to match the Instructors. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchAnyInstructor": {
"description": "Match instructors with any value. true to match Activities with any instructors, false to match Activities with no instructors",
"type": "boolean"
},
"matchMinimumSeats": {
"description": "Match Activities with minimumSeats between the given integers inclusive.",
"type": "array",
"items": {
"type": "object",
"properties": {
"min": {
"description": "low number",
"type": "integer"
},
"max": {
"description": "high number",
"type": "integer"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyMinimumSeats": {
"description": "Match minimumSeats with any value. true to match Activities with any minimum seats, false to match ProgramOfferings with no minimum seats",
"type": "boolean"
},
"matchMaximumSeats": {
"description": "Match Activities with maximumSeats between the given integers inclusive.",
"type": "array",
"items": {
"type": "object",
"properties": {
"min": {
"description": "low number",
"type": "integer"
},
"max": {
"description": "high number",
"type": "integer"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyMaximumSeats": {
"description": "Match maximumSeats with any value. true to match Activities with any maximum seats, false to match ProgramOfferings with no maximum seats",
"type": "boolean"
},
"matchContact": {
"description": "Match boolean value for contact.",
"type": "object",
"properties": {
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
},
"matchTotalTargetContactTime": {
"description": "Matches totalTargetContactTimes in the given range inclusive.",
"type": "array",
"items": {
"type": "object",
"properties": {
"from": {
"description": "start range",
"type": "string",
"format": "duration"
},
"to": {
"description": "end range",
"type": "string",
"format": "duration"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyTotalTargetContactTime": {
"description": "Match totalTargetContactTimes with any value. true to match Activities with any total target contact time, false to match ProgramOfferings with no total target contact time",
"type": "boolean"
},
"matchTotalTargetIndividualEffort": {
"description": "Matches totalTargetIndividualEfforts in the given range inclusive.",
"type": "array",
"items": {
"type": "object",
"properties": {
"from": {
"description": "start range",
"type": "string",
"format": "duration"
},
"to": {
"description": "end range",
"type": "string",
"format": "duration"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyTotalTargetIndividualEffort": {
"description": "Match totalTargetIndividualEfforts with any value. true to match Activities with any total target individual effort, false to match ProgramOfferings with no total target individual effort",
"type": "boolean"
},
"matchRecurringWeekly": {
"description": "Match boolean value for recurringWeekly.",
"type": "object",
"properties": {
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
},
"matchWeeklyEffort": {
"description": "Matches weeklyEfforts in the given range inclusive.",
"type": "array",
"items": {
"type": "object",
"properties": {
"from": {
"description": "start range",
"type": "string",
"format": "duration"
},
"to": {
"description": "end range",
"type": "string",
"format": "duration"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyWeeklyEffort": {
"description": "Match weeklyEfforts with any value. true to match Activities with any weekly effort, false to match ProgramOfferings with no weekly effort",
"type": "boolean"
},
"matchWeeklyContactTime": {
"description": "Matches weeklyContactTimes in the given range inclusive.",
"type": "array",
"items": {
"type": "object",
"properties": {
"from": {
"description": "start range",
"type": "string",
"format": "duration"
},
"to": {
"description": "end range",
"type": "string",
"format": "duration"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyWeeklyContactTime": {
"description": "Match weeklyContactTimes with any value. true to match Activities with any weekly contact time, false to match ProgramOfferings with no weekly contact time",
"type": "boolean"
},
"matchWeeklyIndividualEffort": {
"description": "Matches weeklyIndividualEfforts in the given range inclusive.",
"type": "array",
"items": {
"type": "object",
"properties": {
"from": {
"description": "start range",
"type": "string",
"format": "duration"
},
"to": {
"description": "end range",
"type": "string",
"format": "duration"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyWeeklyIndividualEffort": {
"description": "Match weeklyIndividualEfforts with any value. true to match Activities with any weekly individual effort, false to match ProgramOfferings with no weekly individual effort",
"type": "boolean"
},
"matchCourseCatalogIds": {
"description": "List of CourseCatalog Id's to match.",
"type": "array",
"items": {
"type": "object",
"properties": {
"courseCatalogId": {
"description": "Course Catalog id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"courseCatalogQueries": {
"description": "CourseCatalogQueries to match Course Catalog. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
}
}
}
Example:
{
"matchDisplayNames": [
{
"displayName": "string to exclude",
"match": false
}
]
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "course.Activity:6208@base.url",
"uri": "http://base.url/open/campusapi/course/activity/course.Activity%3A6208%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:6208@base.url",
"activityUnitId": "course.ActivityUnit:66@base.url",
"courseOfferingId": "course.CourseOffering:3111@base.url",
"termId": "course.Term:8657@base.url",
"instructorIds": [ "resource.Resource:9165@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" }
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 particular Activity given its id.
Update a particular Activity given its id.
Delete a particular Activity given its id.
get /activities/{activityId}
Get a particular Activity given its id.
URI Parameters
- activityId: required(string)
Query Parameters
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "endReason", "instructors", "activityUnit", "courseOffering", "term", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"id": "course.Activity:6208@base.url",
"uri": "http://base.url/open/campusapi/course/activity/course.Activity%3A6208%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:6208@base.url",
"activityUnitId": "course.ActivityUnit:66@base.url",
"courseOfferingId": "course.CourseOffering:3111@base.url",
"termId": "course.Term:8657@base.url",
"instructorIds": [ "resource.Resource:9165@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 particular Activity given its id.
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:3969@base.url",
"instructorIds": [ "resource.Resource:4267@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 particular Activity given its id.
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
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
- 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:9597@base.url",
"uri": "http://base.url/open/campusapi/course/term/course.Term%3A9597%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@base.url", "..." ],
"childTermIds": [ "course.Term:72348@base.url", "..." ]
},
{
"...": "..."
}
]
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"
}
Query the collection of Terms in a system, federation of systems, or in a default courseCatalog by posting a Query object.
Submit a query using a TermQuery object.
post /terms/term-query
Submit a query using a TermQuery object.
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
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "TermQuery",
"type": "object",
"properties": {
"matchIds": {
"description": "List of Ids to match. Boolean OR performed among multiple Ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchKeywords": {
"description": "List keywords to match. Multiple keywords can be added to perform a boolean OR among them. A keyword may be applied to any of the elements defined in this object such as the display name, description or any attribute defined in or implemented by this object.",
"type": "array",
"items": {
"type": "object",
"properties": {
"keyword": {
"description": "keyword to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchDisplayNames": {
"description": "List of displayName strings to match. Boolean OR performed among multiple displayNames.",
"type": "array",
"items": {
"type": "object",
"properties": {
"displayName": {
"description": "displayName to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchDescriptions": {
"description": "List of discription strings to match. Boolean OR performed among multiple descriptions.",
"type": "array",
"items": {
"type": "object",
"properties": {
"description": {
"description": "description to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchGenusTypeIds": {
"description": "List of genus type ids to match. Boolean OR performed among multiple ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"genusTypeid": {
"description": "genus type id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchRecordTypeIds": {
"description": "List of record type ids to match. Boolean OR performed among multiple ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"genusTypeid": {
"description": "record type id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchDisplayLabel": {
"description": "List of DisplayLabel strings to match. Boolean OR performed among multiple displayLabels.",
"type": "array",
"items": {
"type": "object",
"properties": {
"displayLabels": {
"description": "displayLabels to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyDisplayLabel": {
"description": "Match displayLabels with any value. true to match Terms with any display label, false to match ProgramOfferings with no display label",
"type": "boolean"
},
"matchOpenDate": {
"description": "Matches openDates between the given date range inclusive.",
"type": "array",
"items": {
"type": "object",
"properties": {
"low": {
"description": "low date range",
"type": "string",
"format": "date-time"
},
"high": {
"description": "high date range",
"type": "string",
"format": "date-time"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyOpenDate": {
"description": "Match openDates with any value. true to match Terms with any open date, false to match ProgramOfferings with no open date",
"type": "boolean"
},
"matchRegistrationStart": {
"description": "Matches registrationStarts between the given date range inclusive.",
"type": "array",
"items": {
"type": "object",
"properties": {
"low": {
"description": "low date range",
"type": "string",
"format": "date-time"
},
"high": {
"description": "high date range",
"type": "string",
"format": "date-time"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyRegistrationStart": {
"description": "Match registrationStarts with any value. true to match Terms with any registration start, false to match ProgramOfferings with no registration start",
"type": "boolean"
},
"matchRegistrationEnd": {
"description": "Matches registrationEnds between the given date range inclusive.",
"type": "array",
"items": {
"type": "object",
"properties": {
"low": {
"description": "low date range",
"type": "string",
"format": "date-time"
},
"high": {
"description": "high date range",
"type": "string",
"format": "date-time"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyRegistrationEnd": {
"description": "Match registrationEnds with any value. true to match Terms with any registration end, false to match ProgramOfferings with no registration end",
"type": "boolean"
},
"matchClassesStart": {
"description": "Matches classesStarts between the given date range inclusive.",
"type": "array",
"items": {
"type": "object",
"properties": {
"low": {
"description": "low date range",
"type": "string",
"format": "date-time"
},
"high": {
"description": "high date range",
"type": "string",
"format": "date-time"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyClassesStart": {
"description": "Match classesStarts with any value. true to match Terms with any classes start, false to match ProgramOfferings with no classes start",
"type": "boolean"
},
"matchClassesEnd": {
"description": "Matches classesEnds between the given date range inclusive.",
"type": "array",
"items": {
"type": "object",
"properties": {
"low": {
"description": "low date range",
"type": "string",
"format": "date-time"
},
"high": {
"description": "high date range",
"type": "string",
"format": "date-time"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyClassesEnd": {
"description": "Match classesEnds with any value. true to match Terms with any classes end, false to match ProgramOfferings with no classes end",
"type": "boolean"
},
"matchAddDate": {
"description": "Matches addDates between the given date range inclusive.",
"type": "array",
"items": {
"type": "object",
"properties": {
"low": {
"description": "low date range",
"type": "string",
"format": "date-time"
},
"high": {
"description": "high date range",
"type": "string",
"format": "date-time"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyAddDate": {
"description": "Match addDates with any value. true to match Terms with any add date, false to match ProgramOfferings with no add date",
"type": "boolean"
},
"matchDropDate": {
"description": "Matches dropDates between the given date range inclusive.",
"type": "array",
"items": {
"type": "object",
"properties": {
"low": {
"description": "low date range",
"type": "string",
"format": "date-time"
},
"high": {
"description": "high date range",
"type": "string",
"format": "date-time"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyDropDate": {
"description": "Match dropDates with any value. true to match Terms with any drop date, false to match ProgramOfferings with no drop date",
"type": "boolean"
},
"matchFinalExamStart": {
"description": "Matches finalExamStarts between the given date range inclusive.",
"type": "array",
"items": {
"type": "object",
"properties": {
"low": {
"description": "low date range",
"type": "string",
"format": "date-time"
},
"high": {
"description": "high date range",
"type": "string",
"format": "date-time"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyFinalExamStart": {
"description": "Match finalExamStarts with any value. true to match Terms with any final exam start, false to match ProgramOfferings with no final exam start",
"type": "boolean"
},
"matchFinalExamEnd": {
"description": "Matches finalExamEnds between the given date range inclusive.",
"type": "array",
"items": {
"type": "object",
"properties": {
"low": {
"description": "low date range",
"type": "string",
"format": "date-time"
},
"high": {
"description": "high date range",
"type": "string",
"format": "date-time"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyFinalExamEnd": {
"description": "Match finalExamEnds with any value. true to match Terms with any final exam end, false to match ProgramOfferings with no final exam end",
"type": "boolean"
},
"matchCloseDate": {
"description": "Matches closeDates between the given date range inclusive.",
"type": "array",
"items": {
"type": "object",
"properties": {
"low": {
"description": "low date range",
"type": "string",
"format": "date-time"
},
"high": {
"description": "high date range",
"type": "string",
"format": "date-time"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyCloseDate": {
"description": "Match closeDates with any value. true to match Terms with any close date, false to match ProgramOfferings with no close date",
"type": "boolean"
},
"matchCourseCatalogIds": {
"description": "List of CourseCatalog Id's to match.",
"type": "array",
"items": {
"type": "object",
"properties": {
"courseCatalogId": {
"description": "Course Catalog id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"courseCatalogQueries": {
"description": "CourseCatalogQueries to match Course Catalog. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
}
}
}
Example:
{
"matchDisplayNames": [
{
"displayName": "string to exclude",
"match": false
}
]
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "course.Term:9597@base.url",
"uri": "http://base.url/open/campusapi/course/term/course.Term%3A9597%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@base.url", "..." ],
"childTermIds": [ "course.Term:72348@base.url", "..." ]
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
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:9597@base.url",
"uri": "http://base.url/open/campusapi/course/term/course.Term%3A9597%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@base.url", "..." ],
"childTermIds": [ "course.Term:72348@base.url", "..." ]
},
{
"...": "..."
}
]
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 particular Term given its id.
Update a particular Term given its id.
Delete a particular Term given its id.
get /terms/{termId}
Get a particular Term given its id.
URI Parameters
- termId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"id": "course.Term:9597@base.url",
"uri": "http://base.url/open/campusapi/course/term/course.Term%3A9597%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@base.url", "..." ],
"childTermIds": [ "course.Term:72348@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": "Term not found" }
put /terms/{termId}
Update a particular Term given its id.
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 particular Term given its id.
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:9597@base.url",
"uri": "http://base.url/open/campusapi/course/term/course.Term%3A9597%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@base.url", "..." ],
"childTermIds": [ "course.Term:72348@base.url", "..." ]
},
{
"...": "..."
}
]
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:9597@base.url",
"uri": "http://base.url/open/campusapi/course/term/course.Term%3A9597%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@base.url", "..." ],
"childTermIds": [ "course.Term:72348@base.url", "..." ]
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
/course-catalogs
Collection of CourseCatalogs in a system or federation of systems.
Get all CourseCatalogs.
Create a new CourseCatalog.
get /course-catalogs
Get all CourseCatalogs.
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
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "provider", "branding", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
- 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:8936@base.url",
"uri": "http://base.url/open/campusapi/course/courseCatalog/course.CourseCatalog%3A8936%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 CourseCatalog.
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"
}
Query the collection of CourseCatalogs in a system, federation of systems, or in a default courseCatalog by posting a Query object.
Submit a query using a CourseCatalogQuery object.
post /course-catalogs/course-catalog-query
Submit a query using a CourseCatalogQuery object.
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
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "CourseCatalogQuery",
"type": "object",
"properties": {
"matchIds": {
"description": "List of Ids to match. Boolean OR performed among multiple Ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchKeywords": {
"description": "List keywords to match. Multiple keywords can be added to perform a boolean OR among them. A keyword may be applied to any of the elements defined in this object such as the display name, description or any attribute defined in or implemented by this object.",
"type": "array",
"items": {
"type": "object",
"properties": {
"keyword": {
"description": "keyword to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchDisplayNames": {
"description": "List of displayName strings to match. Boolean OR performed among multiple displayNames.",
"type": "array",
"items": {
"type": "object",
"properties": {
"displayName": {
"description": "displayName to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchDescriptions": {
"description": "List of discription strings to match. Boolean OR performed among multiple descriptions.",
"type": "array",
"items": {
"type": "object",
"properties": {
"description": {
"description": "description to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchGenusTypeIds": {
"description": "List of genus type ids to match. Boolean OR performed among multiple ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"genusTypeid": {
"description": "genus type id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchRecordTypeIds": {
"description": "List of record type ids to match. Boolean OR performed among multiple ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"genusTypeid": {
"description": "record type id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchProviderIds": {
"description": "List of provider Ids to match.",
"type": "array",
"items": {
"type": "object",
"properties": {
"stateId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"providerQueries": {
"description": "resource.ResourceQuery for provider. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
},
"matchAnyProvider": {
"description": "Match providers with any value. true to match CourseCatalog with any provider, false to match CourseCatalog with no provider",
"type": "boolean"
}
},
"matchBrandingIds": {
"description": "List of branding asset Ids to match.",
"type": "array",
"items": {
"type": "object",
"properties": {
"stateId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"brandingQueries": {
"description": "repository.AssetQuery for branding. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchAnyBranding": {
"description": "Match brandingss with any value. true to match CourseCatalog with any branding, false to match CourseCatalog with no branding",
"type": "boolean"
},
"matchlicenses": {
"description": "List of license strings to match. Boolean OR performed among multiple descriptions.",
"type": "array",
"items": {
"type": "object",
"properties": {
"license": {
"description": "license to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchCourseCatalogIds": {
"description": "List of CourseCatalog Id's to match.",
"type": "array",
"items": {
"type": "object",
"properties": {
"courseCatalogId": {
"description": "Course Catalog id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"courseCatalogQueries": {
"description": "CourseCatalogQueries to match Course Catalog. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
}
}
}
Example:
{
"matchDisplayNames": [
{
"displayName": "string to exclude",
"match": false
}
]
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "course.CourseCatalog:8936@base.url",
"uri": "http://base.url/open/campusapi/course/courseCatalog/course.CourseCatalog%3A8936%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 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:8936@base.url",
"uri": "http://base.url/open/campusapi/course/courseCatalog/course.CourseCatalog%3A8936%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 CourseCatalog
Get a particular CourseCatalog given its id.
Update a particular CourseCatalog given its id.
Delete a particular CourseCatalog given its id.
get /course-catalogs/{courseCatalogId}
Get a particular CourseCatalog given its id.
URI Parameters
- courseCatalogId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"id": "course.CourseCatalog:8936@base.url",
"uri": "http://base.url/open/campusapi/course/courseCatalog/course.CourseCatalog%3A8936%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": "CourseCatalog not found" }
put /course-catalogs/{courseCatalogId}
Update a particular CourseCatalog given its id.
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 CourseCatalog 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": "CourseCatalog not found" }
delete /course-catalogs/{courseCatalogId}
Delete a particular CourseCatalog given its id.
URI Parameters
- courseCatalogId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The CourseCatalog 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": "CourseCatalog 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:8936@base.url",
"uri": "http://base.url/open/campusapi/course/courseCatalog/course.CourseCatalog%3A8936%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:8936@base.url",
"uri": "http://base.url/open/campusapi/course/courseCatalog/course.CourseCatalog%3A8936%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)
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
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "sponsors", "credits", "prerequisites", "levels", "gradingOptions", "learningObjectives", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
- 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
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "course.Course:8112@base.url",
"uri": "http://base.url/open/campusapi/course/course/course.Course%3A8112%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:7846@base.url", "..." ],
"creditIds": [ "grading.Grade:3688@base.url", "..." ],
"prerequisitesInfo": "This is the PrerequisitesInfo",
"prerequisiteIds": [ "course.requisite.Requisite:6755@base.url", "..." ],
"levelIds": [ "grading.Grade:5521@base.url", "..." ],
"gradingOptionIds": [ "grading.GradeSystem:9182@base.url", "..." ],
"learningObjectiveIds": [ "learning.Objective:4510@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 ActivityUnits in this CourseCatalog
get /course-catalogs/{courseCatalogId}/activity-units
Get all ActivityUnits in this CourseCatalog
URI Parameters
- courseCatalogId: required(string)
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
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "learningObjectives", "course", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
- 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
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "course.ActivityUnit:6181@base.url",
"uri": "http://base.url/open/campusapi/course/activity_unit/course.ActivityUnit%3A6181%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:2553@base.url",
"totalTargetEffort": "P3DT3H",
"contact": true,
"totalTargetContactTime": "P3DT3H",
"totalTargetIndividualEffort": "P3DT3H",
"recurringWeekly": true,
"weeklyEffort": "PT4H",
"weeklyContactTime": "PT4H",
"weeklyIndividualEffort": "PT4H",
"learningObjectiveIds": [ "learning.Objective:2889@base.url", "..." ]
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Add the given ActivityUnit to this CourseCatalog
Remove the given ActivityUnit from the CourseCatalog.
put /course-catalogs/{courseCatalogId}/activity-units/{activityUnitId}
Add the given ActivityUnit to this CourseCatalog
URI Parameters
- courseCatalogId: required(string)
- activityUnitId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "ActivityUnit 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": "ActivityUnit not found" }
delete /course-catalogs/{courseCatalogId}/activity-units/{activityUnitId}
Remove the given ActivityUnit from the CourseCatalog.
URI Parameters
- courseCatalogId: required(string)
- activityUnitId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "ActivityUnit 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": "ActivityUnit not found" }
Get all CourseOfferings in this CourseCatalog
get /course-catalogs/{courseCatalogId}/course-offerings
Get all CourseOfferings in this CourseCatalog
URI Parameters
- courseCatalogId: required(string)
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
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "endReason", "instructors", "sponsors", "credits", "gradingOptions", "event", "course", "term", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
- 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
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "course.CourseOffering:8439@base.url",
"uri": "http://base.url/open/campusapi/course/courseOffering/course.CourseOffering%3A8439%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:8439@base.url",
"courseId": "course.Course:4181@base.url",
"termId": "course.Term:1656@base.url",
"title": "This is the Title",
"number": "101",
"instructorIds": [ "resource.Resource:2701@base.url", "..." ],
"sponsorIds": [ "resource.Resource:8917@base.url", "..." ],
"creditIds": [ "grading.Grade:667@base.url", "..." ],
"gradingOptionIds": [ "grading.GradeSystem:8589@base.url", "..." ],
"requiresRegistration": true,
"minimumSeats": 1,
"maximumSeats": 42,
"url": "http://dxtera.org",
"scheduleInfo": "This is the ScheduleInfo",
"eventId": "calendaring.Event:1482@base.url"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Add the given CourseOffering to this CourseCatalog
Remove the given CourseOffering from the CourseCatalog.
put /course-catalogs/{courseCatalogId}/course-offerings/{courseOfferingId}
Add the given CourseOffering to this CourseCatalog
URI Parameters
- courseCatalogId: required(string)
- courseOfferingId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "CourseOffering 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": "CourseOffering not found" }
delete /course-catalogs/{courseCatalogId}/course-offerings/{courseOfferingId}
Remove the given CourseOffering from the CourseCatalog.
URI Parameters
- courseCatalogId: required(string)
- courseOfferingId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "CourseOffering 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": "CourseOffering not found" }
Get all Activities in this CourseCatalog
get /course-catalogs/{courseCatalogId}/activities
Get all Activities in this CourseCatalog
URI Parameters
- courseCatalogId: required(string)
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
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "endReason", "instructors", "activityUnit", "courseOffering", "term", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
- 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
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "course.Activity:6208@base.url",
"uri": "http://base.url/open/campusapi/course/activity/course.Activity%3A6208%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:6208@base.url",
"activityUnitId": "course.ActivityUnit:66@base.url",
"courseOfferingId": "course.CourseOffering:3111@base.url",
"termId": "course.Term:8657@base.url",
"instructorIds": [ "resource.Resource:9165@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)
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
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
- 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
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "course.Term:9597@base.url",
"uri": "http://base.url/open/campusapi/course/term/course.Term%3A9597%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@base.url", "..." ],
"childTermIds": [ "course.Term:72348@base.url", "..." ]
},
{
"...": "..."
}
]
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" }