CampusAPI Program Services API documentation version 1.0.2
Based on OSID version 3.0.0
https://base.url/program
Overview
The Program Services functional area provides management services related to programs.
This package includes the following entities:
Programs
A canonical program instantiated for offering through the creation of a ProgramOffering
Field | Description | Type |
---|---|---|
id(read‑only) | The unique id of this program, provided by system. | string(osid‑id) |
uri(read‑only) | The uri of this program, provided by system. | string(uri) |
displayName | The name of this program for display. | string |
description | The description of this program. | string |
genusTypeId (read‑only) | Id of the immutable type of this program. Default type set by system unless specified in query parameter. | string(osid‑id) |
recordTypeIds (read‑only) | Type Ids of record types available on this program. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere. | string(osid‑id)[] |
title | The formal title of this program. | string |
number | The program number which is a label generally used to index the program in a catalog, such as 16c. | string |
sponsorIds | The sponsors. References an array of resource.Resource objects. | string(osid‑id)[] |
completionRequirementsInfo | An informational string for the program completion. | string |
completionRequirementIds | The requisites for the program completion. References an array of requisite.Requisite objects. | string(osid‑id)[] |
credentialIds | The awarded credentials. References an array of program.Credential objects. | string(osid‑id)[] |
ProgramOfferings
A ProgramOffering is a canonical Program offered for a Term. ProgramOffering replicates some of the data managed in the Program in the case it is refined or tweaked. The purpose of the ProgramOffering is to define the Term in which students may enroll in a Program. While a Program may span several Terms, the offering tracks when the student enrolled for the purpose of relating the completion requirements at a point in time.
Field | Description | Type |
---|---|---|
id(read‑only) | The unique id of this program offering, provided by system. | string(osid‑id) |
uri(read‑only) | The uri of this program offering, provided by system. | string(uri) |
displayName | The name of this program offering for display. | string |
description | The description of this program offering. | string |
genusTypeId (read‑only) | Id of the immutable type of this program offering. Default type set by system unless specified in query parameter. | string(osid‑id) |
recordTypeIds (read‑only) | Type Ids of record types available on this program offering. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere. | string(osid‑id)[] |
startDate | The starting date of this program offering. | string(date‑time) |
endDate | The ending date of this program offering. | string(date‑time) |
endReasonId | The reason this program offering ended. References a process.State object. | string(osid‑id) |
programId (read‑only) | The program associated with this program offering. References a program.Program object. | string(osid‑id) |
termId (read‑only) | The term associated with this program offering. References a course.Term object. | string(osid‑id) |
title | The formal title of this program offering. | string |
number | The program number which is a label generally used to index the program offering in a catalog, such as 16. | string |
sponsorIds | The sponsors. References an array of resource.Resource objects. | string(osid‑id)[] |
completionRequirementsInfo | An informational string for the program completion. | string |
completionRequirementIds | The requisites for the program completion. References an array of requisite.Requisite objects. | string(osid‑id)[] |
credentialIds | The awarded credentials. References an array of program.Credential objects. | string(osid‑id)[] |
requiresRegistration | -- could someone please write a description for this -- | boolean |
minimumSeats | The minimum number of students this offering can have. | integer |
maximumSeats | The maximum number of students this offering can have. | integer |
url | An external resource, such as a class web site, associated with this offering. | string |
Credentials
Something awarded to a student at program completion.
Field | Description | Type |
---|---|---|
id(read‑only) | The unique id of this credential, provided by system. | string(osid‑id) |
uri(read‑only) | The uri of this credential, provided by system. | string(uri) |
displayName | The name of this credential for display. | string |
description | The description of this credential. | string |
genusTypeId (read‑only) | Id of the immutable type of this credential. Default type set by system unless specified in query parameter. | string(osid‑id) |
recordTypeIds (read‑only) | Type Ids of record types available on this credential. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere. | string(osid‑id)[] |
lifetime | The lifetime of this credential once awarded. | string(duration) |
Enrollments
The Enrollment is relationship between a student and a ProgramOffering. For multi-term Programs, the Enrollment may continue beyond the Term of the ProgramOffering since the Term indicates what requirements are applied to the student.
Field | Description | Type |
---|---|---|
id(read‑only) | The unique id of this enrollment, provided by system. | string(osid‑id) |
uri(read‑only) | The uri of this enrollment, provided by system. | string(uri) |
displayName | The name of this enrollment for display. | string |
description | The description of this enrollment. | string |
genusTypeId (read‑only) | Id of the immutable type of this enrollment. Default type set by system unless specified in query parameter. | string(osid‑id) |
recordTypeIds (read‑only) | Type Ids of record types available on this enrollment. 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 enrollment. | string(date‑time) |
endDate | The ending date of this enrollment. | string(date‑time) |
endReasonId | The reason this enrollment ended. References a process.State object. | string(osid‑id) |
programOfferingId (read‑only) | The program offering associated with this enrollment. References a program.ProgramOffering object. | string(osid‑id) |
studentId (read‑only) | The student associated with this enrollment. References a resource.Resource object. | string(osid‑id) |
CourseCatalogs
Courses, ActivityUnits, CourseOfferings, Activities, and Terms can be organized into federateble catalogs. CourseCatalogs can be used to represent a set of CourseOfferings offered in a specific Term, year, or by subject area, sponsor, campus, etc.
Field | Description | Type |
---|---|---|
id(read‑only) | The unique id of this course catalog, provided by system. | string(osid‑id) |
uri(read‑only) | The uri of this course catalog, provided by system. | string(uri) |
displayName | The name of this course catalog for display. | string |
description | The description of this course catalog. | string |
genusTypeId (read‑only) | Id of the immutable type of this course catalog. Default type set by system unless specified in query parameter. | string(osid‑id) |
recordTypeIds (read‑only) | Type Ids of record types available on this course catalog. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere. | string(osid‑id)[] |
providerId | The provider of this course catalog. References a resource.Resource object. | string(osid‑id) |
brandingIds | The branding of this course catalog. References repository.Asset objects. | string(osid‑id)[] |
license | The licensing that applies to this course catalog. | string |
License
CampusAPI REST Documentation Copyright 2020 DXtera Institute. Based on the Open Service Interface Defitions: http://osid.org
/programs
Collection of programs in a system, federation of systems, or in a default courseCatalog.
Get all programs in the system or default courseCatalog.
Create a new program in the default courseCatalog.
get /programs
Get all programs in the system or default courseCatalog.
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- genusTypeId: (string)
The id string to match a genusType
Example:
type.Type%3AexampleProgramType%40dxtera.org
- parentGenusTypeId: (string)
The id string to match a parent genusType
Example:
type.Type%3AparentTypeExampleProgramType%40dxtera.org
- recordTypeId: (string)
The id string to match a recordType
Example:
type.Type%3AexampleProgramType%40campusapi.org
- credentialId: (string)
Id string to match credential.
Example:
program.Credential%3A3287%40base.url
- sponsorId: (string)
Id string to match sponsor.
Example:
resource.Resource%3A23423%40base.url
- courseCatalogId: (string)
The id string to match a courseCatalog
Example:
course.CourseCatalog%3A8374%40base.url
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "program.Program:1344@base.url",
"uri": "http://base.url/open/campusapi/program/program/program.Program%3A1344%40base.url",
"displayName": "Display Name of this Program",
"description": "The description of this Program",
"genusTypeId": "type.Type:defaultProgramType@base.url",
"recordTypeIds": [ "type.Type:exampleProgramRecordType@campusapi.org", "..."],
"title": "This is the Title",
"number": "101",
"sponsorIds": [ "resource.Resource:8475@base.url", "..." ],
"completionRequirementsInfo": "This is the CompletionRequirementsInfo",
"completionRequirementIds": [ "course.requisite.Requisite:7638@base.url", "..." ],
"credentialIds": [ "course.program.Credential:2551@base.url", "..." ]
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
post /programs
Create a new program in the default courseCatalog.
Query Parameters
- genusType: (string)
specify a particular program type to create
Example:
type.Type%3AexampleProgramType%40dxtera.org
- recordType: (array of )
specify support for one or more program record types
Example:
[ "type.Type%3AexampleProgramRecordType%40campusapi.org", "..." ]
- courseCatalogId: (string)
specify in which course-catalog to create this program
Example:
program.CourseCatalog%3A8374%40base.url
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Program",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this program, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this program, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this program for display.",
"type": "string"
},
"description": {
"description": "The description of this program.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this program. 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 program. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"title": {
"description": "The formal title of this program.",
"type": "string"
},
"number": {
"description": "The program number which is a label generally used to index the program in a catalog, such as 16c.",
"type": "string"
},
"sponsorIds": {
"description": "The sponsors.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
}
},
"completionRequirementsInfo": {
"description": "An informational string for the program completion.",
"type": "string"
},
"completionRequirementIds": {
"description": "The requisites for the program completion.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
}
},
"credentialIds": {
"description": "The awarded credentials.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
}
}
}
}
Example:
{
"displayName": "Display Name of this Program",
"description": "The description of this Program",
"title": "This is the Title",
"number": "101",
"sponsorIds": [ "resource.Resource:284@base.url", "..." ],
"completionRequirementsInfo": "This is the CompletionRequirementsInfo",
"completionRequirementIds": [ "course.requisite.Requisite:8358@base.url", "..." ],
"credentialIds": [ "course.program.Credential:4328@base.url", "..." ]
}
Entity representing a program form metadata.
Get form metadata for creating a new program.
get /programs/metadata
Get form metadata for creating a new program.
Query Parameters
- genusType: (string)
specify a particular program type to create
Example:
type.Type%3AexampleProgramType%40dxtera.org
- recordType: (array of )
specify support for one or more program record types
Example:
[ "type.Type%3AexampleProgramRecordType%40campusapi.org", "..." ]
- courseCatalogId: (string)
specify in which course-catalog to create this program
Example:
program.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": "Program",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this program, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this program, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this program for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Program.Program:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this program",
"linked": false
},
"description": {
"description": "The description of this program.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Program.Program:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this program",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this program. 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 program. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"title": {
"description": "The formal title of this program.",
"type": "string",
"read-only": false,
"minLength": null,
"maxLength": null,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.program.Program:title@dxtera.org",
"existingValue": "The existing title",
"elementLabel": "Title",
"instructions": "Enter a title for this program.",
"linked": false
},
"number": {
"description": "The program number which is a label generally used to index the program in a catalog, such as 16c.",
"type": "string",
"read-only": false,
"minLength": null,
"maxLength": null,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.program.Program:number@dxtera.org",
"existingValue": "The existing number",
"elementLabel": "Number",
"instructions": "Enter a number for this program.",
"linked": false
},
"sponsorIds": {
"description": "The sponsors.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id",
"pattern": "",
"enum": []
},
"read-only": false,
"elementId": "course.program.Program:sponsors@dxtera.org",
"existingValue": [],
"elementLabel": "Sponsors",
"instructions": "Enter Ids for sponsors of this program.",
"linked": false
},
"completionRequirementsInfo": {
"description": "An informational string for the program completion.",
"type": "string",
"read-only": false,
"minLength": null,
"maxLength": null,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.program.Program:completionRequirementsInfo@dxtera.org",
"existingValue": "The existing completion requirements info",
"elementLabel": "Completion Requirements Info",
"instructions": "Enter a completion requirements info for this program.",
"linked": false
},
"completionRequirementIds": {
"description": "The requisites for the program completion.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id",
"pattern": "",
"enum": []
},
"read-only": false,
"elementId": "course.program.Program:completionRequirements@dxtera.org",
"existingValue": [],
"elementLabel": "Completion Requirements",
"instructions": "Enter Ids for completion requirements of this program.",
"linked": false
},
"credentialIds": {
"description": "The awarded credentials.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id",
"pattern": "",
"enum": []
},
"read-only": false,
"elementId": "course.program.Program:credentials@dxtera.org",
"existingValue": [],
"elementLabel": "Credentials",
"instructions": "Enter Ids for credentials of this program.",
"linked": false
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Entity representing a program
Get a program given its id.
Update a given program.
Delete a given program.
get /programs/{programId}
Get a program given its id.
URI Parameters
- programId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"id": "program.Program:1344@base.url",
"uri": "http://base.url/open/campusapi/program/program/program.Program%3A1344%40base.url",
"displayName": "Display Name of this Program",
"description": "The description of this Program",
"genusTypeId": "type.Type:defaultProgramType@base.url",
"recordTypeIds": [ "type.Type:exampleProgramRecordType@campusapi.org", "..."],
"title": "This is the Title",
"number": "101",
"sponsorIds": [ "resource.Resource:8475@base.url", "..." ],
"completionRequirementsInfo": "This is the CompletionRequirementsInfo",
"completionRequirementIds": [ "course.requisite.Requisite:7638@base.url", "..." ],
"credentialIds": [ "course.program.Credential:2551@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": "program not found" }
put /programs/{programId}
Update a given program.
URI Parameters
- programId: required(string)
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Program",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this program, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this program, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this program for display.",
"type": "string"
},
"description": {
"description": "The description of this program.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this program. 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 program. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"title": {
"description": "The formal title of this program.",
"type": "string"
},
"number": {
"description": "The program number which is a label generally used to index the program in a catalog, such as 16c.",
"type": "string"
},
"sponsorIds": {
"description": "The sponsors.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
}
},
"completionRequirementsInfo": {
"description": "An informational string for the program completion.",
"type": "string"
},
"completionRequirementIds": {
"description": "The requisites for the program completion.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
}
},
"credentialIds": {
"description": "The awarded credentials.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
}
}
}
}
Example:
{
"displayName": "Display Name of this Program",
"description": "The description of this Program",
"title": "This is the Title",
"number": "101",
"sponsorIds": [ "resource.Resource:284@base.url", "..." ],
"completionRequirementsInfo": "This is the CompletionRequirementsInfo",
"completionRequirementIds": [ "course.requisite.Requisite:8358@base.url", "..." ],
"credentialIds": [ "course.program.Credential:4328@base.url", "..." ]
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The program 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": "program not found" }
delete /programs/{programId}
Delete a given program.
URI Parameters
- programId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The program 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": "program not found" }
Entity representing a program form metadata for update
Get form metadata for updating an existing program.
get /programs/{programId}/metadata
Get form metadata for updating an existing program.
URI Parameters
- programId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "Program",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this program, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this program, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this program for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Program.Program:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this program",
"linked": false
},
"description": {
"description": "The description of this program.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Program.Program:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this program",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this program. 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 program. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"title": {
"description": "The formal title of this program.",
"type": "string",
"read-only": false,
"minLength": null,
"maxLength": null,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.program.Program:title@dxtera.org",
"existingValue": "The existing title",
"elementLabel": "Title",
"instructions": "Enter a title for this program.",
"linked": false
},
"number": {
"description": "The program number which is a label generally used to index the program in a catalog, such as 16c.",
"type": "string",
"read-only": false,
"minLength": null,
"maxLength": null,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.program.Program:number@dxtera.org",
"existingValue": "The existing number",
"elementLabel": "Number",
"instructions": "Enter a number for this program.",
"linked": false
},
"sponsorIds": {
"description": "The sponsors.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id",
"pattern": "",
"enum": []
},
"read-only": false,
"elementId": "course.program.Program:sponsors@dxtera.org",
"existingValue": [],
"elementLabel": "Sponsors",
"instructions": "Enter Ids for sponsors of this program.",
"linked": false
},
"completionRequirementsInfo": {
"description": "An informational string for the program completion.",
"type": "string",
"read-only": false,
"minLength": null,
"maxLength": null,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.program.Program:completionRequirementsInfo@dxtera.org",
"existingValue": "The existing completion requirements info",
"elementLabel": "Completion Requirements Info",
"instructions": "Enter a completion requirements info for this program.",
"linked": false
},
"completionRequirementIds": {
"description": "The requisites for the program completion.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id",
"pattern": "",
"enum": []
},
"read-only": false,
"elementId": "course.program.Program:completionRequirements@dxtera.org",
"existingValue": [],
"elementLabel": "Completion Requirements",
"instructions": "Enter Ids for completion requirements of this program.",
"linked": false
},
"credentialIds": {
"description": "The awarded credentials.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id",
"pattern": "",
"enum": []
},
"read-only": false,
"elementId": "course.program.Program:credentials@dxtera.org",
"existingValue": [],
"elementLabel": "Credentials",
"instructions": "Enter Ids for credentials of this program.",
"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": "program not found" }
Get expanded completion requirements requisite tree structures. All supporting requisiteOptions, programRequirements, Programs, Program completionRequirements, and requisiteRequirements will be recursively expanded for bulk consumption. All credentialRequirements, assessmentRequirement, learningObjectiveRequirements and awardRequirements will be expanded. All courseRequirements will be expanded but related Courses and preRequisites will only be expanded if expandCourses = true.
get /programs/{programId}/completion-requirements
Get expanded completion requirements requisite tree structures. All supporting requisiteOptions, programRequirements, Programs, Program completionRequirements, and requisiteRequirements will be recursively expanded for bulk consumption. All credentialRequirements, assessmentRequirement, learningObjectiveRequirements and awardRequirements will be expanded. All courseRequirements will be expanded but related Courses and preRequisites will only be expanded if expandCourses = true.
URI Parameters
- programId: required(string)
Query Parameters
- expandCourses: (boolean - default: false)
Expand all Courses in courseRequirements and associated preRequisite structures.
Example:
true
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"id": "requisite.Requisite:1488@demo.dxtera.org",
"uri": "http://demo.dxtera.org/open/campusapi/requisite/requisite/requisite.Requisite%3A31415%40demo.dxtera.org",
"displayName": "Display Name of this Program Requisite",
"description": "The description of this Program Requisite Requisite",
"genusType": "type.Type:defaultRequisiteType@dxtera.org",
"active": true,
"enabled": true,
"disabled": false,
"operational": true,
"schedule": "calendaring.Schedule:8475@demo.dxtera.org",
"event": "calendaring.Event:8475@demo.dxtera.org",
"cyclicEvent": "cycle.CyclicEvent:8475@demo.dxtera.org",
"demographic": "resource.Resource:8475@demo.dxtera.org",
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"sequestered": false,
"requisiteOptionIds": ["requisite.Requisite:1154@demo.dxtera.org"],
"requisiteOptions": [
{
"id": "requisite.Requisite:1154@demo.dxtera.org",
"uri": "http://demo.dxtera.org/open/campusapi/requisite/requisite/requisite.Requisite%3A31154%40demo.dxtera.org",
"displayName": "This is an alternate Requisite",
"description": "This alternate Requisite can be satisfied instead of the enclosing Program Requisite",
"genusType": "type.Type:defaultRequisiteType@dxtera.org",
"active": true,
"enabled": true,
"disabled": false,
"operational": true,
"ruleId": "",
"schedule": "calendaring.Schedule:8475@demo.dxtera.org",
"event": "calendaring.Event:8475@demo.dxtera.org",
"cyclicEvent": "cycle.CyclicEvent:8475@demo.dxtera.org",
"demographic": "resource.Resource:8475@demo.dxtera.org",
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"sequestered": false,
"requisiteOptionIds": [ "...", "..." ],
"requisiteOptions": [ "...", "..." ],
"courseRequirementIds": [ "...", "..." ],
"courseRequirements": [ "...", "..." ],
"programRequirementIds": [ "...", "..." ],
"programRequirements": [ "...", "..." ],
"credentialRequirementIds": [ "...", "..." ],
"credentialRequirements": [ "...", "..." ],
"learningObjectiveRequirementIds": [ "...", "..." ],
"learningObjectiveRequirements": [ "r...", "..." ],
"assessmentRequirementIds": [ "...", "..." ],
"assessmentRequirements": [ "...", "..." ],
"awardRequirementIds": [ "...", "..." ],
"awardRequirements": [ "...", "..." ],
"requisiteRequirementIds": [ "...", "..." ],
"requisiteRequirements": [ "...", "..." ],
"minimumEarnedCredits": 0,
"minimumCourseCount": 3
},
{
"...": "..."
}
],
"courseRequirementIds": ["requisite.CourseRequirement:9392@demo.dxtera.org", "..."],
"courseRequirements": [
{
"id": "requisite.CourseRequirement:9392@demo.dxtera.org",
"uri": "http://demo.dxtera.org/open/campusapi/requisite/course-requirement/requisite.CourseRequirement%3A31415%40demo.dxtera.org",
"displayName": "Display Name of this CourseRequirement",
"description": "The description of this CourseRequirement",
"genusType": "type.Type:defaultCourseRequirementType@dxtera.org",
"active": true,
"enabled": true,
"disabled": false,
"operational": true,
"ruleId": "rules.Rule:123@demo.dxtera.org",
"courseId": "course.Course:4222@demo.dxtera.org",
"requiresCompletion": true,
"timeframe": "P3DT3H",
"minimumGradeId": "grading.Grade:3813@demo.dxtera.org",
"minimumScoreSystemId": "grading.GradeSystem:2166@demo.dxtera.org",
"minimumScore": 3.14,
"minimumEarnedCredits": 3.14
},
{
"...": "..."
}
],
"programRequirementIds": ["requisite.ProgramRequirement:6423@demo.dxtera.org", "..."],
"programRequirements": [
{
"id": "requisite.ProgramRequirement:6423@demo.dxtera.org",
"uri": "http://demo.dxtera.org/open/campusapi/requisite/program-requirement/requisite.ProgramRequirement%3A31415%40demo.dxtera.org",
"displayName": "Display Name of this ProgramRequirement",
"description": "The description of this ProgramRequirement",
"genusType": "type.Type:defaultProgramRequirementType@dxtera.org",
"active": true,
"enabled": true,
"disabled": false,
"operational": true,
"ruleId": "rules.Rule:123@demo.dxtera.org",
"programId": "program.Program:9926@demo.dxtera.org",
"program": {
"id": "program.Program:9926@demo.dxtera.org",
"uri": "http://demo.dxtera.org/open/campusapi/program/program/program.Program%3A39926%40demo.dxtera.org",
"displayName": "Display Name of this Program",
"description": "This is another Program that must be completed to satisfy the enclosing Requisite ",
"genusType": "type.Type:defaultProgramType@dxtera.org",
"title": "This is the Program Title",
"number": "101",
"sponsorIds": [ "resource.Resource:8475@demo.dxtera.org", "..." ],
"completionRequirementsInfo": "This is the CompletionRequirementsInfo",
"completionRequirements": [
{
"id": "requisite.Requisite:3390@demo.dxtera.org",
"uri": "http://demo.dxtera.org/open/campusapi/requisite/requisite/requisite.Requisite%3A33390%40demo.dxtera.org",
"displayName": "Display Name of this sub-Requirement",
"description": "This Requirement, and any of its peers, must be satisfied",
"genusType": "type.Type:defaultRequisiteType@dxtera.org",
"active": true,
"enabled": true,
"disabled": false,
"operational": true,
"ruleId": "rules.Rule:123@demo.dxtera.org",
"schedule": "calendaring.Schedule:8475@demo.dxtera.org",
"event": "calendaring.Event:8475@demo.dxtera.org",
"cyclicEvent": "cycle.CyclicEvent:8475@demo.dxtera.org",
"demographic": "resource.Resource:8475@demo.dxtera.org",
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"sequestered": false,
"requisiteOptionIds": [ "...", "..." ],
"requisiteOptions": [ "...", "..." ],
"courseRequirementIds": [ "...", "..." ],
"courseRequirements": [ "...", "..." ],
"programRequirementIds": [ "...", "..." ],
"programRequirements": [ "...", "..." ],
"credentialRequirementIds": [ "...", "..." ],
"credentialRequirements": [ "...", "..." ],
"learningObjectiveRequirementIds": [ "...", "..." ],
"learningObjectiveRequirements": [ "r...", "..." ],
"assessmentRequirementIds": [ "...", "..." ],
"assessmentRequirements": [ "...", "..." ],
"awardRequirementIds": [ "...", "..." ],
"awardRequirements": [ "...", "..." ],
"requisiteRequirementIds": [ "...", "..." ],
"requisiteRequirements": [ "...", "..." ],
"minimumEarnedCredits": 10,
"minimumCourseCount": 3
},
{
"...": "..."
}
],
"completionRequirementIds": [ "course.requisite.Requisite:3390@demo.dxtera.org", "..." ],
"credentialIds": [ "course.program.Credential:2551@demo.dxtera.org", "..." ]
},
"requiresCompletion": true,
"timeframe": "P3DT3H",
"minimumGpaSystemId": "grading.GradeSystem:1860@demo.dxtera.org",
"minimumGPA": 3.14,
"minimumEarnedCredits": 3.14
},
{
"...": "..."
}
],
"credentialRequirements": [
{
"id": "requisite.CredentialRequirement:3034@demo.dxtera.org",
"uri": "http://demo.dxtera.org/open/campusapi/requisite/credential-requirement/requisite.CredentialRequirement%3A31415%40demo.dxtera.org",
"displayName": "Display Name of this CredentialRequirement",
"description": "The description of this CredentialRequirement",
"genusType": "type.Type:defaultCredentialRequirementType@dxtera.org",
"active": true,
"enabled": true,
"disabled": false,
"operational": true,
"ruleId": "rules.Rule:123@demo.dxtera.org",
"credentialId": "course.program.Credential:5876@demo.dxtera.org",
"timeframe": "P3DT3H"
},
{
"...": "..."
}
],
"learningObjectiveRequirements": [
{
"id": "requisite.LearningObjectiveRequirement:7975@demo.dxtera.org",
"uri": "http://demo.dxtera.org/open/campusapi/requisite/learning-objective-requirement/requisite.LearningObjectiveRequirement%3A31415%40demo.dxtera.org",
"displayName": "Display Name of this LearningObjectiveRequirement",
"description": "The description of this LearningObjectiveRequirement",
"genusType": "type.Type:defaultLearningObjectiveRequirementType@dxtera.org",
"active": true,
"enabled": true,
"disabled": false,
"operational": true,
"ruleId": "rules.Rule:123@demo.dxtera.org",
"learningObjectiveId": "learning.Objective:1731@demo.dxtera.org",
"minimumProficiencyId": "grading.Grade:4144@demo.dxtera.org"
},
{
"...": "..."
}
],
"assessmentRequirements": [
{
"id": "requisite.AssessmentRequirement:4897@demo.dxtera.org",
"uri": "http://demo.dxtera.org/open/campusapi/requisite/assessment-requirement/requisite.AssessmentRequirement%3A31415%40demo.dxtera.org",
"displayName": "Display Name of this AssessmentRequirement",
"description": "The description of this AssessmentRequirement",
"genusType": "type.Type:defaultAssessmentRequirementType@dxtera.org",
"active": true,
"enabled": true,
"disabled": false,
"operational": true,
"ruleId": "rules.Rule:123@demo.dxtera.org",
"assessmentId": "assessment.Assessment:7034@demo.dxtera.org",
"timeframe": "P3DT3H",
"minimumGradeId": "grading.Grade:296@demo.dxtera.org",
"minimumScoreSystemId": "grading.GradeSystem:435@demo.dxtera.org",
"minimumScore": 3.14
},
{
"...": "..."
}
],
"awardRequirements": [
{
"id": "requisite.AwardRequirement:5778@demo.dxtera.org",
"uri": "http://demo.dxtera.org/open/campusapi/requisite/award-requirement/requisite.AwardRequirement%3A31415%40demo.dxtera.org",
"displayName": "Display Name of this AwardRequirement",
"description": "The description of this AwardRequirement",
"genusType": "type.Type:defaultAwardRequirementType@dxtera.org",
"active": true,
"enabled": true,
"disabled": false,
"operational": true,
"ruleId": "rules.Rule:123@demo.dxtera.org",
"awardId": "recognition.Award:4592@demo.dxtera.org",
"timeframe": "P3DT3H"
},
{
"...": "..."
}
],
"requisiteRequirements": [
{
"id": "requisite.Requisite:1344@demo.dxtera.org",
"uri": "http://demo.dxtera.org/open/campusapi/requisite/requisite/requisite.Requisite%3A31344%40demo.dxtera.org",
"displayName": "Display Name of this sub-Requirement",
"description": "This Requirement, and any of its peers, must be satisfied",
"genusType": "type.Type:defaultRequisiteType@dxtera.org",
"active": true,
"enabled": true,
"disabled": false,
"operational": true,
"ruleId": "rules.Rule:123@demo.dxtera.org",
"schedule": "calendaring.Schedule:8475@demo.dxtera.org",
"event": "calendaring.Event:8475@demo.dxtera.org",
"cyclicEvent": "cycle.CyclicEvent:8475@demo.dxtera.org",
"demographic": "resource.Resource:8475@demo.dxtera.org",
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"sequestered": false,
"requisiteOptionIds": [ "...", "..." ],
"requisiteOptions": [ "...", "..." ],
"courseRequirementIds": [ "...", "..." ],
"courseRequirements": [ "...", "..." ],
"programRequirementIds": [ "...", "..." ],
"programRequirements": [ "...", "..." ],
"credentialRequirementIds": [ "...", "..." ],
"credentialRequirements": [ "...", "..." ],
"learningObjectiveRequirementIds": [ "...", "..." ],
"learningObjectiveRequirements": [ "r...", "..." ],
"assessmentRequirementIds": [ "...", "..." ],
"assessmentRequirements": [ "...", "..." ],
"awardRequirementIds": [ "...", "..." ],
"awardRequirements": [ "...", "..." ],
"requisiteRequirementIds": [ "...", "..." ],
"requisiteRequirements": [ "...", "..." ],
"minimumEarnedCredits": 10,
"minimumCourseCount": 3
},
{
"...": "..."
}
],
"minimumEarnedCredits": 60,
"minimumCourseCount": 0
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Get completed requirements map for the given student Id
get /programs/{programId}/completions
Get completed requirements map for the given student Id
URI Parameters
- programId: required(string)
Query Parameters
- studentId: required(string)
Get completed requirements structure for the given student Id.
Example:
resource.Resource:7963@base.url
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"id": "requisite:SLUS-BA@ithaka",
"displayName": "Degree Program: BA ",
"description": "Base Requisite for Program",
"genusTypeId": "Type:Requisite@ithaka",
"programRequirements": [
{
"id": "requisite.ProgramRequirement:2656@ithaka",
"displayName": "Degree Requirements",
"description": "School of Labor and Urban Studies - Degree in Bachelor of Arts",
"genusTypeId": "type:DEGREE@ithaka",
"programId": "program:SLUS-BA~LABR-BA@ithaka",
"minimumGPA": 2.0,
"minimumEarnedCredits": 120,
"maxTransferCredits": 90,
"minResidentCredits": 30,
"matchedCreditCount": 48,
"matchedCourseCount": 16
}
],
"requisiteRequirements": [
{
"id": "requisite:MAJOR-LABR-BA@ithaka",
"displayName": "Major: Labor Studies",
"description": "Major in Labor Studies",
"genusTypeId": "type.Type:defaultRequisiteType@ithaka",
"requisiteRequirements": [
{
"id": "requisite:MAJOR-LABR-BA-1@ithaka",
"displayName": "Major: Labor Studies - LABR 201",
"description": "LABR 201: Introduction to Labor Studies",
"genusTypeId": "type.Type:defaultRequisiteType@ithaka",
"courseRequirementCount": 1,
"courseRequirementCreditCount": 3,
"matchedCreditsCount": 3,
"matchedCoursesCount": 1,
"matchedCourses": [
"Course:LABR-201@SLUS"
],
"minimumCourseCount": 1,
"minimumScore": 1.0
},
{
"id": "requisite:MAJOR-LABR-BA-2@ithaka",
"displayName": "Major: Labor Studies - LABR 301",
"description": "LABR 301: U.S. Labor History",
"genusTypeId": "type.Type:defaultRequisiteType@ithaka",
"courseRequirementCount": 1,
"courseRequirementCreditCount": 3,
"matchedCoursesCount": 1,
"matchedCreditsCount": 3,
"matchedCourses": [
"Course:LABR-301@SLUS"
],
"minimumCourseCount": 1,
"minimumScore": 1.0
},
{
"id": "requisite:MAJOR-LABR-BA-3@ithaka",
"displayName": "Major: Labor Studies - LABR 303",
"description": "LABR 302: Contemporary Labor Issues",
"genusTypeId": "type.Type:defaultRequisiteType@ithaka",
"courseRequirementCount": 1,
"courseRequirementCreditCount": 3,
"matchedCreditsCount": 0,
"matchedCoursesCount": 0,
"matchedCourses": [
],
"minimumCourseCount": 1,
"minimumScore": 1.0
},
{
"id": "requisite:MAJOR-LABR-BA-4@ithaka",
"displayName": "Major: Labor Studies - 2 classes from the following list",
"description": "2 classes from the following list",
"genusTypeId": "type.Type:defaultRequisiteType@ithaka",
"courseRequirementCount": 6,
"courseRequirementCreditCount": 18,
"matchedCreditsCount": 3,
"matchedCoursesCount": 1,
"matchedCourses": [
"Course:LABR-320@SLUS"
],
"minimumScore": 1.0,
"minimumCourseCount": 0,
"MatchError": "Missing course or credit count"
},
{
"id": "requisite:MAJOR-LABR-BA-5@ithaka",
"displayName": "Major: Labor Studies - Electives",
"description": "4 classes from the following",
"genusTypeId": "type.Type:defaultRequisiteType@ithaka",
"courseRequirementCount": 19,
"courseRequirementCreditCount": 57,
"matchedCreditsCount": 0,
"matchedCoursesCount": 0,
"matchedCourses": [
],
"minimumScore": 1.0,
"minimumCourseCount": 0,
"MatchError": "Missing course or credit count"
}
],
"matchedCreditCount": 12,
"matchedCourseCount": 4,
"minimumEarnedCredits": 36,
"minimumCourseCount": 0
},
{
"id": "requisite:SLUS-COLLOPT_GE@ithaka",
"displayName": "GE: College Option Requirements",
"description": "Pathways-GE College Option Requirements",
"genusTypeId": "type.Type:defaultRequisiteType@ithaka",
"courseRequirementCount": 19,
"courseRequirementCreditCount": 57,
"matchedCreditsCount": 3,
"matchedCoursesCount": 1,
"matchedCourses": [
"Course:LHIS-301@SLUS"
],
"minimumScore": 1.0,
"minimumCourseCount": 0,
"minimumEarnedCredits": 12
},
{
"id": "requisite:SLUS-GEPATH@ithaka",
"displayName": "GE: Pathways-General Education Requirements",
"description": "Pathways-General Education Requirements",
"genusTypeId": "type.Type:defaultRequisiteType@ithaka",
"ruleId": "rules.Rule:123@ithaka",
"requisiteRequirements": [
{
"id": "requisite:SLUS-GEPATH-1@ithaka",
"displayName": "English Composition I",
"description": "English Composition I",
"genusTypeId": "type.Type:defaultRequisiteType@ithaka",
"courseRequirementCount": 4,
"courseRequirementCreditCount": 12,
"matchedCreditsCount": 3,
"matchedCoursesCount": 1,
"matchedCourses": [
"Course:REC-1000@SLUS"
],
"minimumEarnedCredits": 3,
"minimumCourseCount": 0
},
{
"id": "requisite:SLUS-GEPATH-2@ithaka",
"displayName": "English Composition II",
"description": "English Composition II",
"genusTypeId": "type.Type:defaultRequisiteType@ithaka",
"courseRequirementCount": 3,
"courseRequirementCreditCount": 9,
"matchedCreditsCount": 0,
"matchedCoursesCount": 0,
"matchedCourses": [
],
"minimumEarnedCredits": 3,
"minimumCourseCount": 0
},
{
"id": "requisite:SLUS-GEPATH-3@ithaka",
"displayName": "Mathematical and Quantitative Reasoning I",
"description": "Mathematical and Quantitative Reasoning I",
"genusTypeId": "type.Type:defaultRequisiteType@ithaka",
"courseRequirementCount": 5,
"courseRequirementCreditCount": 15,
"matchedCreditsCount": 3,
"matchedCoursesCount": 1,
"matchedCourses": [
"COURSE:MATH-215@SLUS"
],
"minimumEarnedCredits": 3,
"minimumCourseCount": 0
},
{
"id": "requisite:SLUS-GEPATH-4@ithaka",
"displayName": "Life and Physical Sciences I",
"description": "Life and Physical Sciences I",
"genusTypeId": "type.Type:defaultRequisiteType@ithaka",
"courseRequirementCount": 8,
"courseRequirementCreditCount": 24,
"matchedCreditsCount": 0,
"matchedCoursesCount": 0,
"matchedCourses": [
],
"minimumEarnedCredits": 3,
"minimumCourseCount": 0
},
{
"id": "requisite:SLUS-GEPATH-5@ithaka",
"displayName": "World Cultures and Global Issues I",
"description": "World Cultures and Global Issues I",
"genusTypeId": "type.Type:defaultRequisiteType@ithaka",
"courseRequirementCount": 11,
"courseRequirementCreditCount": 33,
"matchedCreditsCount": 0,
"matchedCoursesCount": 0,
"matchedCourses": [
],
"minimumEarnedCredits": 3,
"minimumCourseCount": 0
},
{
"id": "requisite:SLUS-GEPATH-6@ithaka",
"displayName": "U.S. Experiences in Its Diversity I",
"description": "U.S. Experiences in Its Diversity I",
"genusTypeId": "type.Type:defaultRequisiteType@ithaka",
"courseRequirementCount": 7,
"courseRequirementCreditCount": 21,
"matchedCreditsCount": 3,
"matchedCoursesCount": 1,
"matchedCourses": [
"Course:POL-201@SLUS"
],
"minimumEarnedCredits": 3,
"minimumCourseCount": 0
},
{
"id": "requisite:SLUS-GEPATH-7@ithaka",
"displayName": "Creative Expression I",
"description": "Creative Expression I",
"genusTypeId": "type.Type:defaultRequisiteType@ithaka",
"courseRequirementCount": 8,
"courseRequirementCreditCount": 24,
"matchedCreditsCount": 0,
"matchedCoursesCount": 0,
"matchedCourses": [
],
"minimumEarnedCredits": 3,
"minimumCourseCount": 0
},
{
"id": "requisite:SLUS-GEPATH-8@ithaka",
"displayName": "Individual and Society I",
"description": "Individual and Society I",
"genusTypeId": "type.Type:defaultRequisiteType@ithaka",
"courseRequirementCount": 10,
"courseRequirementCreditCount": 30,
"matchedCreditsCount": 0,
"matchedCoursesCount": 0,
"matchedCourses": [
],
"minimumEarnedCredits": 3,
"minimumCourseCount": 0
},
{
"id": "requisite:SLUS-GEPATH-9@ithaka",
"displayName": "Scientific World I",
"description": "Scientific World I",
"genusTypeId": "type.Type:defaultRequisiteType@ithaka",
"courseRequirementCount": 7,
"courseRequirementCreditCount": 21,
"matchedCreditsCount": 0,
"matchedCoursesCount": 0,
"matchedCourses": [
],
"minimumEarnedCredits": 3,
"minimumCourseCount": 0
},
{
"id": "requisite:SLUS-GEPATH-10@ithaka",
"displayName": "One course from any Flexible Common Core area",
"description": "One course from any Flexible Common Core area",
"genusTypeId": "type.Type:defaultRequisiteType@ithaka",
"courseRequirementCount": 38,
"courseRequirementCreditCount": 114,
"matchedCreditsCount": 3,
"matchedCoursesCount": 1,
"matchedCourses": [
"Course:FCCE-1000@SLUS"
],
"minimumEarnedCredits": 3,
"minimumCourseCount": 0
}
],
"matchedCourseCount": 4,
"matchedCreditCount": 12,
"minimumEarnedCredits": 30,
"minimumCourseCount": 0
},
{
"id": "requisite:SLUS-MILESTONES@ithaka",
"displayName": "Milestones: CUNY Skills Assessment",
"description": "CUNY Skills Assessment",
"genusTypeId": "type.Type:defaultRequisiteType@ithaka",
"ruleId": "rules.Rule:123@ithaka",
"learningObjectiveRequirementCount": 3,
"matchedLearningObjectiveRequirementCount": 0
}
]
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Query the collection of completions in a system, federation of systems, or in a default courseCatalog by posting a Query object.
Submit a query using a CompletionQuery object.
post /programs/{programId}/completion-query
Submit a query using a CompletionQuery object.
URI Parameters
- programId: required(string)
Body
Media type: application/json
Type: completion-query
Example:
{
"courseIds": [
{ "courseId": "Course:LABR-320@SLUS" },
{ "courseId": "Course:REC-1000@SLUS" },
{ "courseId": "Course:POL-201@SLUS" },
{ "courseId": "..."}
]
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"id": "requisite:SLUS-BA@ithaka",
"displayName": "Degree Program: BA ",
"description": "Base Requisite for Program",
"genusTypeId": "Type:Requisite@ithaka",
"programRequirements": [
{
"id": "requisite.ProgramRequirement:2656@ithaka",
"displayName": "Degree Requirements",
"description": "School of Labor and Urban Studies - Degree in Bachelor of Arts",
"genusTypeId": "type:DEGREE@ithaka",
"programId": "program:SLUS-BA~LABR-BA@ithaka",
"minimumGPA": 2.0,
"minimumEarnedCredits": 120,
"maxTransferCredits": 90,
"minResidentCredits": 30,
"matchedCreditCount": 48,
"matchedCourseCount": 16
}
],
"requisiteRequirements": [
{
"id": "requisite:MAJOR-LABR-BA@ithaka",
"displayName": "Major: Labor Studies",
"description": "Major in Labor Studies",
"genusTypeId": "type.Type:defaultRequisiteType@ithaka",
"requisiteRequirements": [
{
"id": "requisite:MAJOR-LABR-BA-1@ithaka",
"displayName": "Major: Labor Studies - LABR 201",
"description": "LABR 201: Introduction to Labor Studies",
"genusTypeId": "type.Type:defaultRequisiteType@ithaka",
"courseRequirementCount": 1,
"courseRequirementCreditCount": 3,
"matchedCreditsCount": 3,
"matchedCoursesCount": 1,
"matchedCourses": [
"Course:LABR-201@SLUS"
],
"minimumCourseCount": 1,
"minimumScore": 1.0
},
{
"id": "requisite:MAJOR-LABR-BA-2@ithaka",
"displayName": "Major: Labor Studies - LABR 301",
"description": "LABR 301: U.S. Labor History",
"genusTypeId": "type.Type:defaultRequisiteType@ithaka",
"courseRequirementCount": 1,
"courseRequirementCreditCount": 3,
"matchedCoursesCount": 1,
"matchedCreditsCount": 3,
"matchedCourses": [
"Course:LABR-301@SLUS"
],
"minimumCourseCount": 1,
"minimumScore": 1.0
},
{
"id": "requisite:MAJOR-LABR-BA-3@ithaka",
"displayName": "Major: Labor Studies - LABR 303",
"description": "LABR 302: Contemporary Labor Issues",
"genusTypeId": "type.Type:defaultRequisiteType@ithaka",
"courseRequirementCount": 1,
"courseRequirementCreditCount": 3,
"matchedCreditsCount": 0,
"matchedCoursesCount": 0,
"matchedCourses": [
],
"minimumCourseCount": 1,
"minimumScore": 1.0
},
{
"id": "requisite:MAJOR-LABR-BA-4@ithaka",
"displayName": "Major: Labor Studies - 2 classes from the following list",
"description": "2 classes from the following list",
"genusTypeId": "type.Type:defaultRequisiteType@ithaka",
"courseRequirementCount": 6,
"courseRequirementCreditCount": 18,
"matchedCreditsCount": 3,
"matchedCoursesCount": 1,
"matchedCourses": [
"Course:LABR-320@SLUS"
],
"minimumScore": 1.0,
"minimumCourseCount": 0,
"MatchError": "Missing course or credit count"
},
{
"id": "requisite:MAJOR-LABR-BA-5@ithaka",
"displayName": "Major: Labor Studies - Electives",
"description": "4 classes from the following",
"genusTypeId": "type.Type:defaultRequisiteType@ithaka",
"courseRequirementCount": 19,
"courseRequirementCreditCount": 57,
"matchedCreditsCount": 0,
"matchedCoursesCount": 0,
"matchedCourses": [
],
"minimumScore": 1.0,
"minimumCourseCount": 0,
"MatchError": "Missing course or credit count"
}
],
"matchedCreditCount": 12,
"matchedCourseCount": 4,
"minimumEarnedCredits": 36,
"minimumCourseCount": 0
},
{
"id": "requisite:SLUS-COLLOPT_GE@ithaka",
"displayName": "GE: College Option Requirements",
"description": "Pathways-GE College Option Requirements",
"genusTypeId": "type.Type:defaultRequisiteType@ithaka",
"courseRequirementCount": 19,
"courseRequirementCreditCount": 57,
"matchedCreditsCount": 3,
"matchedCoursesCount": 1,
"matchedCourses": [
"Course:LHIS-301@SLUS"
],
"minimumScore": 1.0,
"minimumCourseCount": 0,
"minimumEarnedCredits": 12
},
{
"id": "requisite:SLUS-GEPATH@ithaka",
"displayName": "GE: Pathways-General Education Requirements",
"description": "Pathways-General Education Requirements",
"genusTypeId": "type.Type:defaultRequisiteType@ithaka",
"ruleId": "rules.Rule:123@ithaka",
"requisiteRequirements": [
{
"id": "requisite:SLUS-GEPATH-1@ithaka",
"displayName": "English Composition I",
"description": "English Composition I",
"genusTypeId": "type.Type:defaultRequisiteType@ithaka",
"courseRequirementCount": 4,
"courseRequirementCreditCount": 12,
"matchedCreditsCount": 3,
"matchedCoursesCount": 1,
"matchedCourses": [
"Course:REC-1000@SLUS"
],
"minimumEarnedCredits": 3,
"minimumCourseCount": 0
},
{
"id": "requisite:SLUS-GEPATH-2@ithaka",
"displayName": "English Composition II",
"description": "English Composition II",
"genusTypeId": "type.Type:defaultRequisiteType@ithaka",
"courseRequirementCount": 3,
"courseRequirementCreditCount": 9,
"matchedCreditsCount": 0,
"matchedCoursesCount": 0,
"matchedCourses": [
],
"minimumEarnedCredits": 3,
"minimumCourseCount": 0
},
{
"id": "requisite:SLUS-GEPATH-3@ithaka",
"displayName": "Mathematical and Quantitative Reasoning I",
"description": "Mathematical and Quantitative Reasoning I",
"genusTypeId": "type.Type:defaultRequisiteType@ithaka",
"courseRequirementCount": 5,
"courseRequirementCreditCount": 15,
"matchedCreditsCount": 3,
"matchedCoursesCount": 1,
"matchedCourses": [
"COURSE:MATH-215@SLUS"
],
"minimumEarnedCredits": 3,
"minimumCourseCount": 0
},
{
"id": "requisite:SLUS-GEPATH-4@ithaka",
"displayName": "Life and Physical Sciences I",
"description": "Life and Physical Sciences I",
"genusTypeId": "type.Type:defaultRequisiteType@ithaka",
"courseRequirementCount": 8,
"courseRequirementCreditCount": 24,
"matchedCreditsCount": 0,
"matchedCoursesCount": 0,
"matchedCourses": [
],
"minimumEarnedCredits": 3,
"minimumCourseCount": 0
},
{
"id": "requisite:SLUS-GEPATH-5@ithaka",
"displayName": "World Cultures and Global Issues I",
"description": "World Cultures and Global Issues I",
"genusTypeId": "type.Type:defaultRequisiteType@ithaka",
"courseRequirementCount": 11,
"courseRequirementCreditCount": 33,
"matchedCreditsCount": 0,
"matchedCoursesCount": 0,
"matchedCourses": [
],
"minimumEarnedCredits": 3,
"minimumCourseCount": 0
},
{
"id": "requisite:SLUS-GEPATH-6@ithaka",
"displayName": "U.S. Experiences in Its Diversity I",
"description": "U.S. Experiences in Its Diversity I",
"genusTypeId": "type.Type:defaultRequisiteType@ithaka",
"courseRequirementCount": 7,
"courseRequirementCreditCount": 21,
"matchedCreditsCount": 3,
"matchedCoursesCount": 1,
"matchedCourses": [
"Course:POL-201@SLUS"
],
"minimumEarnedCredits": 3,
"minimumCourseCount": 0
},
{
"id": "requisite:SLUS-GEPATH-7@ithaka",
"displayName": "Creative Expression I",
"description": "Creative Expression I",
"genusTypeId": "type.Type:defaultRequisiteType@ithaka",
"courseRequirementCount": 8,
"courseRequirementCreditCount": 24,
"matchedCreditsCount": 0,
"matchedCoursesCount": 0,
"matchedCourses": [
],
"minimumEarnedCredits": 3,
"minimumCourseCount": 0
},
{
"id": "requisite:SLUS-GEPATH-8@ithaka",
"displayName": "Individual and Society I",
"description": "Individual and Society I",
"genusTypeId": "type.Type:defaultRequisiteType@ithaka",
"courseRequirementCount": 10,
"courseRequirementCreditCount": 30,
"matchedCreditsCount": 0,
"matchedCoursesCount": 0,
"matchedCourses": [
],
"minimumEarnedCredits": 3,
"minimumCourseCount": 0
},
{
"id": "requisite:SLUS-GEPATH-9@ithaka",
"displayName": "Scientific World I",
"description": "Scientific World I",
"genusTypeId": "type.Type:defaultRequisiteType@ithaka",
"courseRequirementCount": 7,
"courseRequirementCreditCount": 21,
"matchedCreditsCount": 0,
"matchedCoursesCount": 0,
"matchedCourses": [
],
"minimumEarnedCredits": 3,
"minimumCourseCount": 0
},
{
"id": "requisite:SLUS-GEPATH-10@ithaka",
"displayName": "One course from any Flexible Common Core area",
"description": "One course from any Flexible Common Core area",
"genusTypeId": "type.Type:defaultRequisiteType@ithaka",
"courseRequirementCount": 38,
"courseRequirementCreditCount": 114,
"matchedCreditsCount": 3,
"matchedCoursesCount": 1,
"matchedCourses": [
"Course:FCCE-1000@SLUS"
],
"minimumEarnedCredits": 3,
"minimumCourseCount": 0
}
],
"matchedCourseCount": 4,
"matchedCreditCount": 12,
"minimumEarnedCredits": 30,
"minimumCourseCount": 0
},
{
"id": "requisite:SLUS-MILESTONES@ithaka",
"displayName": "Milestones: CUNY Skills Assessment",
"description": "CUNY Skills Assessment",
"genusTypeId": "type.Type:defaultRequisiteType@ithaka",
"ruleId": "rules.Rule:123@ithaka",
"learningObjectiveRequirementCount": 3,
"matchedLearningObjectiveRequirementCount": 0
}
]
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
/program-offerings
Collection of program-offerings in a system, federation of systems, or in a default courseCatalog.
Get all program-offerings in the system or default courseCatalog.
Create a new program-offering in the default courseCatalog.
get /program-offerings
Get all program-offerings in the system or default courseCatalog.
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- genusTypeId: (string)
The id string to match a genusType
Example:
type.Type%3AexampleProgramOfferingType%40dxtera.org
- parentGenusTypeId: (string)
The id string to match a parent genusType
Example:
type.Type%3AparentTypeExampleProgramOfferingType%40dxtera.org
- recordTypeId: (string)
The id string to match a recordType
Example:
type.Type%3AexampleProgramOfferingType%40campusapi.org
- fromDate: (string)
Get all program-offerings from this date inclusive. Use with toDate to define date range query.
Example:
2020-10-03
- toDate: (string)
Get all program-offerings up to this date inclusive. Use with fromDate to define date range query.
Example:
2020-12-18
- programId: (string)
the id string to match a program.
Example:
program.Program%3A735%40base.url
- termId: (string)
the id string to match a term.
Example:
course.Term%3A360%40base.url
- credentialId: (string)
Id string to match credential.
Example:
program.Credential%3A3287%40base.url
- sponsorId: (string)
Id string to match sponsor.
Example:
resource.Resource%3A23423%40base.url
- courseCatalogId: (string)
The id string to match a courseCatalog
Example:
course.CourseCatalog%3A8374%40base.url
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "program.ProgramOffering:2288@base.url",
"uri": "http://base.url/open/campusapi/program/programOffering/program.ProgramOffering%3A2288%40base.url",
"displayName": "Display Name of this ProgramOffering",
"description": "The description of this ProgramOffering",
"genusTypeId": "type.Type:defaultProgramOfferingType@base.url",
"recordTypeIds": [ "type.Type:exampleProgramOfferingRecordType@campusapi.org", "..."],
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"endReasonId": "process.State:2288@base.url",
"programId": "course.program.Program:255@base.url",
"termId": "course.Term:5415@base.url",
"title": "This is the Title",
"number": "101",
"sponsorIds": [ "resource.Resource:9453@base.url", "..." ],
"completionRequirementsInfo": "This is the CompletionRequirementsInfo",
"completionRequirementIds": [ "course.requisite.Requisite:9015@base.url", "..." ],
"credentialIds": [ "course.program.Credential:306@base.url", "..." ],
"requiresRegistration": true,
"minimumSeats": 1,
"maximumSeats": 42,
"url": "http://dxtera.org"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
post /program-offerings
Create a new program-offering in the default courseCatalog.
Query Parameters
- programId: required(string)
the program of this program-offering.
Example:
program.Program%3A735%40base.url
- termId: required(string)
the term of this program-offering.
Example:
course.Term%3A360%40base.url
- genusType: (string)
specify a particular programOffering type to create
Example:
type.Type%3AexampleProgramOfferingType%40dxtera.org
- recordType: (array of )
specify support for one or more programOffering record types
Example:
[ "type.Type%3AexampleProgramOfferingRecordType%40campusapi.org", "..." ]
- courseCatalogId: (string)
specify in which course-catalog to create this programOffering
Example:
program.CourseCatalog%3A8374%40base.url
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "ProgramOffering",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this program offering, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this program offering, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this program offering for display.",
"type": "string"
},
"description": {
"description": "The description of this program offering.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this program offering. Default type set by system unless specified in query parameter.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this program offering. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"startDate": {
"description": "The starting date of this program offering.",
"type": "string",
"format": "date-time"
},
"endDate": {
"description": "The ending date of this program offering.",
"type": "string",
"format": "date-time"
},
"endReasonId": {
"description": "The reason this program offering ended.",
"type": "string",
"format": "osid-id"
},
"programId": {
"description": "The program associated with this program offering.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"termId": {
"description": "The term associated with this program offering.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"title": {
"description": "The formal title of this program offering.",
"type": "string"
},
"number": {
"description": "The program number which is a label generally used to index the program offering in a catalog, such as 16.",
"type": "string"
},
"sponsorIds": {
"description": "The sponsors.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
}
},
"completionRequirementsInfo": {
"description": "An informational string for the program completion.",
"type": "string"
},
"completionRequirementIds": {
"description": "The requisites for the program completion.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
}
},
"credentialIds": {
"description": "The awarded credentials.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
}
},
"requiresRegistration": {
"description": "-- could someone please write a description for this --",
"type": "boolean"
},
"minimumSeats": {
"description": "The minimum number of students this offering can have.",
"type": "integer",
"minimum": 1
},
"maximumSeats": {
"description": "The maximum number of students this offering can have.",
"type": "integer",
"minimum": 1
},
"url": {
"description": "An external resource, such as a class web site, associated with this offering.",
"type": "string"
}
}
}
Example:
{
"displayName": "Display Name of this ProgramOffering",
"description": "The description of this ProgramOffering",
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"endReasonId": "process.State:4379@base.url",
"title": "This is the Title",
"number": "101",
"sponsorIds": [ "resource.Resource:4959@base.url", "..." ],
"completionRequirementsInfo": "This is the CompletionRequirementsInfo",
"completionRequirementIds": [ "course.requisite.Requisite:2331@base.url", "..." ],
"credentialIds": [ "course.program.Credential:2309@base.url", "..." ],
"requiresRegistration": true,
"minimumSeats": 1,
"maximumSeats": 42,
"url": "http://dxtera.org"
}
Entity representing a programOffering form metadata.
Get form metadata for creating a new programOffering.
get /program-offerings/metadata
Get form metadata for creating a new programOffering.
Query Parameters
- programId: required(string)
the program of this metadatum.
Example:
program.Program%3A735%40base.url
- termId: required(string)
the term of this metadatum.
Example:
course.Term%3A360%40base.url
- genusType: (string)
specify a particular programOffering type to create
Example:
type.Type%3AexampleProgramOfferingType%40dxtera.org
- recordType: (array of )
specify support for one or more programOffering record types
Example:
[ "type.Type%3AexampleProgramOfferingRecordType%40campusapi.org", "..." ]
- courseCatalogId: (string)
specify in which course-catalog to create this programOffering
Example:
program.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": "ProgramOffering",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this program offering, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this program offering, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this program offering for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "ProgramOffering.ProgramOffering:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this program offering",
"linked": false
},
"description": {
"description": "The description of this program offering.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "ProgramOffering.ProgramOffering:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this program offering",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this program offering. Default type set by system unless specified in query parameter on initial post.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this program offering. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"startDate": {
"description": "The starting date of this program offering.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "ProgramOffering.ProgramOffering:startDate@base.url",
"existingValue": "2020-10-03T08:00:00.000Z",
"elementLabel": "Start Date",
"instructions": "Enter a starting date for this program offering",
"linked": false
},
"endDate": {
"description": "The ending date of this program offering.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "ProgramOffering.ProgramOffering:endDate@base.url",
"existingValue": "2020-12-18T17:00:00.000Z",
"elementLabel": "End Date",
"instructions": "Enter an ending date for this program offering",
"linked": false
},
"endReasonId": {
"description": "The reason this program offering ended. A process/State object.",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "ProgramOffering.ProgramOffering:endReason@base.url",
"existingValue": "process.State:1860@base.url",
"elementLabel": "End Reason",
"instructions": "Select the reason this program offering ended",
"linked": false
},
"title": {
"description": "The formal title of this program offering.",
"type": "string",
"read-only": false,
"minLength": null,
"maxLength": null,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.program.ProgramOffering:title@dxtera.org",
"existingValue": "The existing title",
"elementLabel": "Title",
"instructions": "Enter a title for this program offering.",
"linked": false
},
"number": {
"description": "The program number which is a label generally used to index the program offering in a catalog, such as 16.",
"type": "string",
"read-only": false,
"minLength": null,
"maxLength": null,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.program.ProgramOffering:number@dxtera.org",
"existingValue": "The existing number",
"elementLabel": "Number",
"instructions": "Enter a number for this program offering.",
"linked": false
},
"sponsorIds": {
"description": "The sponsors.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id",
"pattern": "",
"enum": []
},
"read-only": false,
"elementId": "course.program.ProgramOffering:sponsors@dxtera.org",
"existingValue": [],
"elementLabel": "Sponsors",
"instructions": "Enter Ids for sponsors of this program offering.",
"linked": false
},
"completionRequirementsInfo": {
"description": "An informational string for the program completion.",
"type": "string",
"read-only": false,
"minLength": null,
"maxLength": null,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.program.ProgramOffering:completionRequirementsInfo@dxtera.org",
"existingValue": "The existing completion requirements info",
"elementLabel": "Completion Requirements Info",
"instructions": "Enter a completion requirements info for this program offering.",
"linked": false
},
"completionRequirementIds": {
"description": "The requisites for the program completion.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id",
"pattern": "",
"enum": []
},
"read-only": false,
"elementId": "course.program.ProgramOffering:completionRequirements@dxtera.org",
"existingValue": [],
"elementLabel": "Completion Requirements",
"instructions": "Enter Ids for completion requirements of this program offering.",
"linked": false
},
"credentialIds": {
"description": "The awarded credentials.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id",
"pattern": "",
"enum": []
},
"read-only": false,
"elementId": "course.program.ProgramOffering:credentials@dxtera.org",
"existingValue": [],
"elementLabel": "Credentials",
"instructions": "Enter Ids for credentials of this program offering.",
"linked": false
},
"requiresRegistration": {
"description": "-- could someone please write a description for this --",
"type": "boolean",
"elementId": "course.program.ProgramOffering:requiresRegistration@dxtera.org",
"existingValue": false,
"elementLabel": "Requires Registration",
"instructions": "Enter true or false.",
"linked": false
},
"minimumSeats": {
"description": "The minimum number of students this offering can have.",
"type": "integer",
"minimum": 1,
"maximum": null,
"units": "",
"default": null,
"enum": [],
"elementId": "course.program.ProgramOffering:minimumSeats@dxtera.org",
"existingValue": 42,
"elementLabel": "Minimum Seats",
"instructions": "Enter the minimum seats of this program offering.",
"linked": false
},
"maximumSeats": {
"description": "The maximum number of students this offering can have.",
"type": "integer",
"minimum": 1,
"maximum": null,
"units": "",
"default": null,
"enum": [],
"elementId": "course.program.ProgramOffering:maximumSeats@dxtera.org",
"existingValue": 42,
"elementLabel": "Maximum Seats",
"instructions": "Enter the maximum seats of this program offering.",
"linked": false
},
"url": {
"description": "An external resource, such as a class web site, associated with this offering.",
"type": "string",
"read-only": false,
"minLength": null,
"maxLength": null,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.program.ProgramOffering:url@dxtera.org",
"existingValue": "The existing url",
"elementLabel": "URL",
"instructions": "Enter a url for this program offering.",
"linked": false
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Entity representing a program-offering
Get a program-offering given its id.
Update a given program-offering.
Delete a given program-offering.
get /program-offerings/{programOfferingId}
Get a program-offering given its id.
URI Parameters
- programOfferingId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"id": "program.ProgramOffering:2288@base.url",
"uri": "http://base.url/open/campusapi/program/programOffering/program.ProgramOffering%3A2288%40base.url",
"displayName": "Display Name of this ProgramOffering",
"description": "The description of this ProgramOffering",
"genusTypeId": "type.Type:defaultProgramOfferingType@base.url",
"recordTypeIds": [ "type.Type:exampleProgramOfferingRecordType@campusapi.org", "..."],
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"endReasonId": "process.State:2288@base.url",
"programId": "course.program.Program:255@base.url",
"termId": "course.Term:5415@base.url",
"title": "This is the Title",
"number": "101",
"sponsorIds": [ "resource.Resource:9453@base.url", "..." ],
"completionRequirementsInfo": "This is the CompletionRequirementsInfo",
"completionRequirementIds": [ "course.requisite.Requisite:9015@base.url", "..." ],
"credentialIds": [ "course.program.Credential:306@base.url", "..." ],
"requiresRegistration": true,
"minimumSeats": 1,
"maximumSeats": 42,
"url": "http://dxtera.org"
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "program-offering not found" }
put /program-offerings/{programOfferingId}
Update a given program-offering.
URI Parameters
- programOfferingId: required(string)
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "ProgramOffering",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this program offering, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this program offering, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this program offering for display.",
"type": "string"
},
"description": {
"description": "The description of this program offering.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this program offering. Default type set by system unless specified in query parameter.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this program offering. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"startDate": {
"description": "The starting date of this program offering.",
"type": "string",
"format": "date-time"
},
"endDate": {
"description": "The ending date of this program offering.",
"type": "string",
"format": "date-time"
},
"endReasonId": {
"description": "The reason this program offering ended.",
"type": "string",
"format": "osid-id"
},
"programId": {
"description": "The program associated with this program offering.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"termId": {
"description": "The term associated with this program offering.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"title": {
"description": "The formal title of this program offering.",
"type": "string"
},
"number": {
"description": "The program number which is a label generally used to index the program offering in a catalog, such as 16.",
"type": "string"
},
"sponsorIds": {
"description": "The sponsors.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
}
},
"completionRequirementsInfo": {
"description": "An informational string for the program completion.",
"type": "string"
},
"completionRequirementIds": {
"description": "The requisites for the program completion.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
}
},
"credentialIds": {
"description": "The awarded credentials.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
}
},
"requiresRegistration": {
"description": "-- could someone please write a description for this --",
"type": "boolean"
},
"minimumSeats": {
"description": "The minimum number of students this offering can have.",
"type": "integer",
"minimum": 1
},
"maximumSeats": {
"description": "The maximum number of students this offering can have.",
"type": "integer",
"minimum": 1
},
"url": {
"description": "An external resource, such as a class web site, associated with this offering.",
"type": "string"
}
}
}
Example:
{
"displayName": "Display Name of this ProgramOffering",
"description": "The description of this ProgramOffering",
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"endReasonId": "process.State:4379@base.url",
"title": "This is the Title",
"number": "101",
"sponsorIds": [ "resource.Resource:4959@base.url", "..." ],
"completionRequirementsInfo": "This is the CompletionRequirementsInfo",
"completionRequirementIds": [ "course.requisite.Requisite:2331@base.url", "..." ],
"credentialIds": [ "course.program.Credential:2309@base.url", "..." ],
"requiresRegistration": true,
"minimumSeats": 1,
"maximumSeats": 42,
"url": "http://dxtera.org"
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The program-offering has been updated" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "program-offering not found" }
delete /program-offerings/{programOfferingId}
Delete a given program-offering.
URI Parameters
- programOfferingId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The program-offering has been deleted" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "program-offering not found" }
Entity representing a programOffering form metadata for update
Get form metadata for updating an existing programOffering.
get /program-offerings/{programOfferingId}/metadata
Get form metadata for updating an existing programOffering.
URI Parameters
- programOfferingId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "ProgramOffering",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this program offering, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this program offering, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this program offering for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "ProgramOffering.ProgramOffering:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this program offering",
"linked": false
},
"description": {
"description": "The description of this program offering.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "ProgramOffering.ProgramOffering:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this program offering",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this program offering. Default type set by system unless specified in query parameter on initial post.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this program offering. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"startDate": {
"description": "The starting date of this program offering.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "ProgramOffering.ProgramOffering:startDate@base.url",
"existingValue": "2020-10-03T08:00:00.000Z",
"elementLabel": "Start Date",
"instructions": "Enter a starting date for this program offering",
"linked": false
},
"endDate": {
"description": "The ending date of this program offering.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "ProgramOffering.ProgramOffering:endDate@base.url",
"existingValue": "2020-12-18T17:00:00.000Z",
"elementLabel": "End Date",
"instructions": "Enter an ending date for this program offering",
"linked": false
},
"endReasonId": {
"description": "The reason this program offering ended. A process/State object.",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "ProgramOffering.ProgramOffering:endReason@base.url",
"existingValue": "process.State:1860@base.url",
"elementLabel": "End Reason",
"instructions": "Select the reason this program offering ended",
"linked": false
},
"title": {
"description": "The formal title of this program offering.",
"type": "string",
"read-only": false,
"minLength": null,
"maxLength": null,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.program.ProgramOffering:title@dxtera.org",
"existingValue": "The existing title",
"elementLabel": "Title",
"instructions": "Enter a title for this program offering.",
"linked": false
},
"number": {
"description": "The program number which is a label generally used to index the program offering in a catalog, such as 16.",
"type": "string",
"read-only": false,
"minLength": null,
"maxLength": null,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.program.ProgramOffering:number@dxtera.org",
"existingValue": "The existing number",
"elementLabel": "Number",
"instructions": "Enter a number for this program offering.",
"linked": false
},
"sponsorIds": {
"description": "The sponsors.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id",
"pattern": "",
"enum": []
},
"read-only": false,
"elementId": "course.program.ProgramOffering:sponsors@dxtera.org",
"existingValue": [],
"elementLabel": "Sponsors",
"instructions": "Enter Ids for sponsors of this program offering.",
"linked": false
},
"completionRequirementsInfo": {
"description": "An informational string for the program completion.",
"type": "string",
"read-only": false,
"minLength": null,
"maxLength": null,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.program.ProgramOffering:completionRequirementsInfo@dxtera.org",
"existingValue": "The existing completion requirements info",
"elementLabel": "Completion Requirements Info",
"instructions": "Enter a completion requirements info for this program offering.",
"linked": false
},
"completionRequirementIds": {
"description": "The requisites for the program completion.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id",
"pattern": "",
"enum": []
},
"read-only": false,
"elementId": "course.program.ProgramOffering:completionRequirements@dxtera.org",
"existingValue": [],
"elementLabel": "Completion Requirements",
"instructions": "Enter Ids for completion requirements of this program offering.",
"linked": false
},
"credentialIds": {
"description": "The awarded credentials.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id",
"pattern": "",
"enum": []
},
"read-only": false,
"elementId": "course.program.ProgramOffering:credentials@dxtera.org",
"existingValue": [],
"elementLabel": "Credentials",
"instructions": "Enter Ids for credentials of this program offering.",
"linked": false
},
"requiresRegistration": {
"description": "-- could someone please write a description for this --",
"type": "boolean",
"elementId": "course.program.ProgramOffering:requiresRegistration@dxtera.org",
"existingValue": false,
"elementLabel": "Requires Registration",
"instructions": "Enter true or false.",
"linked": false
},
"minimumSeats": {
"description": "The minimum number of students this offering can have.",
"type": "integer",
"minimum": 1,
"maximum": null,
"units": "",
"default": null,
"enum": [],
"elementId": "course.program.ProgramOffering:minimumSeats@dxtera.org",
"existingValue": 42,
"elementLabel": "Minimum Seats",
"instructions": "Enter the minimum seats of this program offering.",
"linked": false
},
"maximumSeats": {
"description": "The maximum number of students this offering can have.",
"type": "integer",
"minimum": 1,
"maximum": null,
"units": "",
"default": null,
"enum": [],
"elementId": "course.program.ProgramOffering:maximumSeats@dxtera.org",
"existingValue": 42,
"elementLabel": "Maximum Seats",
"instructions": "Enter the maximum seats of this program offering.",
"linked": false
},
"url": {
"description": "An external resource, such as a class web site, associated with this offering.",
"type": "string",
"read-only": false,
"minLength": null,
"maxLength": null,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.program.ProgramOffering:url@dxtera.org",
"existingValue": "The existing url",
"elementLabel": "URL",
"instructions": "Enter a url for this program offering.",
"linked": false
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "programOffering not found" }
/credentials
Collection of credentials in a system, federation of systems, or in a default courseCatalog.
Get all credentials in the system or default courseCatalog.
Create a new credential in the default courseCatalog.
get /credentials
Get all credentials in the system or default courseCatalog.
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- genusTypeId: (string)
The id string to match a genusType
Example:
type.Type%3AexampleCredentialType%40dxtera.org
- parentGenusTypeId: (string)
The id string to match a parent genusType
Example:
type.Type%3AparentTypeExampleCredentialType%40dxtera.org
- recordTypeId: (string)
The id string to match a recordType
Example:
type.Type%3AexampleCredentialType%40campusapi.org
- courseCatalogId: (string)
The id string to match a courseCatalog
Example:
course.CourseCatalog%3A8374%40base.url
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "program.Credential:9926@base.url",
"uri": "http://base.url/open/campusapi/program/credential/program.Credential%3A9926%40base.url",
"displayName": "Display Name of this Credential",
"description": "The description of this Credential",
"genusTypeId": "type.Type:defaultCredentialType@base.url",
"recordTypeIds": [ "type.Type:exampleCredentialRecordType@campusapi.org", "..."],
"lifetime": "P3DT3H"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
post /credentials
Create a new credential in the default courseCatalog.
Query Parameters
- genusType: (string)
specify a particular credential type to create
Example:
type.Type%3AexampleCredentialType%40dxtera.org
- recordType: (array of )
specify support for one or more credential record types
Example:
[ "type.Type%3AexampleCredentialRecordType%40campusapi.org", "..." ]
- courseCatalogId: (string)
specify in which course-catalog to create this credential
Example:
program.CourseCatalog%3A8374%40base.url
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Credential",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this credential, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this credential, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this credential for display.",
"type": "string"
},
"description": {
"description": "The description of this credential.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this credential. 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 credential. 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
},
"lifetime": {
"description": "The lifetime of this credential once awarded.",
"type": "string",
"format": "duration"
}
}
}
Example:
{
"displayName": "Display Name of this Credential",
"description": "The description of this Credential",
"lifetime": "P3DT3H"
}
Entity representing a credential form metadata.
Get form metadata for creating a new credential.
get /credentials/metadata
Get form metadata for creating a new credential.
Query Parameters
- genusType: (string)
specify a particular credential type to create
Example:
type.Type%3AexampleCredentialType%40dxtera.org
- recordType: (array of )
specify support for one or more credential record types
Example:
[ "type.Type%3AexampleCredentialRecordType%40campusapi.org", "..." ]
- courseCatalogId: (string)
specify in which course-catalog to create this credential
Example:
program.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": "Credential",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this credential, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this credential, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this credential for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Credential.Credential:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this credential",
"linked": false
},
"description": {
"description": "The description of this credential.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Credential.Credential:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this credential",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this credential. 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 credential. 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
},
"lifetime": {
"description": "The lifetime of this credential once awarded.",
"type": "string",
"format": "duration",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.program.Credential:lifetime@dxtera.org",
"existingValue": "",
"elementLabel": "Lifetime",
"instructions": "Enter the lifetime of this credential.",
"linked": false
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Entity representing a credential
Get a credential given its id.
Update a given credential.
Delete a given credential.
get /credentials/{credentialId}
Get a credential given its id.
URI Parameters
- credentialId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"id": "program.Credential:9926@base.url",
"uri": "http://base.url/open/campusapi/program/credential/program.Credential%3A9926%40base.url",
"displayName": "Display Name of this Credential",
"description": "The description of this Credential",
"genusTypeId": "type.Type:defaultCredentialType@base.url",
"recordTypeIds": [ "type.Type:exampleCredentialRecordType@campusapi.org", "..."],
"lifetime": "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": "credential not found" }
put /credentials/{credentialId}
Update a given credential.
URI Parameters
- credentialId: required(string)
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Credential",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this credential, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this credential, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this credential for display.",
"type": "string"
},
"description": {
"description": "The description of this credential.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this credential. 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 credential. 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
},
"lifetime": {
"description": "The lifetime of this credential once awarded.",
"type": "string",
"format": "duration"
}
}
}
Example:
{
"displayName": "Display Name of this Credential",
"description": "The description of this Credential",
"lifetime": "P3DT3H"
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The credential 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": "credential not found" }
delete /credentials/{credentialId}
Delete a given credential.
URI Parameters
- credentialId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The credential 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": "credential not found" }
Entity representing a credential form metadata for update
Get form metadata for updating an existing credential.
get /credentials/{credentialId}/metadata
Get form metadata for updating an existing credential.
URI Parameters
- credentialId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "Credential",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this credential, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this credential, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this credential for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Credential.Credential:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this credential",
"linked": false
},
"description": {
"description": "The description of this credential.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Credential.Credential:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this credential",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this credential. 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 credential. 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
},
"lifetime": {
"description": "The lifetime of this credential once awarded.",
"type": "string",
"format": "duration",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "course.program.Credential:lifetime@dxtera.org",
"existingValue": "",
"elementLabel": "Lifetime",
"instructions": "Enter the lifetime of this credential.",
"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": "credential not found" }
/enrollments
Collection of enrollments in a system, federation of systems, or in a default courseCatalog.
Get all enrollments in the system or default courseCatalog.
Create a new enrollment in the default courseCatalog.
get /enrollments
Get all enrollments in the system or default courseCatalog.
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- genusTypeId: (string)
The id string to match a genusType
Example:
type.Type%3AexampleEnrollmentType%40dxtera.org
- parentGenusTypeId: (string)
The id string to match a parent genusType
Example:
type.Type%3AparentTypeExampleEnrollmentType%40dxtera.org
- recordTypeId: (string)
The id string to match a recordType
Example:
type.Type%3AexampleEnrollmentType%40campusapi.org
- fromDate: (string)
Get all enrollments from this date inclusive. Use with toDate to define date range query.
Example:
2020-10-03
- toDate: (string)
Get all enrollments up to this date inclusive. Use with fromDate to define date range query.
Example:
2020-12-18
- programOfferingId: (string)
the id string to match a program-offering.
Example:
program.ProgramOffering%3A1120%40base.url
- studentId: (string)
the id string to match a student.
Example:
resource.Resource%3A560%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": "program.Enrollment:7215@base.url",
"uri": "http://base.url/open/campusapi/program/enrollment/program.Enrollment%3A7215%40base.url",
"displayName": "Display Name of this Enrollment",
"description": "The description of this Enrollment",
"genusTypeId": "type.Type:defaultEnrollmentType@base.url",
"recordTypeIds": [ "type.Type:exampleEnrollmentRecordType@campusapi.org", "..."],
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"endReasonId": "process.State:7215@base.url",
"programOfferingId": "course.program.ProgramOffering:7112@base.url",
"studentId": "resource.Resource:9365@base.url"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
post /enrollments
Create a new enrollment in the default courseCatalog.
Query Parameters
- programOfferingId: required(string)
the program-offering of this enrollment.
Example:
program.ProgramOffering%3A1120%40base.url
- studentId: required(string)
the student of this enrollment.
Example:
resource.Resource%3A560%40base.url
- genusType: (string)
specify a particular enrollment type to create
Example:
type.Type%3AexampleEnrollmentType%40dxtera.org
- recordType: (array of )
specify support for one or more enrollment record types
Example:
[ "type.Type%3AexampleEnrollmentRecordType%40campusapi.org", "..." ]
- courseCatalogId: (string)
specify in which course-catalog to create this enrollment
Example:
program.CourseCatalog%3A8374%40base.url
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Enrollment",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this enrollment, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this enrollment, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this enrollment for display.",
"type": "string"
},
"description": {
"description": "The description of this enrollment.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this enrollment. 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 enrollment. 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 enrollment.",
"type": "string",
"format": "date-time"
},
"endDate": {
"description": "The ending date of this enrollment.",
"type": "string",
"format": "date-time"
},
"endReasonId": {
"description": "The reason this enrollment ended.",
"type": "string",
"format": "osid-id"
},
"programOfferingId": {
"description": "The program offering associated with this enrollment.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"studentId": {
"description": "The student associated with this enrollment.",
"type": "string",
"format": "osid-id",
"readOnly": true
}
}
}
Example:
{
"displayName": "Display Name of this Enrollment",
"description": "The description of this Enrollment",
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"endReasonId": "process.State:3034@base.url"
}
Entity representing a enrollment form metadata.
Get form metadata for creating a new enrollment.
get /enrollments/metadata
Get form metadata for creating a new enrollment.
Query Parameters
- programOfferingId: required(string)
the program-offering of this metadatum.
Example:
program.ProgramOffering%3A1120%40base.url
- studentId: required(string)
the student of this metadatum.
Example:
resource.Resource%3A560%40base.url
- genusType: (string)
specify a particular enrollment type to create
Example:
type.Type%3AexampleEnrollmentType%40dxtera.org
- recordType: (array of )
specify support for one or more enrollment record types
Example:
[ "type.Type%3AexampleEnrollmentRecordType%40campusapi.org", "..." ]
- courseCatalogId: (string)
specify in which course-catalog to create this enrollment
Example:
program.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": "Enrollment",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this enrollment, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this enrollment, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this enrollment for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Enrollment.Enrollment:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this enrollment",
"linked": false
},
"description": {
"description": "The description of this enrollment.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Enrollment.Enrollment:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this enrollment",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this enrollment. 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 enrollment. 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 enrollment.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Enrollment.Enrollment:startDate@base.url",
"existingValue": "2020-10-03T08:00:00.000Z",
"elementLabel": "Start Date",
"instructions": "Enter a starting date for this enrollment",
"linked": false
},
"endDate": {
"description": "The ending date of this enrollment.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Enrollment.Enrollment:endDate@base.url",
"existingValue": "2020-12-18T17:00:00.000Z",
"elementLabel": "End Date",
"instructions": "Enter an ending date for this enrollment",
"linked": false
},
"endReasonId": {
"description": "The reason this enrollment ended. A process/State object.",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Enrollment.Enrollment:endReason@base.url",
"existingValue": "process.State:1860@base.url",
"elementLabel": "End Reason",
"instructions": "Select the reason this enrollment ended",
"linked": false
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Entity representing a enrollment
Get a enrollment given its id.
Update a given enrollment.
Delete a given enrollment.
get /enrollments/{enrollmentId}
Get a enrollment given its id.
URI Parameters
- enrollmentId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"id": "program.Enrollment:7215@base.url",
"uri": "http://base.url/open/campusapi/program/enrollment/program.Enrollment%3A7215%40base.url",
"displayName": "Display Name of this Enrollment",
"description": "The description of this Enrollment",
"genusTypeId": "type.Type:defaultEnrollmentType@base.url",
"recordTypeIds": [ "type.Type:exampleEnrollmentRecordType@campusapi.org", "..."],
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"endReasonId": "process.State:7215@base.url",
"programOfferingId": "course.program.ProgramOffering:7112@base.url",
"studentId": "resource.Resource:9365@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": "enrollment not found" }
put /enrollments/{enrollmentId}
Update a given enrollment.
URI Parameters
- enrollmentId: required(string)
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Enrollment",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this enrollment, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this enrollment, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this enrollment for display.",
"type": "string"
},
"description": {
"description": "The description of this enrollment.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this enrollment. 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 enrollment. 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 enrollment.",
"type": "string",
"format": "date-time"
},
"endDate": {
"description": "The ending date of this enrollment.",
"type": "string",
"format": "date-time"
},
"endReasonId": {
"description": "The reason this enrollment ended.",
"type": "string",
"format": "osid-id"
},
"programOfferingId": {
"description": "The program offering associated with this enrollment.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"studentId": {
"description": "The student associated with this enrollment.",
"type": "string",
"format": "osid-id",
"readOnly": true
}
}
}
Example:
{
"displayName": "Display Name of this Enrollment",
"description": "The description of this Enrollment",
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"endReasonId": "process.State:3034@base.url"
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The enrollment 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": "enrollment not found" }
delete /enrollments/{enrollmentId}
Delete a given enrollment.
URI Parameters
- enrollmentId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The enrollment 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": "enrollment not found" }
Entity representing a enrollment form metadata for update
Get form metadata for updating an existing enrollment.
get /enrollments/{enrollmentId}/metadata
Get form metadata for updating an existing enrollment.
URI Parameters
- enrollmentId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "Enrollment",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this enrollment, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this enrollment, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this enrollment for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Enrollment.Enrollment:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this enrollment",
"linked": false
},
"description": {
"description": "The description of this enrollment.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Enrollment.Enrollment:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this enrollment",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this enrollment. 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 enrollment. 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 enrollment.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Enrollment.Enrollment:startDate@base.url",
"existingValue": "2020-10-03T08:00:00.000Z",
"elementLabel": "Start Date",
"instructions": "Enter a starting date for this enrollment",
"linked": false
},
"endDate": {
"description": "The ending date of this enrollment.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Enrollment.Enrollment:endDate@base.url",
"existingValue": "2020-12-18T17:00:00.000Z",
"elementLabel": "End Date",
"instructions": "Enter an ending date for this enrollment",
"linked": false
},
"endReasonId": {
"description": "The reason this enrollment ended. A process/State object.",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Enrollment.Enrollment:endReason@base.url",
"existingValue": "process.State:1860@base.url",
"elementLabel": "End Reason",
"instructions": "Select the reason this enrollment ended",
"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": "enrollment not found" }
/course-catalogs
Collection of course-catalogs in a system or federation of systems.
Get all course-catalogs.
Create a new course-catalog.
get /course-catalogs
Get all course-catalogs.
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- genusTypeId: (string)
The id string to match a genusType
Example:
type.Type%3AexampleCourseCatalogType%40dxtera.org
- parentGenusTypeId: (string)
The id string to match a parent genusType
Example:
type.Type%3AparentTypeExampleCourseCatalogType%40dxtera.org
- recordTypeId: (string)
The id string to match a recordType
Example:
type.Type%3AexampleCourseCatalogType%40campusapi.org
- providerId: (string)
Id string to match provider.
Example:
resource.Resource%3A3007%40demo.dxtera.org
- programId: (string)
Get course-catalogs mapped to this program.
Example:
program.Program%3A637%40demo.dxtera.org
- programOfferingId: (string)
Get course-catalogs mapped to this program-offering.
Example:
program.ProgramOffering%3A1456%40demo.dxtera.org
- credentialId: (string)
Get course-catalogs mapped to this credential.
Example:
program.Credential%3A910%40demo.dxtera.org
- enrollmentId: (string)
Get course-catalogs mapped to this enrollment.
Example:
program.Enrollment%3A910%40demo.dxtera.org
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "course.CourseCatalog:2322@base.url",
"uri": "http://base.url/open/campusapi/course/courseCatalog/course.CourseCatalog%3A2322%40base.url",
"displayName": "Display Name of this CourseCatalog",
"description": "The description of this CourseCatalog",
"genusTypeId": "type.Type:defaultCourseCatalogType@base.url",
"recordTypeIds": [ "type.Type:exampleCourseCatalogRecordType@campusapi.org", "..."],
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:CourseCatalog@base.url",
"license": "The license that applies to this CourseCatalog"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
post /course-catalogs
Create a new course-catalog.
Query Parameters
- genusType: (string)
specify a particular courseCatalog type to create
Example:
type.Type%3AexampleCourseCatalogType%40dxtera.org
- recordType: (array of )
specify support for one or more courseCatalog record types
Example:
[ "type.Type%3AexampleCourseCatalogRecordType%40campusapi.org", "..." ]
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "CourseCatalog",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this course catalog, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this course catalog, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this course catalog for display.",
"type": "string"
},
"description": {
"description": "The description of this course catalog.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this course catalog. Default type set by system unless specified in query parameter.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this course catalog. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"providerId": {
"description": "The provider of this course catalog.",
"type": "string",
"format": "osid-id"
},
"brandingIds": {
"description": "The branding of this course catalog. A collection of Assets.",
"type": "array",
"items" : {
"type": "string",
"format": "osid-id"
}
},
"license": {
"description": "The licensing that applies to this course catalog.",
"type": "string"
}
}
}
Example:
{
"displayName": "Display Name of this CourseCatalog",
"description": "The description of this CourseCatalog",
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:CourseCatalog@base.url",
"license": "The license that applies to this CourseCatalog"
}
Entity representing a courseCatalog form metadata.
Get form metadata for creating a new courseCatalog.
get /course-catalogs/metadata
Get form metadata for creating a new courseCatalog.
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "CourseCatalog",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this course catalog, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this course catalog, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this course catalog for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "CourseCatalog.CourseCatalog:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this course catalog",
"linked": false
},
"description": {
"description": "The description of this course catalog.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "CourseCatalog.CourseCatalog:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this course catalog",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this course catalog. Default type set by system unless specified in query parameter on initial post.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this course catalog. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"providerId": {
"description": "The provider of this course catalog.",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "CourseCatalog.CourseCatalog:provider@base.url",
"existingValue": "",
"elementLabel": "Provider",
"instructions": "Enter the provider of this course catalog",
"linked": false
},
"brandingIds": {
"description": "The branding of this course catalog. A list of Assets.",
"type": "array",
"items" : {
"type": "string",
"format": "osid-id",
"pattern": "",
"enum": []
},
"read-only": false,
"default": [],
"elementId": "CourseCatalog.CourseCatalog:branding@base.url",
"existingValue": "",
"elementLabel": "Branding",
"instructions": "Enter the branding images for this course catalog",
"linked": false
},
"license": {
"description": "The licensing that applies to this course catalog.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "CourseCatalog.CourseCatalog:license@base.url",
"existingValue": "The Existing License",
"elementLabel": "License",
"instructions": "Include a license for this course catalog",
"linked": false
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
The root courseCatalogs in the courseCatalog hierarchy. A node with no parents is an orphan. While all courseCatalog Ids are known to the hierarchy, an orphan does not appear in the hierarchy unless explicitly added as a root node or child of another node.
Get all root root-course-catalog
get /course-catalogs/root-course-catalog
Get all root root-course-catalog
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "course.CourseCatalog:2322@base.url",
"uri": "http://base.url/open/campusapi/course/courseCatalog/course.CourseCatalog%3A2322%40base.url",
"displayName": "Display Name of this CourseCatalog",
"description": "The description of this CourseCatalog",
"genusTypeId": "type.Type:defaultCourseCatalogType@base.url",
"recordTypeIds": [ "type.Type:exampleCourseCatalogRecordType@campusapi.org", "..."],
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:CourseCatalog@base.url",
"license": "The license that applies to this CourseCatalog"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Entity representing a course-catalog
Get a course-catalog given its id.
Update a given course-catalog.
Delete a given course-catalog.
get /course-catalogs/{courseCatalogId}
Get a course-catalog given its id.
URI Parameters
- courseCatalogId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"id": "course.CourseCatalog:2322@base.url",
"uri": "http://base.url/open/campusapi/course/courseCatalog/course.CourseCatalog%3A2322%40base.url",
"displayName": "Display Name of this CourseCatalog",
"description": "The description of this CourseCatalog",
"genusTypeId": "type.Type:defaultCourseCatalogType@base.url",
"recordTypeIds": [ "type.Type:exampleCourseCatalogRecordType@campusapi.org", "..."],
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:CourseCatalog@base.url",
"license": "The license that applies to this CourseCatalog"
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "course-catalog not found" }
put /course-catalogs/{courseCatalogId}
Update a given course-catalog.
URI Parameters
- courseCatalogId: required(string)
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "CourseCatalog",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this course catalog, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this course catalog, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this course catalog for display.",
"type": "string"
},
"description": {
"description": "The description of this course catalog.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this course catalog. Default type set by system unless specified in query parameter.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this course catalog. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"providerId": {
"description": "The provider of this course catalog.",
"type": "string",
"format": "osid-id"
},
"brandingIds": {
"description": "The branding of this course catalog. A collection of Assets.",
"type": "array",
"items" : {
"type": "string",
"format": "osid-id"
}
},
"license": {
"description": "The licensing that applies to this course catalog.",
"type": "string"
}
}
}
Example:
{
"displayName": "Display Name of this CourseCatalog",
"description": "The description of this CourseCatalog",
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:CourseCatalog@base.url",
"license": "The license that applies to this CourseCatalog"
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The course-catalog has been updated" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "course-catalog not found" }
delete /course-catalogs/{courseCatalogId}
Delete a given course-catalog.
URI Parameters
- courseCatalogId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The course-catalog has been deleted" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "course-catalog not found" }
Entity representing a courseCatalog form metadata for update
Get form metadata for updating an existing courseCatalog.
get /course-catalogs/{courseCatalogId}/metadata
Get form metadata for updating an existing courseCatalog.
URI Parameters
- courseCatalogId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "CourseCatalog",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this course catalog, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this course catalog, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this course catalog for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "CourseCatalog.CourseCatalog:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this course catalog",
"linked": false
},
"description": {
"description": "The description of this course catalog.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "CourseCatalog.CourseCatalog:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this course catalog",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this course catalog. Default type set by system unless specified in query parameter on initial post.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this course catalog. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"providerId": {
"description": "The provider of this course catalog.",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "CourseCatalog.CourseCatalog:provider@base.url",
"existingValue": "",
"elementLabel": "Provider",
"instructions": "Enter the provider of this course catalog",
"linked": false
},
"brandingIds": {
"description": "The branding of this course catalog. A list of Assets.",
"type": "array",
"items" : {
"type": "string",
"format": "osid-id",
"pattern": "",
"enum": []
},
"read-only": false,
"default": [],
"elementId": "CourseCatalog.CourseCatalog:branding@base.url",
"existingValue": "",
"elementLabel": "Branding",
"instructions": "Enter the branding images for this course catalog",
"linked": false
},
"license": {
"description": "The licensing that applies to this course catalog.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "CourseCatalog.CourseCatalog:license@base.url",
"existingValue": "The Existing License",
"elementLabel": "License",
"instructions": "Include a license for this course catalog",
"linked": false
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "courseCatalog not found" }
Get child courseCatalogs for the given courseCatalog in the hierarchy.
get /course-catalogs/{courseCatalogId}/children
Get child courseCatalogs for the given courseCatalog in the hierarchy.
URI Parameters
- courseCatalogId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "course.CourseCatalog:2322@base.url",
"uri": "http://base.url/open/campusapi/course/courseCatalog/course.CourseCatalog%3A2322%40base.url",
"displayName": "Display Name of this CourseCatalog",
"description": "The description of this CourseCatalog",
"genusTypeId": "type.Type:defaultCourseCatalogType@base.url",
"recordTypeIds": [ "type.Type:exampleCourseCatalogRecordType@campusapi.org", "..."],
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:CourseCatalog@base.url",
"license": "The license that applies to this CourseCatalog"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Add courseCatalog as child of the given courseCatalog in the hierarchy.
Remove the given courseCatalog as a child of the given courseCatalog in the hierarchy.
put /course-catalogs/{courseCatalogId}/children/{childId}
Add courseCatalog as child of the given courseCatalog in the hierarchy.
URI Parameters
- courseCatalogId: required(string)
- childId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The child courseCatalog has been added to the hierarchy" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{ "message": "courseCatalog not found" }
delete /course-catalogs/{courseCatalogId}/children/{childId}
Remove the given courseCatalog as a child of the given courseCatalog in the hierarchy.
URI Parameters
- courseCatalogId: required(string)
- childId: required(string)
Get parent courseCatalogs for the given courseCatalog in the hierarchy.
get /course-catalogs/{courseCatalogId}/parents
Get parent courseCatalogs for the given courseCatalog in the hierarchy.
URI Parameters
- courseCatalogId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "course.CourseCatalog:2322@base.url",
"uri": "http://base.url/open/campusapi/course/courseCatalog/course.CourseCatalog%3A2322%40base.url",
"displayName": "Display Name of this CourseCatalog",
"description": "The description of this CourseCatalog",
"genusTypeId": "type.Type:defaultCourseCatalogType@base.url",
"recordTypeIds": [ "type.Type:exampleCourseCatalogRecordType@campusapi.org", "..."],
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:CourseCatalog@base.url",
"license": "The license that applies to this CourseCatalog"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Get all programs in this courseCatalog
get /course-catalogs/{courseCatalogId}/programs
Get all programs in this courseCatalog
URI Parameters
- courseCatalogId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "program.Program:1344@base.url",
"uri": "http://base.url/open/campusapi/program/program/program.Program%3A1344%40base.url",
"displayName": "Display Name of this Program",
"description": "The description of this Program",
"genusTypeId": "type.Type:defaultProgramType@base.url",
"recordTypeIds": [ "type.Type:exampleProgramRecordType@campusapi.org", "..."],
"title": "This is the Title",
"number": "101",
"sponsorIds": [ "resource.Resource:8475@base.url", "..." ],
"completionRequirementsInfo": "This is the CompletionRequirementsInfo",
"completionRequirementIds": [ "course.requisite.Requisite:7638@base.url", "..." ],
"credentialIds": [ "course.program.Credential:2551@base.url", "..." ]
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Add the given program to this courseCatalog
Remove the given program from the courseCatalog.
put /course-catalogs/{courseCatalogId}/programs/{programId}
Add the given program to this courseCatalog
URI Parameters
- courseCatalogId: required(string)
- programId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "program 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": "program not found" }
delete /course-catalogs/{courseCatalogId}/programs/{programId}
Remove the given program from the courseCatalog.
URI Parameters
- courseCatalogId: required(string)
- programId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "program 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": "program not found" }
Get all program-offerings in this courseCatalog
get /course-catalogs/{courseCatalogId}/program-offerings
Get all program-offerings in this courseCatalog
URI Parameters
- courseCatalogId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "program.ProgramOffering:2288@base.url",
"uri": "http://base.url/open/campusapi/program/programOffering/program.ProgramOffering%3A2288%40base.url",
"displayName": "Display Name of this ProgramOffering",
"description": "The description of this ProgramOffering",
"genusTypeId": "type.Type:defaultProgramOfferingType@base.url",
"recordTypeIds": [ "type.Type:exampleProgramOfferingRecordType@campusapi.org", "..."],
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"endReasonId": "process.State:2288@base.url",
"programId": "course.program.Program:255@base.url",
"termId": "course.Term:5415@base.url",
"title": "This is the Title",
"number": "101",
"sponsorIds": [ "resource.Resource:9453@base.url", "..." ],
"completionRequirementsInfo": "This is the CompletionRequirementsInfo",
"completionRequirementIds": [ "course.requisite.Requisite:9015@base.url", "..." ],
"credentialIds": [ "course.program.Credential:306@base.url", "..." ],
"requiresRegistration": true,
"minimumSeats": 1,
"maximumSeats": 42,
"url": "http://dxtera.org"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Add the given program-offering to this courseCatalog
Remove the given program-offering from the courseCatalog.
put /course-catalogs/{courseCatalogId}/program-offerings/{programOfferingId}
Add the given program-offering to this courseCatalog
URI Parameters
- courseCatalogId: required(string)
- programOfferingId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "program-offering has been added to courseCatalog" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{ "message": "program-offering not found" }
delete /course-catalogs/{courseCatalogId}/program-offerings/{programOfferingId}
Remove the given program-offering from the courseCatalog.
URI Parameters
- courseCatalogId: required(string)
- programOfferingId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "program-offering has been removed" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{ "message": "program-offering not found" }
Get all credentials in this courseCatalog
get /course-catalogs/{courseCatalogId}/credentials
Get all credentials in this courseCatalog
URI Parameters
- courseCatalogId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "program.Credential:9926@base.url",
"uri": "http://base.url/open/campusapi/program/credential/program.Credential%3A9926%40base.url",
"displayName": "Display Name of this Credential",
"description": "The description of this Credential",
"genusTypeId": "type.Type:defaultCredentialType@base.url",
"recordTypeIds": [ "type.Type:exampleCredentialRecordType@campusapi.org", "..."],
"lifetime": "P3DT3H"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Add the given credential to this courseCatalog
Remove the given credential from the courseCatalog.
put /course-catalogs/{courseCatalogId}/credentials/{credentialId}
Add the given credential to this courseCatalog
URI Parameters
- courseCatalogId: required(string)
- credentialId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "credential 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": "credential not found" }
delete /course-catalogs/{courseCatalogId}/credentials/{credentialId}
Remove the given credential from the courseCatalog.
URI Parameters
- courseCatalogId: required(string)
- credentialId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "credential 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": "credential not found" }
Get all enrollments in this courseCatalog
get /course-catalogs/{courseCatalogId}/enrollments
Get all enrollments in this courseCatalog
URI Parameters
- courseCatalogId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "program.Enrollment:7215@base.url",
"uri": "http://base.url/open/campusapi/program/enrollment/program.Enrollment%3A7215%40base.url",
"displayName": "Display Name of this Enrollment",
"description": "The description of this Enrollment",
"genusTypeId": "type.Type:defaultEnrollmentType@base.url",
"recordTypeIds": [ "type.Type:exampleEnrollmentRecordType@campusapi.org", "..."],
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"endReasonId": "process.State:7215@base.url",
"programOfferingId": "course.program.ProgramOffering:7112@base.url",
"studentId": "resource.Resource:9365@base.url"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Add the given enrollment to this courseCatalog
Remove the given enrollment from the courseCatalog.
put /course-catalogs/{courseCatalogId}/enrollments/{enrollmentId}
Add the given enrollment to this courseCatalog
URI Parameters
- courseCatalogId: required(string)
- enrollmentId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "enrollment 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": "enrollment not found" }
delete /course-catalogs/{courseCatalogId}/enrollments/{enrollmentId}
Remove the given enrollment from the courseCatalog.
URI Parameters
- courseCatalogId: required(string)
- enrollmentId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "enrollment 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": "enrollment not found" }