CampusAPI Plan Services API documentation version 1.0.5
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 2023 DXtera Institute. Based on the Open Service Interface Definitions: 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
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "endReason", "modules", "syllabus", "courseOffering", 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%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:6229@base.url",
"uri": "http://base.url/open/campusapi/plan/plan/plan.Plan%3A6229%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:6229@base.url",
"syllabusId": "course.syllabus.Syllabus:4977@base.url",
"courseOfferingId": "course.CourseOffering:1542@base.url",
"modules": [ "course.syllabus.Module:1920@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:3366@base.url",
"modules": [ "course.syllabus.Module:5409@base.url", "..." ]
}
Query the collection of Plans in a system, federation of systems, or in a default courseCatalog by posting a Query object.
Submit a query using a PlanQuery object.
post /plans/plan-query
Submit a query using a PlanQuery 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", "modules", "syllabus", "courseOffering", 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": "PlanQuery",
"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 Plans with any end reason, false to match Plans with no end reason",
"type": "boolean"
},
"matchSyllabusIds": {
"description": "List of syllabus Ids for this query to match plan that have a related syllabus.",
"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"
}
}
}
},
"syllabusQueries": {
"description": "SyllabusQueries to match the syllabus. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchCourseOfferingIds": {
"description": "List of courseOffering Ids for this query to match plan 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"
}
},
"matchModuleIds": {
"description": "List of Module Ids for this query to match modules.",
"type": "array",
"items": {
"type": "object",
"properties": {
"moduleId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"moduleQueries": {
"description": "syllabus.ModuleQueries to match the Modules. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchAnyModule": {
"description": "Match modules with any value. true to match Plans with any modules, false to match Plans with no modules",
"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": "plan.Plan:6229@base.url",
"uri": "http://base.url/open/campusapi/plan/plan/plan.Plan%3A6229%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:6229@base.url",
"syllabusId": "course.syllabus.Syllabus:4977@base.url",
"courseOfferingId": "course.CourseOffering:1542@base.url",
"modules": [ "course.syllabus.Module:1920@base.url", "..." ]
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
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 particular Plan given its id.
Update a particular Plan given its id.
Delete a particular Plan given its id.
get /plans/{planId}
Get a particular Plan given its id.
URI Parameters
- planId: required(string)
Query Parameters
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "endReason", "modules", "syllabus", "courseOffering", 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": "plan.Plan:6229@base.url",
"uri": "http://base.url/open/campusapi/plan/plan/plan.Plan%3A6229%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:6229@base.url",
"syllabusId": "course.syllabus.Syllabus:4977@base.url",
"courseOfferingId": "course.CourseOffering:1542@base.url",
"modules": [ "course.syllabus.Module:1920@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 particular Plan given its id.
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:3366@base.url",
"modules": [ "course.syllabus.Module:5409@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 particular Plan given its id.
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
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "endReason", "activities", "actualStartingActivity", "actualEndingActivity", "plan", "docet", 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%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:2126@base.url",
"uri": "http://base.url/open/campusapi/plan/lesson/plan.Lesson%3A2126%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:2126@base.url",
"planId": "course.plan.Plan:9526@base.url",
"docetId": "course.syllabus.Docet:8521@base.url",
"activities": [ "course.Activity:7351@base.url", "..." ],
"plannedStartTime": "P3DT3H",
"begun": true,
"actualStartTime": "P3DT3H",
"actualStartingActivityId": "course.Activity:8582@base.url",
"complete": true,
"skipped": true,
"actualEndTime": "P3DT3H",
"actualEndingActivityId": "course.Activity:9153@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:6378@base.url",
"activities": [ "course.Activity:8538@base.url", "..." ],
"plannedStartTime": "P3DT3H",
"begun": true,
"actualStartTime": "P3DT3H",
"actualStartingActivityId": "course.Activity:5313@base.url",
"complete": true,
"skipped": true,
"actualEndTime": "P3DT3H",
"actualEndingActivityId": "course.Activity:1596@base.url",
"actualTimeSpent": "P3DT3H"
}
Query the collection of Lessons in a system, federation of systems, or in a default courseCatalog by posting a Query object.
Submit a query using a LessonQuery object.
post /lessons/lesson-query
Submit a query using a LessonQuery 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", "activities", "actualStartingActivity", "actualEndingActivity", "plan", "docet", 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": "LessonQuery",
"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 Lessons with any end reason, false to match Lessons with no end reason",
"type": "boolean"
},
"matchPlanIds": {
"description": "List of plan Ids for this query to match lesson that have a related plan.",
"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"
}
}
}
},
"planQueries": {
"description": "PlanQueries to match the plan. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchDocetIds": {
"description": "List of docet Ids for this query to match lesson that have a related docet.",
"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"
}
}
}
},
"docetQueries": {
"description": "DocetQueries to match the docet. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchActivityIds": {
"description": "List of Activity Ids for this query to match activities.",
"type": "array",
"items": {
"type": "object",
"properties": {
"activityId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"activityQueries": {
"description": "course.ActivityQueries to match the Activities. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchAnyActivity": {
"description": "Match activities with any value. true to match Lessons with any activities, false to match Lessons with no activities",
"type": "boolean"
},
"matchPlannedStartTime": {
"description": "Matches plannedStartTimes 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"
}
}
}
},
"matchAnyPlannedStartTime": {
"description": "Match plannedStartTimes with any value. true to match Lessons with any planned start time, false to match ProgramOfferings with no planned start time",
"type": "boolean"
},
"matchBegun": {
"description": "Match boolean value for begun.",
"type": "object",
"properties": {
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
},
"matchActualStartTime": {
"description": "Matches actualStartTimes 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"
}
}
}
},
"matchAnyActualStartTime": {
"description": "Match actualStartTimes with any value. true to match Lessons with any actual start time, false to match ProgramOfferings with no actual start time",
"type": "boolean"
},
"matchActualStartingActivityIds": {
"description": "List of Activity Ids for this query to match actualStartingActivity.",
"type": "array",
"items": {
"type": "object",
"properties": {
"actualStartingActivityId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"actualStartingActivityQueries": {
"description": "course.ActivityQueries to match the Actual Starting Activity. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchAnyActualStartingActivity": {
"description": "Match actual starting activity with any value. true to match Lessons with any actual starting activity, false to match Lessons with no actual starting activity",
"type": "boolean"
},
"matchComplete": {
"description": "Match boolean value for complete.",
"type": "object",
"properties": {
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
},
"matchSkipped": {
"description": "Match boolean value for skipped.",
"type": "object",
"properties": {
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
},
"matchActualEndTime": {
"description": "Matches actualEndTimes 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"
}
}
}
},
"matchAnyActualEndTime": {
"description": "Match actualEndTimes with any value. true to match Lessons with any actual end time, false to match ProgramOfferings with no actual end time",
"type": "boolean"
},
"matchActualEndingActivityIds": {
"description": "List of Activity Ids for this query to match actualEndingActivity.",
"type": "array",
"items": {
"type": "object",
"properties": {
"actualEndingActivityId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"actualEndingActivityQueries": {
"description": "course.ActivityQueries to match the Actual Ending Activity. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchAnyActualEndingActivity": {
"description": "Match actual ending activity with any value. true to match Lessons with any actual ending activity, false to match Lessons with no actual ending activity",
"type": "boolean"
},
"matchActualTimeSpent": {
"description": "Matches actualTimeSpents 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"
}
}
}
},
"matchAnyActualTimeSpent": {
"description": "Match actualTimeSpents with any value. true to match Lessons with any actual time spent, false to match ProgramOfferings with no actual time spent",
"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": "plan.Lesson:2126@base.url",
"uri": "http://base.url/open/campusapi/plan/lesson/plan.Lesson%3A2126%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:2126@base.url",
"planId": "course.plan.Plan:9526@base.url",
"docetId": "course.syllabus.Docet:8521@base.url",
"activities": [ "course.Activity:7351@base.url", "..." ],
"plannedStartTime": "P3DT3H",
"begun": true,
"actualStartTime": "P3DT3H",
"actualStartingActivityId": "course.Activity:8582@base.url",
"complete": true,
"skipped": true,
"actualEndTime": "P3DT3H",
"actualEndingActivityId": "course.Activity:9153@base.url",
"actualTimeSpent": "P3DT3H"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
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 particular Lesson given its id.
Update a particular Lesson given its id.
Delete a particular Lesson given its id.
get /lessons/{lessonId}
Get a particular Lesson given its id.
URI Parameters
- lessonId: required(string)
Query Parameters
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "endReason", "activities", "actualStartingActivity", "actualEndingActivity", "plan", "docet", 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": "plan.Lesson:2126@base.url",
"uri": "http://base.url/open/campusapi/plan/lesson/plan.Lesson%3A2126%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:2126@base.url",
"planId": "course.plan.Plan:9526@base.url",
"docetId": "course.syllabus.Docet:8521@base.url",
"activities": [ "course.Activity:7351@base.url", "..." ],
"plannedStartTime": "P3DT3H",
"begun": true,
"actualStartTime": "P3DT3H",
"actualStartingActivityId": "course.Activity:8582@base.url",
"complete": true,
"skipped": true,
"actualEndTime": "P3DT3H",
"actualEndingActivityId": "course.Activity:9153@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 particular Lesson given its id.
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:6378@base.url",
"activities": [ "course.Activity:8538@base.url", "..." ],
"plannedStartTime": "P3DT3H",
"begun": true,
"actualStartTime": "P3DT3H",
"actualStartingActivityId": "course.Activity:5313@base.url",
"complete": true,
"skipped": true,
"actualEndTime": "P3DT3H",
"actualEndingActivityId": "course.Activity:1596@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 particular Lesson given its id.
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 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
- 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: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: , 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 Plans in this CourseCatalog
get /course-catalogs/{courseCatalogId}/plans
Get all Plans 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", "modules", "syllabus", "courseOffering", 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%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
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "plan.Plan:6229@base.url",
"uri": "http://base.url/open/campusapi/plan/plan/plan.Plan%3A6229%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:6229@base.url",
"syllabusId": "course.syllabus.Syllabus:4977@base.url",
"courseOfferingId": "course.CourseOffering:1542@base.url",
"modules": [ "course.syllabus.Module:1920@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)
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", "activities", "actualStartingActivity", "actualEndingActivity", "plan", "docet", 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%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
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "plan.Lesson:2126@base.url",
"uri": "http://base.url/open/campusapi/plan/lesson/plan.Lesson%3A2126%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:2126@base.url",
"planId": "course.plan.Plan:9526@base.url",
"docetId": "course.syllabus.Docet:8521@base.url",
"activities": [ "course.Activity:7351@base.url", "..." ],
"plannedStartTime": "P3DT3H",
"begun": true,
"actualStartTime": "P3DT3H",
"actualStartingActivityId": "course.Activity:8582@base.url",
"complete": true,
"skipped": true,
"actualEndTime": "P3DT3H",
"actualEndingActivityId": "course.Activity:9153@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" }