CampusAPI Plan Services API documentation version 1.0.2
Based on OSID version 3.0.0
https://base.url/plan
Overview
The Course Plan package maps syllabi defined in the Course Syllabus package to scheduled Activities to manage the logistics of following a lesson plan during an offering of a course.
This package includes the following entities:
Plans
A Plan is an relationship that relates a Syllabus to a CourseOffering to form a lesson plan. All or a selected set of Modules within a Syllabus may be included in the Plan .
Field | Description | Type |
---|---|---|
id(read‑only) | The unique id of this plan, provided by system. | string(osid‑id) |
uri(read‑only) | The uri of this plan, provided by system. | string(uri) |
displayName | The name of this plan for display. | string |
description | The description of this plan. | string |
genusTypeId (read‑only) | Id of the immutable type of this plan. Default type set by system unless specified in query parameter. | string(osid‑id) |
recordTypeIds (read‑only) | Type Ids of record types available on this plan. 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 plan. | string(date‑time) |
endDate | The ending date of this plan. | string(date‑time) |
endReasonId | The reason this plan ended. References a process.State object. | string(osid‑id) |
syllabusId (read‑only) | The syllabus associated with this plan. References a syllabus.Syllabus object. | string(osid‑id) |
courseOfferingId (read‑only) | The course offering associated with this plan. References a course.CourseOffering object. | string(osid‑id) |
moduleIds | The modules to apply to this plan. References an array of syllabus.Module objects. | string(osid‑id)[] |
Lessons
A Lesson is an relationship mapping a Plan to a Docet in a Syllabus. A Lesson has a time duration covering one or more Activities and may be checked off or skipped during the execution of the course.
The Activities relating to Lessons are instances of an Activity as determined by the Activity schedule. Each instance of an Activity, such as the 10/31 lecture of a lecture ActivityUnit during fall semester, has its own Id that is referenced from a Lesson.
Lessons may appear automatically from the creation of a Plan that is the result of an overlay of the Syllabus on to the set of Activity instances as determined by the Activity schedule. The Lessons can be examined or marked as skipped. Changes to the Lesson duration occur in its related Docet.
Lessons may be anchored to begin at designated Activity instances using lessonAnchoring. Overlaps or gaps in the overall lesson Plan can be examined through lessonConflict.
Field | Description | Type |
---|---|---|
id(read‑only) | The unique id of this lesson, provided by system. | string(osid‑id) |
uri(read‑only) | The uri of this lesson, provided by system. | string(uri) |
displayName | The name of this lesson for display. | string |
description | The description of this lesson. | string |
genusTypeId (read‑only) | Id of the immutable type of this lesson. Default type set by system unless specified in query parameter. | string(osid‑id) |
recordTypeIds (read‑only) | Type Ids of record types available on this lesson. 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 lesson. | string(date‑time) |
endDate | The ending date of this lesson. | string(date‑time) |
endReasonId | The reason this lesson ended. References a process.State object. | string(osid‑id) |
planId (read‑only) | The plan associated with this lesson. References a plan.Plan object. | string(osid‑id) |
docetId (read‑only) | The docet associated with this lesson. References a syllabus.Docet object. | string(osid‑id) |
activityIds | The activities to which this lesson applies. References an array of course.Activity objects. | string(osid‑id)[] |
plannedStartTime | The planned start time within the first activity as deteremined by the Lesson scheduling. | string(duration) |
begun | -- could someone please write a description for this -- | boolean |
actualStartTime | The actual start time. | string(duration) |
actualStartingActivityId | The activity when this lesson actually began. References a course.Activity object | string(osid‑id) |
complete | -- could someone please write a description for this -- | boolean |
skipped | Tests if this lesson has been marked as skipped. | boolean |
actualEndTime | The actual completion time. | string(duration) |
actualEndingActivityId | The activity when this lesson was completed or skipped. References a course.Activity object | string(osid‑id) |
actualTimeSpent | The actual duration of this lesson if it has completed, in progress, or skipped. | string(duration) |
CourseCatalogs
Courses, ActivityUnits, CourseOfferings, Activities, and Terms can be organized into federateble catalogs. CourseCatalogs can be used to represent a set of CourseOfferings offered in a specific Term, year, or by subject area, sponsor, campus, etc.
Field | Description | Type |
---|---|---|
id(read‑only) | The unique id of this course catalog, provided by system. | string(osid‑id) |
uri(read‑only) | The uri of this course catalog, provided by system. | string(uri) |
displayName | The name of this course catalog for display. | string |
description | The description of this course catalog. | string |
genusTypeId (read‑only) | Id of the immutable type of this course catalog. Default type set by system unless specified in query parameter. | string(osid‑id) |
recordTypeIds (read‑only) | Type Ids of record types available on this course catalog. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere. | string(osid‑id)[] |
providerId | The provider of this course catalog. References a resource.Resource object. | string(osid‑id) |
brandingIds | The branding of this course catalog. References repository.Asset objects. | string(osid‑id)[] |
license | The licensing that applies to this course catalog. | string |
License
CampusAPI REST Documentation Copyright 2020 DXtera Institute. Based on the Open Service Interface Defitions: http://osid.org
/plans
Collection of plans in a system, federation of systems, or in a default courseCatalog.
Get all plans in the system or default courseCatalog.
Create a new plan in the default courseCatalog.
get /plans
Get all plans in the system or default courseCatalog.
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- genusTypeId: (string)
The id string to match a genusType
Example:
type.Type%3AexamplePlanType%40dxtera.org
- parentGenusTypeId: (string)
The id string to match a parent genusType
Example:
type.Type%3AparentTypeExamplePlanType%40dxtera.org
- recordTypeId: (string)
The id string to match a recordType
Example:
type.Type%3AexamplePlanType%40campusapi.org
- fromDate: (string)
Get all plans from this date inclusive. Use with toDate to define date range query.
Example:
2020-10-03
- toDate: (string)
Get all plans up to this date inclusive. Use with fromDate to define date range query.
Example:
2020-12-18
- syllabusId: (string)
the id string to match a syllabus.
Example:
syllabus.Syllabus%3A256%40base.url
- courseOfferingId: (string)
the id string to match a course-offering.
Example:
course.CourseOffering%3A360%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": "plan.Plan:2603@base.url",
"uri": "http://base.url/open/campusapi/plan/plan/plan.Plan%3A2603%40base.url",
"displayName": "Display Name of this Plan",
"description": "The description of this Plan",
"genusTypeId": "type.Type:defaultPlanType@base.url",
"recordTypeIds": [ "type.Type:examplePlanRecordType@campusapi.org", "..."],
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"endReasonId": "process.State:2603@base.url",
"syllabusId": "course.syllabus.Syllabus:5896@base.url",
"courseOfferingId": "course.CourseOffering:2872@base.url",
"modules": [ "course.syllabus.Module:8579@base.url", "..." ]
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
post /plans
Create a new plan in the default courseCatalog.
Query Parameters
- syllabusId: required(string)
the syllabus of this plan.
Example:
syllabus.Syllabus%3A256%40base.url
- courseOfferingId: required(string)
the course-offering of this plan.
Example:
course.CourseOffering%3A360%40base.url
- genusType: (string)
specify a particular plan type to create
Example:
type.Type%3AexamplePlanType%40dxtera.org
- recordType: (array of )
specify support for one or more plan record types
Example:
[ "type.Type%3AexamplePlanRecordType%40campusapi.org", "..." ]
- courseCatalogId: (string)
specify in which course-catalog to create this plan
Example:
plan.CourseCatalog%3A8374%40base.url
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Plan",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this plan, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this plan, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this plan for display.",
"type": "string"
},
"description": {
"description": "The description of this plan.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this plan. 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 plan. 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 plan.",
"type": "string",
"format": "date-time"
},
"endDate": {
"description": "The ending date of this plan.",
"type": "string",
"format": "date-time"
},
"endReasonId": {
"description": "The reason this plan ended.",
"type": "string",
"format": "osid-id"
},
"syllabusId": {
"description": "The syllabus associated with this plan.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"courseOfferingId": {
"description": "The course offering associated with this plan.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"moduleIds": {
"description": "The modules to apply to this plan.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
}
}
}
}
Example:
{
"displayName": "Display Name of this Plan",
"description": "The description of this Plan",
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"endReasonId": "process.State:6914@base.url",
"modules": [ "course.syllabus.Module:4336@base.url", "..." ]
}
Entity representing a plan form metadata.
Get form metadata for creating a new plan.
get /plans/metadata
Get form metadata for creating a new plan.
Query Parameters
- syllabusId: required(string)
the syllabus of this metadatum.
Example:
syllabus.Syllabus%3A256%40base.url
- courseOfferingId: required(string)
the course-offering of this metadatum.
Example:
course.CourseOffering%3A360%40base.url
- genusType: (string)
specify a particular plan type to create
Example:
type.Type%3AexamplePlanType%40dxtera.org
- recordType: (array of )
specify support for one or more plan record types
Example:
[ "type.Type%3AexamplePlanRecordType%40campusapi.org", "..." ]
- courseCatalogId: (string)
specify in which course-catalog to create this plan
Example:
plan.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": "Plan",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this plan, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this plan, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this plan for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Plan.Plan:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this plan",
"linked": false
},
"description": {
"description": "The description of this plan.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Plan.Plan:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this plan",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this plan. 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 plan. 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 plan.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Plan.Plan:startDate@base.url",
"existingValue": "2020-10-03T08:00:00.000Z",
"elementLabel": "Start Date",
"instructions": "Enter a starting date for this plan",
"linked": false
},
"endDate": {
"description": "The ending date of this plan.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Plan.Plan:endDate@base.url",
"existingValue": "2020-12-18T17:00:00.000Z",
"elementLabel": "End Date",
"instructions": "Enter an ending date for this plan",
"linked": false
},
"endReasonId": {
"description": "The reason this plan ended. A process/State object.",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Plan.Plan:endReason@base.url",
"existingValue": "process.State:1860@base.url",
"elementLabel": "End Reason",
"instructions": "Select the reason this plan ended",
"linked": false
},
"modules": {
"description": "The modules to apply to this plan.",
"type": "array",
"elementId": "course.plan.Plan:modules@dxtera.org",
"existingValue": [],
"elementLabel": "Modules",
"instructions": "Enter Ids for modules of this plan.",
"linked": false
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Entity representing a plan
Get a plan given its id.
Update a given plan.
Delete a given plan.
get /plans/{planId}
Get a plan given its id.
URI Parameters
- planId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"id": "plan.Plan:2603@base.url",
"uri": "http://base.url/open/campusapi/plan/plan/plan.Plan%3A2603%40base.url",
"displayName": "Display Name of this Plan",
"description": "The description of this Plan",
"genusTypeId": "type.Type:defaultPlanType@base.url",
"recordTypeIds": [ "type.Type:examplePlanRecordType@campusapi.org", "..."],
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"endReasonId": "process.State:2603@base.url",
"syllabusId": "course.syllabus.Syllabus:5896@base.url",
"courseOfferingId": "course.CourseOffering:2872@base.url",
"modules": [ "course.syllabus.Module:8579@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": "plan not found" }
put /plans/{planId}
Update a given plan.
URI Parameters
- planId: required(string)
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Plan",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this plan, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this plan, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this plan for display.",
"type": "string"
},
"description": {
"description": "The description of this plan.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this plan. 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 plan. 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 plan.",
"type": "string",
"format": "date-time"
},
"endDate": {
"description": "The ending date of this plan.",
"type": "string",
"format": "date-time"
},
"endReasonId": {
"description": "The reason this plan ended.",
"type": "string",
"format": "osid-id"
},
"syllabusId": {
"description": "The syllabus associated with this plan.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"courseOfferingId": {
"description": "The course offering associated with this plan.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"moduleIds": {
"description": "The modules to apply to this plan.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
}
}
}
}
Example:
{
"displayName": "Display Name of this Plan",
"description": "The description of this Plan",
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"endReasonId": "process.State:6914@base.url",
"modules": [ "course.syllabus.Module:4336@base.url", "..." ]
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The plan 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": "plan not found" }
delete /plans/{planId}
Delete a given plan.
URI Parameters
- planId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The plan 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": "plan not found" }
Entity representing a plan form metadata for update
Get form metadata for updating an existing plan.
get /plans/{planId}/metadata
Get form metadata for updating an existing plan.
URI Parameters
- planId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "Plan",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this plan, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this plan, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this plan for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Plan.Plan:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this plan",
"linked": false
},
"description": {
"description": "The description of this plan.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Plan.Plan:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this plan",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this plan. 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 plan. 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 plan.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Plan.Plan:startDate@base.url",
"existingValue": "2020-10-03T08:00:00.000Z",
"elementLabel": "Start Date",
"instructions": "Enter a starting date for this plan",
"linked": false
},
"endDate": {
"description": "The ending date of this plan.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Plan.Plan:endDate@base.url",
"existingValue": "2020-12-18T17:00:00.000Z",
"elementLabel": "End Date",
"instructions": "Enter an ending date for this plan",
"linked": false
},
"endReasonId": {
"description": "The reason this plan ended. A process/State object.",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Plan.Plan:endReason@base.url",
"existingValue": "process.State:1860@base.url",
"elementLabel": "End Reason",
"instructions": "Select the reason this plan ended",
"linked": false
},
"modules": {
"description": "The modules to apply to this plan.",
"type": "array",
"elementId": "course.plan.Plan:modules@dxtera.org",
"existingValue": [],
"elementLabel": "Modules",
"instructions": "Enter Ids for modules of this plan.",
"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": "plan not found" }
/lessons
Collection of lessons in a system, federation of systems, or in a default courseCatalog.
Get all lessons in the system or default courseCatalog.
Create a new lesson in the default courseCatalog.
get /lessons
Get all lessons in the system or default courseCatalog.
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- genusTypeId: (string)
The id string to match a genusType
Example:
type.Type%3AexampleLessonType%40dxtera.org
- parentGenusTypeId: (string)
The id string to match a parent genusType
Example:
type.Type%3AparentTypeExampleLessonType%40dxtera.org
- recordTypeId: (string)
The id string to match a recordType
Example:
type.Type%3AexampleLessonType%40campusapi.org
- fromDate: (string)
Get all lessons from this date inclusive. Use with toDate to define date range query.
Example:
2020-10-03
- toDate: (string)
Get all lessons up to this date inclusive. Use with fromDate to define date range query.
Example:
2020-12-18
- planId: (string)
the id string to match a plan.
Example:
plan.Plan%3A96%40base.url
- docetId: (string)
the id string to match a docet.
Example:
syllabus.Docet%3A240%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": "plan.Lesson:914@base.url",
"uri": "http://base.url/open/campusapi/plan/lesson/plan.Lesson%3A914%40base.url",
"displayName": "Display Name of this Lesson",
"description": "The description of this Lesson",
"genusTypeId": "type.Type:defaultLessonType@base.url",
"recordTypeIds": [ "type.Type:exampleLessonRecordType@campusapi.org", "..."],
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"endReasonId": "process.State:914@base.url",
"planId": "course.plan.Plan:262@base.url",
"docetId": "course.syllabus.Docet:2533@base.url",
"activities": [ "course.Activity:1295@base.url", "..." ],
"plannedStartTime": "P3DT3H",
"begun": true,
"actualStartTime": "P3DT3H",
"actualStartingActivityId": "course.Activity:9666@base.url",
"complete": true,
"skipped": true,
"actualEndTime": "P3DT3H",
"actualEndingActivityId": "course.Activity:2293@base.url",
"actualTimeSpent": "P3DT3H"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
post /lessons
Create a new lesson in the default courseCatalog.
Query Parameters
- planId: required(string)
the plan of this lesson.
Example:
plan.Plan%3A96%40base.url
- docetId: required(string)
the docet of this lesson.
Example:
syllabus.Docet%3A240%40base.url
- genusType: (string)
specify a particular lesson type to create
Example:
type.Type%3AexampleLessonType%40dxtera.org
- recordType: (array of )
specify support for one or more lesson record types
Example:
[ "type.Type%3AexampleLessonRecordType%40campusapi.org", "..." ]
- courseCatalogId: (string)
specify in which course-catalog to create this lesson
Example:
plan.CourseCatalog%3A8374%40base.url
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Lesson",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this lesson, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this lesson, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this lesson for display.",
"type": "string"
},
"description": {
"description": "The description of this lesson.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this lesson. 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 lesson. 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 lesson.",
"type": "string",
"format": "date-time"
},
"endDate": {
"description": "The ending date of this lesson.",
"type": "string",
"format": "date-time"
},
"endReasonId": {
"description": "The reason this lesson ended.",
"type": "string",
"format": "osid-id"
},
"planId": {
"description": "The plan associated with this lesson.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"docetId": {
"description": "The docet associated with this lesson.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"activityIds": {
"description": "The activities to which this lesson applies.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
}
},
"plannedStartTime": {
"description": "The planned start time within the first activity as deteremined by the Lesson scheduling.",
"type": "string",
"format": "duration"
},
"begun": {
"description": "-- could someone please write a description for this --",
"type": "boolean"
},
"actualStartTime": {
"description": "The actual start time.",
"type": "string",
"format": "duration"
},
"actualStartingActivityId": {
"description": "The activity when this lesson actually began.",
"type": "string",
"format": "osid-id"
},
"complete": {
"description": "-- could someone please write a description for this --",
"type": "boolean"
},
"skipped": {
"description": "Tests if this lesson has been marked as skipped.",
"type": "boolean"
},
"actualEndTime": {
"description": "The actual completion time.",
"type": "string",
"format": "duration"
},
"actualEndingActivityId": {
"description": "The activity when this lesson was completed or skipped.",
"type": "string",
"format": "osid-id"
},
"actualTimeSpent": {
"description": "The actual duration of this lesson if it has completed, in progress, or skipped.",
"type": "string",
"format": "duration"
}
}
}
Example:
{
"displayName": "Display Name of this Lesson",
"description": "The description of this Lesson",
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"endReasonId": "process.State:6119@base.url",
"activities": [ "course.Activity:9958@base.url", "..." ],
"plannedStartTime": "P3DT3H",
"begun": true,
"actualStartTime": "P3DT3H",
"actualStartingActivityId": "course.Activity:5496@base.url",
"complete": true,
"skipped": true,
"actualEndTime": "P3DT3H",
"actualEndingActivityId": "course.Activity:5345@base.url",
"actualTimeSpent": "P3DT3H"
}
Entity representing a lesson form metadata.
Get form metadata for creating a new lesson.
get /lessons/metadata
Get form metadata for creating a new lesson.
Query Parameters
- planId: required(string)
the plan of this metadatum.
Example:
plan.Plan%3A96%40base.url
- docetId: required(string)
the docet of this metadatum.
Example:
syllabus.Docet%3A240%40base.url
- genusType: (string)
specify a particular lesson type to create
Example:
type.Type%3AexampleLessonType%40dxtera.org
- recordType: (array of )
specify support for one or more lesson record types
Example:
[ "type.Type%3AexampleLessonRecordType%40campusapi.org", "..." ]
- courseCatalogId: (string)
specify in which course-catalog to create this lesson
Example:
plan.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": "Lesson",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this lesson, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this lesson, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this lesson for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Lesson.Lesson:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this lesson",
"linked": false
},
"description": {
"description": "The description of this lesson.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Lesson.Lesson:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this lesson",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this lesson. 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 lesson. 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 lesson.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Lesson.Lesson:startDate@base.url",
"existingValue": "2020-10-03T08:00:00.000Z",
"elementLabel": "Start Date",
"instructions": "Enter a starting date for this lesson",
"linked": false
},
"endDate": {
"description": "The ending date of this lesson.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Lesson.Lesson:endDate@base.url",
"existingValue": "2020-12-18T17:00:00.000Z",
"elementLabel": "End Date",
"instructions": "Enter an ending date for this lesson",
"linked": false
},
"endReasonId": {
"description": "The reason this lesson ended. A process/State object.",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Lesson.Lesson:endReason@base.url",
"existingValue": "process.State:1860@base.url",
"elementLabel": "End Reason",
"instructions": "Select the reason this lesson ended",
"linked": false
},
"activities": {
"description": "The activities to which this lesson applies.",
"type": "array",
"elementId": "course.plan.Lesson:activities@dxtera.org",
"existingValue": [],
"elementLabel": "Activities",
"instructions": "Enter Ids for activities of this lesson.",
"linked": false
},
"plannedStartTime": {
"description": "The planned start time within the first activity as deteremined by the Lesson scheduling.",
"type": "string",
"format": "duration",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.plan.Lesson:plannedStartTime@dxtera.org",
"existingValue": "",
"elementLabel": "Planned Start Time",
"instructions": "Enter the planned start time of this lesson.",
"linked": false
},
"begun": {
"description": "-- could someone please write a description for this --",
"type": "boolean",
"elementId": "course.plan.Lesson:begun@dxtera.org",
"existingValue": false,
"elementLabel": "Begun",
"instructions": "Enter true or false.",
"linked": false
},
"actualStartTime": {
"description": "The actual start time.",
"type": "string",
"format": "duration",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.plan.Lesson:actualStartTime@dxtera.org",
"existingValue": "",
"elementLabel": "Actual Start Time",
"instructions": "Enter the actual start time of this lesson.",
"linked": false
},
"actualStartingActivityId": {
"description": "The activity when this lesson actually began.",
"type": "string",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.plan.Lesson:actualStartingActivity@dxtera.org",
"existingValue": null,
"elementLabel": "Actual Starting Activity",
"instructions": "Enter the Id of the actual starting activity for this lesson.",
"linked": false
},
"complete": {
"description": "-- could someone please write a description for this --",
"type": "boolean",
"elementId": "course.plan.Lesson:complete@dxtera.org",
"existingValue": false,
"elementLabel": "Complete",
"instructions": "Enter true or false.",
"linked": false
},
"skipped": {
"description": "Tests if this lesson has been marked as skipped.",
"type": "boolean",
"elementId": "course.plan.Lesson:skipped@dxtera.org",
"existingValue": false,
"elementLabel": "Skipped",
"instructions": "Enter true or false.",
"linked": false
},
"actualEndTime": {
"description": "The actual completion time.",
"type": "string",
"format": "duration",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.plan.Lesson:actualEndTime@dxtera.org",
"existingValue": "",
"elementLabel": "Actual End Time",
"instructions": "Enter the actual end time of this lesson.",
"linked": false
},
"actualEndingActivityId": {
"description": "The activity when this lesson was completed or skipped.",
"type": "string",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.plan.Lesson:actualEndingActivity@dxtera.org",
"existingValue": null,
"elementLabel": "Actual Ending Activity",
"instructions": "Enter the Id of the actual ending activity for this lesson.",
"linked": false
},
"actualTimeSpent": {
"description": "The actual duration of this lesson if it has completed, in progress, or skipped.",
"type": "string",
"format": "duration",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.plan.Lesson:actualTimeSpent@dxtera.org",
"existingValue": "",
"elementLabel": "Actual Time Spent",
"instructions": "Enter the actual time spent of this lesson.",
"linked": false
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Entity representing a lesson
Get a lesson given its id.
Update a given lesson.
Delete a given lesson.
get /lessons/{lessonId}
Get a lesson given its id.
URI Parameters
- lessonId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"id": "plan.Lesson:914@base.url",
"uri": "http://base.url/open/campusapi/plan/lesson/plan.Lesson%3A914%40base.url",
"displayName": "Display Name of this Lesson",
"description": "The description of this Lesson",
"genusTypeId": "type.Type:defaultLessonType@base.url",
"recordTypeIds": [ "type.Type:exampleLessonRecordType@campusapi.org", "..."],
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"endReasonId": "process.State:914@base.url",
"planId": "course.plan.Plan:262@base.url",
"docetId": "course.syllabus.Docet:2533@base.url",
"activities": [ "course.Activity:1295@base.url", "..." ],
"plannedStartTime": "P3DT3H",
"begun": true,
"actualStartTime": "P3DT3H",
"actualStartingActivityId": "course.Activity:9666@base.url",
"complete": true,
"skipped": true,
"actualEndTime": "P3DT3H",
"actualEndingActivityId": "course.Activity:2293@base.url",
"actualTimeSpent": "P3DT3H"
}
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": "lesson not found" }
put /lessons/{lessonId}
Update a given lesson.
URI Parameters
- lessonId: required(string)
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Lesson",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this lesson, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this lesson, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this lesson for display.",
"type": "string"
},
"description": {
"description": "The description of this lesson.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this lesson. 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 lesson. 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 lesson.",
"type": "string",
"format": "date-time"
},
"endDate": {
"description": "The ending date of this lesson.",
"type": "string",
"format": "date-time"
},
"endReasonId": {
"description": "The reason this lesson ended.",
"type": "string",
"format": "osid-id"
},
"planId": {
"description": "The plan associated with this lesson.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"docetId": {
"description": "The docet associated with this lesson.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"activityIds": {
"description": "The activities to which this lesson applies.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
}
},
"plannedStartTime": {
"description": "The planned start time within the first activity as deteremined by the Lesson scheduling.",
"type": "string",
"format": "duration"
},
"begun": {
"description": "-- could someone please write a description for this --",
"type": "boolean"
},
"actualStartTime": {
"description": "The actual start time.",
"type": "string",
"format": "duration"
},
"actualStartingActivityId": {
"description": "The activity when this lesson actually began.",
"type": "string",
"format": "osid-id"
},
"complete": {
"description": "-- could someone please write a description for this --",
"type": "boolean"
},
"skipped": {
"description": "Tests if this lesson has been marked as skipped.",
"type": "boolean"
},
"actualEndTime": {
"description": "The actual completion time.",
"type": "string",
"format": "duration"
},
"actualEndingActivityId": {
"description": "The activity when this lesson was completed or skipped.",
"type": "string",
"format": "osid-id"
},
"actualTimeSpent": {
"description": "The actual duration of this lesson if it has completed, in progress, or skipped.",
"type": "string",
"format": "duration"
}
}
}
Example:
{
"displayName": "Display Name of this Lesson",
"description": "The description of this Lesson",
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"endReasonId": "process.State:6119@base.url",
"activities": [ "course.Activity:9958@base.url", "..." ],
"plannedStartTime": "P3DT3H",
"begun": true,
"actualStartTime": "P3DT3H",
"actualStartingActivityId": "course.Activity:5496@base.url",
"complete": true,
"skipped": true,
"actualEndTime": "P3DT3H",
"actualEndingActivityId": "course.Activity:5345@base.url",
"actualTimeSpent": "P3DT3H"
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The lesson 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": "lesson not found" }
delete /lessons/{lessonId}
Delete a given lesson.
URI Parameters
- lessonId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The lesson 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": "lesson not found" }
Entity representing a lesson form metadata for update
Get form metadata for updating an existing lesson.
get /lessons/{lessonId}/metadata
Get form metadata for updating an existing lesson.
URI Parameters
- lessonId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "Lesson",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this lesson, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this lesson, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this lesson for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Lesson.Lesson:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this lesson",
"linked": false
},
"description": {
"description": "The description of this lesson.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Lesson.Lesson:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this lesson",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this lesson. 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 lesson. 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 lesson.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Lesson.Lesson:startDate@base.url",
"existingValue": "2020-10-03T08:00:00.000Z",
"elementLabel": "Start Date",
"instructions": "Enter a starting date for this lesson",
"linked": false
},
"endDate": {
"description": "The ending date of this lesson.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Lesson.Lesson:endDate@base.url",
"existingValue": "2020-12-18T17:00:00.000Z",
"elementLabel": "End Date",
"instructions": "Enter an ending date for this lesson",
"linked": false
},
"endReasonId": {
"description": "The reason this lesson ended. A process/State object.",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Lesson.Lesson:endReason@base.url",
"existingValue": "process.State:1860@base.url",
"elementLabel": "End Reason",
"instructions": "Select the reason this lesson ended",
"linked": false
},
"activities": {
"description": "The activities to which this lesson applies.",
"type": "array",
"elementId": "course.plan.Lesson:activities@dxtera.org",
"existingValue": [],
"elementLabel": "Activities",
"instructions": "Enter Ids for activities of this lesson.",
"linked": false
},
"plannedStartTime": {
"description": "The planned start time within the first activity as deteremined by the Lesson scheduling.",
"type": "string",
"format": "duration",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.plan.Lesson:plannedStartTime@dxtera.org",
"existingValue": "",
"elementLabel": "Planned Start Time",
"instructions": "Enter the planned start time of this lesson.",
"linked": false
},
"begun": {
"description": "-- could someone please write a description for this --",
"type": "boolean",
"elementId": "course.plan.Lesson:begun@dxtera.org",
"existingValue": false,
"elementLabel": "Begun",
"instructions": "Enter true or false.",
"linked": false
},
"actualStartTime": {
"description": "The actual start time.",
"type": "string",
"format": "duration",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.plan.Lesson:actualStartTime@dxtera.org",
"existingValue": "",
"elementLabel": "Actual Start Time",
"instructions": "Enter the actual start time of this lesson.",
"linked": false
},
"actualStartingActivityId": {
"description": "The activity when this lesson actually began.",
"type": "string",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.plan.Lesson:actualStartingActivity@dxtera.org",
"existingValue": null,
"elementLabel": "Actual Starting Activity",
"instructions": "Enter the Id of the actual starting activity for this lesson.",
"linked": false
},
"complete": {
"description": "-- could someone please write a description for this --",
"type": "boolean",
"elementId": "course.plan.Lesson:complete@dxtera.org",
"existingValue": false,
"elementLabel": "Complete",
"instructions": "Enter true or false.",
"linked": false
},
"skipped": {
"description": "Tests if this lesson has been marked as skipped.",
"type": "boolean",
"elementId": "course.plan.Lesson:skipped@dxtera.org",
"existingValue": false,
"elementLabel": "Skipped",
"instructions": "Enter true or false.",
"linked": false
},
"actualEndTime": {
"description": "The actual completion time.",
"type": "string",
"format": "duration",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.plan.Lesson:actualEndTime@dxtera.org",
"existingValue": "",
"elementLabel": "Actual End Time",
"instructions": "Enter the actual end time of this lesson.",
"linked": false
},
"actualEndingActivityId": {
"description": "The activity when this lesson was completed or skipped.",
"type": "string",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.plan.Lesson:actualEndingActivity@dxtera.org",
"existingValue": null,
"elementLabel": "Actual Ending Activity",
"instructions": "Enter the Id of the actual ending activity for this lesson.",
"linked": false
},
"actualTimeSpent": {
"description": "The actual duration of this lesson if it has completed, in progress, or skipped.",
"type": "string",
"format": "duration",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.plan.Lesson:actualTimeSpent@dxtera.org",
"existingValue": "",
"elementLabel": "Actual Time Spent",
"instructions": "Enter the actual time spent of this lesson.",
"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": "lesson not found" }
/course-catalogs
Collection of course-catalogs in a system or federation of systems.
Get all course-catalogs.
Create a new course-catalog.
get /course-catalogs
Get all course-catalogs.
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- genusTypeId: (string)
The id string to match a genusType
Example:
type.Type%3AexampleCourseCatalogType%40dxtera.org
- parentGenusTypeId: (string)
The id string to match a parent genusType
Example:
type.Type%3AparentTypeExampleCourseCatalogType%40dxtera.org
- recordTypeId: (string)
The id string to match a recordType
Example:
type.Type%3AexampleCourseCatalogType%40campusapi.org
- providerId: (string)
Id string to match provider.
Example:
resource.Resource%3A3007%40demo.dxtera.org
- planId: (string)
Get course-catalogs mapped to this plan.
Example:
plan.Plan%3A208%40demo.dxtera.org
- lessonId: (string)
Get course-catalogs mapped to this lesson.
Example:
plan.Lesson%3A312%40demo.dxtera.org
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "course.CourseCatalog:2322@base.url",
"uri": "http://base.url/open/campusapi/course/courseCatalog/course.CourseCatalog%3A2322%40base.url",
"displayName": "Display Name of this CourseCatalog",
"description": "The description of this CourseCatalog",
"genusTypeId": "type.Type:defaultCourseCatalogType@base.url",
"recordTypeIds": [ "type.Type:exampleCourseCatalogRecordType@campusapi.org", "..."],
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:CourseCatalog@base.url",
"license": "The license that applies to this CourseCatalog"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
post /course-catalogs
Create a new course-catalog.
Query Parameters
- genusType: (string)
specify a particular courseCatalog type to create
Example:
type.Type%3AexampleCourseCatalogType%40dxtera.org
- recordType: (array of )
specify support for one or more courseCatalog record types
Example:
[ "type.Type%3AexampleCourseCatalogRecordType%40campusapi.org", "..." ]
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "CourseCatalog",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this course catalog, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this course catalog, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this course catalog for display.",
"type": "string"
},
"description": {
"description": "The description of this course catalog.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this course catalog. Default type set by system unless specified in query parameter.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this course catalog. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"providerId": {
"description": "The provider of this course catalog.",
"type": "string",
"format": "osid-id"
},
"brandingIds": {
"description": "The branding of this course catalog. A collection of Assets.",
"type": "array",
"items" : {
"type": "string",
"format": "osid-id"
}
},
"license": {
"description": "The licensing that applies to this course catalog.",
"type": "string"
}
}
}
Example:
{
"displayName": "Display Name of this CourseCatalog",
"description": "The description of this CourseCatalog",
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:CourseCatalog@base.url",
"license": "The license that applies to this CourseCatalog"
}
Entity representing a courseCatalog form metadata.
Get form metadata for creating a new courseCatalog.
get /course-catalogs/metadata
Get form metadata for creating a new courseCatalog.
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "CourseCatalog",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this course catalog, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this course catalog, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this course catalog for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "CourseCatalog.CourseCatalog:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this course catalog",
"linked": false
},
"description": {
"description": "The description of this course catalog.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "CourseCatalog.CourseCatalog:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this course catalog",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this course catalog. Default type set by system unless specified in query parameter on initial post.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this course catalog. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"providerId": {
"description": "The provider of this course catalog.",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "CourseCatalog.CourseCatalog:provider@base.url",
"existingValue": "",
"elementLabel": "Provider",
"instructions": "Enter the provider of this course catalog",
"linked": false
},
"brandingIds": {
"description": "The branding of this course catalog. A list of Assets.",
"type": "array",
"items" : {
"type": "string",
"format": "osid-id",
"pattern": "",
"enum": []
},
"read-only": false,
"default": [],
"elementId": "CourseCatalog.CourseCatalog:branding@base.url",
"existingValue": "",
"elementLabel": "Branding",
"instructions": "Enter the branding images for this course catalog",
"linked": false
},
"license": {
"description": "The licensing that applies to this course catalog.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "CourseCatalog.CourseCatalog:license@base.url",
"existingValue": "The Existing License",
"elementLabel": "License",
"instructions": "Include a license for this course catalog",
"linked": false
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
The root courseCatalogs in the courseCatalog hierarchy. A node with no parents is an orphan. While all courseCatalog Ids are known to the hierarchy, an orphan does not appear in the hierarchy unless explicitly added as a root node or child of another node.
Get all root root-course-catalog
get /course-catalogs/root-course-catalog
Get all root root-course-catalog
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "course.CourseCatalog:2322@base.url",
"uri": "http://base.url/open/campusapi/course/courseCatalog/course.CourseCatalog%3A2322%40base.url",
"displayName": "Display Name of this CourseCatalog",
"description": "The description of this CourseCatalog",
"genusTypeId": "type.Type:defaultCourseCatalogType@base.url",
"recordTypeIds": [ "type.Type:exampleCourseCatalogRecordType@campusapi.org", "..."],
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:CourseCatalog@base.url",
"license": "The license that applies to this CourseCatalog"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Entity representing a course-catalog
Get a course-catalog given its id.
Update a given course-catalog.
Delete a given course-catalog.
get /course-catalogs/{courseCatalogId}
Get a course-catalog given its id.
URI Parameters
- courseCatalogId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"id": "course.CourseCatalog:2322@base.url",
"uri": "http://base.url/open/campusapi/course/courseCatalog/course.CourseCatalog%3A2322%40base.url",
"displayName": "Display Name of this CourseCatalog",
"description": "The description of this CourseCatalog",
"genusTypeId": "type.Type:defaultCourseCatalogType@base.url",
"recordTypeIds": [ "type.Type:exampleCourseCatalogRecordType@campusapi.org", "..."],
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:CourseCatalog@base.url",
"license": "The license that applies to this CourseCatalog"
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "course-catalog not found" }
put /course-catalogs/{courseCatalogId}
Update a given course-catalog.
URI Parameters
- courseCatalogId: required(string)
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "CourseCatalog",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this course catalog, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this course catalog, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this course catalog for display.",
"type": "string"
},
"description": {
"description": "The description of this course catalog.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this course catalog. Default type set by system unless specified in query parameter.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this course catalog. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"providerId": {
"description": "The provider of this course catalog.",
"type": "string",
"format": "osid-id"
},
"brandingIds": {
"description": "The branding of this course catalog. A collection of Assets.",
"type": "array",
"items" : {
"type": "string",
"format": "osid-id"
}
},
"license": {
"description": "The licensing that applies to this course catalog.",
"type": "string"
}
}
}
Example:
{
"displayName": "Display Name of this CourseCatalog",
"description": "The description of this CourseCatalog",
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:CourseCatalog@base.url",
"license": "The license that applies to this CourseCatalog"
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The course-catalog has been updated" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "course-catalog not found" }
delete /course-catalogs/{courseCatalogId}
Delete a given course-catalog.
URI Parameters
- courseCatalogId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The course-catalog has been deleted" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "course-catalog not found" }
Entity representing a courseCatalog form metadata for update
Get form metadata for updating an existing courseCatalog.
get /course-catalogs/{courseCatalogId}/metadata
Get form metadata for updating an existing courseCatalog.
URI Parameters
- courseCatalogId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "CourseCatalog",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this course catalog, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this course catalog, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this course catalog for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "CourseCatalog.CourseCatalog:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this course catalog",
"linked": false
},
"description": {
"description": "The description of this course catalog.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "CourseCatalog.CourseCatalog:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this course catalog",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this course catalog. Default type set by system unless specified in query parameter on initial post.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this course catalog. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"providerId": {
"description": "The provider of this course catalog.",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "CourseCatalog.CourseCatalog:provider@base.url",
"existingValue": "",
"elementLabel": "Provider",
"instructions": "Enter the provider of this course catalog",
"linked": false
},
"brandingIds": {
"description": "The branding of this course catalog. A list of Assets.",
"type": "array",
"items" : {
"type": "string",
"format": "osid-id",
"pattern": "",
"enum": []
},
"read-only": false,
"default": [],
"elementId": "CourseCatalog.CourseCatalog:branding@base.url",
"existingValue": "",
"elementLabel": "Branding",
"instructions": "Enter the branding images for this course catalog",
"linked": false
},
"license": {
"description": "The licensing that applies to this course catalog.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "CourseCatalog.CourseCatalog:license@base.url",
"existingValue": "The Existing License",
"elementLabel": "License",
"instructions": "Include a license for this course catalog",
"linked": false
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "courseCatalog not found" }
Get child courseCatalogs for the given courseCatalog in the hierarchy.
get /course-catalogs/{courseCatalogId}/children
Get child courseCatalogs for the given courseCatalog in the hierarchy.
URI Parameters
- courseCatalogId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "course.CourseCatalog:2322@base.url",
"uri": "http://base.url/open/campusapi/course/courseCatalog/course.CourseCatalog%3A2322%40base.url",
"displayName": "Display Name of this CourseCatalog",
"description": "The description of this CourseCatalog",
"genusTypeId": "type.Type:defaultCourseCatalogType@base.url",
"recordTypeIds": [ "type.Type:exampleCourseCatalogRecordType@campusapi.org", "..."],
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:CourseCatalog@base.url",
"license": "The license that applies to this CourseCatalog"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Add courseCatalog as child of the given courseCatalog in the hierarchy.
Remove the given courseCatalog as a child of the given courseCatalog in the hierarchy.
put /course-catalogs/{courseCatalogId}/children/{childId}
Add courseCatalog as child of the given courseCatalog in the hierarchy.
URI Parameters
- courseCatalogId: required(string)
- childId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The child courseCatalog has been added to the hierarchy" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{ "message": "courseCatalog not found" }
delete /course-catalogs/{courseCatalogId}/children/{childId}
Remove the given courseCatalog as a child of the given courseCatalog in the hierarchy.
URI Parameters
- courseCatalogId: required(string)
- childId: required(string)
Get parent courseCatalogs for the given courseCatalog in the hierarchy.
get /course-catalogs/{courseCatalogId}/parents
Get parent courseCatalogs for the given courseCatalog in the hierarchy.
URI Parameters
- courseCatalogId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "course.CourseCatalog:2322@base.url",
"uri": "http://base.url/open/campusapi/course/courseCatalog/course.CourseCatalog%3A2322%40base.url",
"displayName": "Display Name of this CourseCatalog",
"description": "The description of this CourseCatalog",
"genusTypeId": "type.Type:defaultCourseCatalogType@base.url",
"recordTypeIds": [ "type.Type:exampleCourseCatalogRecordType@campusapi.org", "..."],
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:CourseCatalog@base.url",
"license": "The license that applies to this CourseCatalog"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Get all plans in this courseCatalog
get /course-catalogs/{courseCatalogId}/plans
Get all plans in this courseCatalog
URI Parameters
- courseCatalogId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "plan.Plan:2603@base.url",
"uri": "http://base.url/open/campusapi/plan/plan/plan.Plan%3A2603%40base.url",
"displayName": "Display Name of this Plan",
"description": "The description of this Plan",
"genusTypeId": "type.Type:defaultPlanType@base.url",
"recordTypeIds": [ "type.Type:examplePlanRecordType@campusapi.org", "..."],
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"endReasonId": "process.State:2603@base.url",
"syllabusId": "course.syllabus.Syllabus:5896@base.url",
"courseOfferingId": "course.CourseOffering:2872@base.url",
"modules": [ "course.syllabus.Module:8579@base.url", "..." ]
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Add the given plan to this courseCatalog
Remove the given plan from the courseCatalog.
put /course-catalogs/{courseCatalogId}/plans/{planId}
Add the given plan to this courseCatalog
URI Parameters
- courseCatalogId: required(string)
- planId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "plan 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": "plan not found" }
delete /course-catalogs/{courseCatalogId}/plans/{planId}
Remove the given plan from the courseCatalog.
URI Parameters
- courseCatalogId: required(string)
- planId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "plan 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": "plan not found" }
Get all lessons in this courseCatalog
get /course-catalogs/{courseCatalogId}/lessons
Get all lessons in this courseCatalog
URI Parameters
- courseCatalogId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "plan.Lesson:914@base.url",
"uri": "http://base.url/open/campusapi/plan/lesson/plan.Lesson%3A914%40base.url",
"displayName": "Display Name of this Lesson",
"description": "The description of this Lesson",
"genusTypeId": "type.Type:defaultLessonType@base.url",
"recordTypeIds": [ "type.Type:exampleLessonRecordType@campusapi.org", "..."],
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"endReasonId": "process.State:914@base.url",
"planId": "course.plan.Plan:262@base.url",
"docetId": "course.syllabus.Docet:2533@base.url",
"activities": [ "course.Activity:1295@base.url", "..." ],
"plannedStartTime": "P3DT3H",
"begun": true,
"actualStartTime": "P3DT3H",
"actualStartingActivityId": "course.Activity:9666@base.url",
"complete": true,
"skipped": true,
"actualEndTime": "P3DT3H",
"actualEndingActivityId": "course.Activity:2293@base.url",
"actualTimeSpent": "P3DT3H"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Add the given lesson to this courseCatalog
Remove the given lesson from the courseCatalog.
put /course-catalogs/{courseCatalogId}/lessons/{lessonId}
Add the given lesson to this courseCatalog
URI Parameters
- courseCatalogId: required(string)
- lessonId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "lesson 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": "lesson not found" }
delete /course-catalogs/{courseCatalogId}/lessons/{lessonId}
Remove the given lesson from the courseCatalog.
URI Parameters
- courseCatalogId: required(string)
- lessonId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "lesson 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": "lesson not found" }