CampusAPI Program Services API documentation version 1.0.5
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 2023 DXtera Institute. Based on the Open Service Interface Definitions: 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
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "sponsors", "completionRequirements", "credentials", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
- genusTypeId: (string)
The id string to match a genusType
Example:
type.Type%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:2379@base.url",
"uri": "http://base.url/open/campusapi/program/program/program.Program%3A2379%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:4420@base.url", "..." ],
"completionRequirementsInfo": "This is the CompletionRequirementsInfo",
"completionRequirementIds": [ "course.requisite.Requisite:4839@base.url", "..." ],
"credentialIds": [ "course.program.Credential:9891@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:9207@base.url", "..." ],
"completionRequirementsInfo": "This is the CompletionRequirementsInfo",
"completionRequirementIds": [ "course.requisite.Requisite:1658@base.url", "..." ],
"credentialIds": [ "course.program.Credential:7529@base.url", "..." ]
}
Query the collection of Programs in a system, federation of systems, or in a default courseCatalog by posting a Query object.
Submit a query using a ProgramQuery object.
post /programs/program-query
Submit a query using a ProgramQuery object.
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "sponsors", "completionRequirements", "credentials", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "ProgramQuery",
"type": "object",
"properties": {
"matchIds": {
"description": "List of Ids to match. Boolean OR performed among multiple Ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchKeywords": {
"description": "List keywords to match. Multiple keywords can be added to perform a boolean OR among them. A keyword may be applied to any of the elements defined in this object such as the display name, description or any attribute defined in or implemented by this object.",
"type": "array",
"items": {
"type": "object",
"properties": {
"keyword": {
"description": "keyword to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchDisplayNames": {
"description": "List of displayName strings to match. Boolean OR performed among multiple displayNames.",
"type": "array",
"items": {
"type": "object",
"properties": {
"displayName": {
"description": "displayName to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchDescriptions": {
"description": "List of discription strings to match. Boolean OR performed among multiple descriptions.",
"type": "array",
"items": {
"type": "object",
"properties": {
"description": {
"description": "description to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchGenusTypeIds": {
"description": "List of genus type ids to match. Boolean OR performed among multiple ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"genusTypeid": {
"description": "genus type id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchRecordTypeIds": {
"description": "List of record type ids to match. Boolean OR performed among multiple ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"genusTypeid": {
"description": "record type id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchTitle": {
"description": "List of Title strings to match. Boolean OR performed among multiple titles.",
"type": "array",
"items": {
"type": "object",
"properties": {
"titles": {
"description": "titles to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyTitle": {
"description": "Match titles with any value. true to match Programs with any title, false to match ProgramOfferings with no title",
"type": "boolean"
},
"matchNumber": {
"description": "List of Number strings to match. Boolean OR performed among multiple numbers.",
"type": "array",
"items": {
"type": "object",
"properties": {
"numbers": {
"description": "numbers to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyNumber": {
"description": "Match numbers with any value. true to match Programs with any number, false to match ProgramOfferings with no number",
"type": "boolean"
},
"matchSponsorIds": {
"description": "List of Resource Ids for this query to match sponsors.",
"type": "array",
"items": {
"type": "object",
"properties": {
"sponsorId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"sponsorQueries": {
"description": "resource.ResourceQueries to match the Sponsors. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchAnySponsor": {
"description": "Match sponsors with any value. true to match Programs with any sponsors, false to match Programs with no sponsors",
"type": "boolean"
},
"matchCompletionRequirementsInfo": {
"description": "List of CompletionRequirementsInfo strings to match. Boolean OR performed among multiple completionRequirementsInfos.",
"type": "array",
"items": {
"type": "object",
"properties": {
"completionRequirementsInfos": {
"description": "completionRequirementsInfos to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyCompletionRequirementsInfo": {
"description": "Match completionRequirementsInfos with any value. true to match Programs with any completion requirements info, false to match ProgramOfferings with no completion requirements info",
"type": "boolean"
},
"matchCompletionRequirementIds": {
"description": "List of Requisite Ids for this query to match completionRequirements.",
"type": "array",
"items": {
"type": "object",
"properties": {
"completionRequirementId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"completionRequirementQueries": {
"description": "requisite.RequisiteQueries to match the Completion Requirements. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchAnyCompletionRequirement": {
"description": "Match completion requirements with any value. true to match Programs with any completion requirements, false to match Programs with no completion requirements",
"type": "boolean"
},
"matchCredentialIds": {
"description": "List of Credential Ids for this query to match credentials.",
"type": "array",
"items": {
"type": "object",
"properties": {
"credentialId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"credentialQueries": {
"description": "program.CredentialQueries to match the Credentials. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchAnyCredential": {
"description": "Match credentials with any value. true to match Programs with any credentials, false to match Programs with no credentials",
"type": "boolean"
},
"matchCourseCatalogIds": {
"description": "List of CourseCatalog Id's to match.",
"type": "array",
"items": {
"type": "object",
"properties": {
"courseCatalogId": {
"description": "Course Catalog id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"courseCatalogQueries": {
"description": "CourseCatalogQueries to match Course Catalog. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
}
}
}
Example:
{
"matchDisplayNames": [
{
"displayName": "string to exclude",
"match": false
}
]
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "program.Program:2379@base.url",
"uri": "http://base.url/open/campusapi/program/program/program.Program%3A2379%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:4420@base.url", "..." ],
"completionRequirementsInfo": "This is the CompletionRequirementsInfo",
"completionRequirementIds": [ "course.requisite.Requisite:4839@base.url", "..." ],
"credentialIds": [ "course.program.Credential:9891@base.url", "..." ]
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
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 particular Program given its id.
Update a particular Program given its id.
Delete a particular Program given its id.
get /programs/{programId}
Get a particular Program given its id.
URI Parameters
- programId: required(string)
Query Parameters
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "sponsors", "completionRequirements", "credentials", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"id": "program.Program:2379@base.url",
"uri": "http://base.url/open/campusapi/program/program/program.Program%3A2379%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:4420@base.url", "..." ],
"completionRequirementsInfo": "This is the CompletionRequirementsInfo",
"completionRequirementIds": [ "course.requisite.Requisite:4839@base.url", "..." ],
"credentialIds": [ "course.program.Credential:9891@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 particular Program given its id.
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:9207@base.url", "..." ],
"completionRequirementsInfo": "This is the CompletionRequirementsInfo",
"completionRequirementIds": [ "course.requisite.Requisite:1658@base.url", "..." ],
"credentialIds": [ "course.program.Credential:7529@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 particular Program given its id.
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 that includes a list of course ids for evaluation. Only course ids directly related to program requisites will be evaluated.
post /programs/{programId}/completions/completion-query
Submit a query using a CompletionQuery object that includes a list of course ids for evaluation. Only course ids directly related to program requisites will be evaluated.
URI Parameters
- programId: required(string)
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "CompletionQuery",
"type": "object",
"properties": {
"matchCourseIds": {
"description": "List of course Ids to match. Boolean OR performed among multiple Ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match (default), false for a negative match",
"type": "boolean"
}
}
}
}
}
}
Example:
{
"matchDisplayNames": [
{
"displayName": "string to exclude",
"match": false
}
]
}
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 ProgramOfferings in a system, federation of systems, or in a default CourseCatalog.
Get all ProgramOfferings in the system or default CourseCatalog.
Create a new ProgramOffering in the default CourseCatalog.
get /program-offerings
Get all ProgramOfferings in the system or default CourseCatalog.
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "endReason", "sponsors", "completionRequirements", "credentials", "program", "term", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
- genusTypeId: (string)
The id string to match a genusType
Example:
type.Type%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:4524@base.url",
"uri": "http://base.url/open/campusapi/program/programOffering/program.ProgramOffering%3A4524%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:4524@base.url",
"programId": "course.program.Program:9926@base.url",
"termId": "course.Term:7570@base.url",
"title": "This is the Title",
"number": "101",
"sponsorIds": [ "resource.Resource:6065@base.url", "..." ],
"completionRequirementsInfo": "This is the CompletionRequirementsInfo",
"completionRequirementIds": [ "course.requisite.Requisite:6692@base.url", "..." ],
"credentialIds": [ "course.program.Credential:6655@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 ProgramOffering 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:1821@base.url",
"title": "This is the Title",
"number": "101",
"sponsorIds": [ "resource.Resource:9624@base.url", "..." ],
"completionRequirementsInfo": "This is the CompletionRequirementsInfo",
"completionRequirementIds": [ "course.requisite.Requisite:2287@base.url", "..." ],
"credentialIds": [ "course.program.Credential:8691@base.url", "..." ],
"requiresRegistration": true,
"minimumSeats": 1,
"maximumSeats": 42,
"url": "http://dxtera.org"
}
Query the collection of ProgramOfferings in a system, federation of systems, or in a default courseCatalog by posting a Query object.
Submit a query using a ProgramOfferingQuery object.
post /program-offerings/program-offering-query
Submit a query using a ProgramOfferingQuery object.
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "endReason", "sponsors", "completionRequirements", "credentials", "program", "term", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "ProgramOfferingQuery",
"type": "object",
"properties": {
"matchIds": {
"description": "List of Ids to match. Boolean OR performed among multiple Ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchKeywords": {
"description": "List keywords to match. Multiple keywords can be added to perform a boolean OR among them. A keyword may be applied to any of the elements defined in this object such as the display name, description or any attribute defined in or implemented by this object.",
"type": "array",
"items": {
"type": "object",
"properties": {
"keyword": {
"description": "keyword to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchDisplayNames": {
"description": "List of displayName strings to match. Boolean OR performed among multiple displayNames.",
"type": "array",
"items": {
"type": "object",
"properties": {
"displayName": {
"description": "displayName to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchDescriptions": {
"description": "List of discription strings to match. Boolean OR performed among multiple descriptions.",
"type": "array",
"items": {
"type": "object",
"properties": {
"description": {
"description": "description to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchGenusTypeIds": {
"description": "List of genus type ids to match. Boolean OR performed among multiple ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"genusTypeid": {
"description": "genus type id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchRecordTypeIds": {
"description": "List of record type ids to match. Boolean OR performed among multiple ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"genusTypeid": {
"description": "record type id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchEffective": {
"description": "Match effective objects where the current date falls within the start and end dates inclusive. true to match any effective, false to match ineffective",
"type": "boolean"
},
"matchStartDate": {
"description": "Matches temporals whose start date falls in between the given dates inclusive.",
"type": "object",
"properties": {
"start": {
"description": "start of date range",
"type": "string",
"format": "date-time"
},
"end": {
"description": "end of date range",
"type": "string",
"format": "date-time"
},
"match": {
"description": "true if a positive match, false for negative match",
"type": "boolean"
}
}
},
"matchEndDate": {
"description": "Matches temporals whose end date falls in between the given dates inclusive.",
"type": "object",
"properties": {
"start": {
"description": "start of date range",
"type": "string",
"format": "date-time"
},
"end": {
"description": "end of date range",
"type": "string",
"format": "date-time"
},
"match": {
"description": "true if a positive match, false for negative match",
"type": "boolean"
}
}
},
"matchEndReasonIds": {
"description": "List of end reason Id's to match.",
"type": "array",
"items": {
"type": "object",
"properties": {
"stateId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"endReasonQueries": {
"description": "process.StateQueries to match end reason state. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchAnyEndReason": {
"description": "Match end reasons with any value. true to match ProgramOfferings with any end reason, false to match ProgramOfferings with no end reason",
"type": "boolean"
},
"matchProgramIds": {
"description": "List of program Ids for this query to match program offering that have a related program.",
"type": "array",
"items": {
"type": "object",
"properties": {
"ruleId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"programQueries": {
"description": "ProgramQueries to match the program. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchTermIds": {
"description": "List of term Ids for this query to match program offering that have a related term.",
"type": "array",
"items": {
"type": "object",
"properties": {
"ruleId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"termQueries": {
"description": "TermQueries to match the term. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchTitle": {
"description": "List of Title strings to match. Boolean OR performed among multiple titles.",
"type": "array",
"items": {
"type": "object",
"properties": {
"titles": {
"description": "titles to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyTitle": {
"description": "Match titles with any value. true to match ProgramOfferings with any title, false to match ProgramOfferings with no title",
"type": "boolean"
},
"matchNumber": {
"description": "List of Number strings to match. Boolean OR performed among multiple numbers.",
"type": "array",
"items": {
"type": "object",
"properties": {
"numbers": {
"description": "numbers to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyNumber": {
"description": "Match numbers with any value. true to match ProgramOfferings with any number, false to match ProgramOfferings with no number",
"type": "boolean"
},
"matchSponsorIds": {
"description": "List of Resource Ids for this query to match sponsors.",
"type": "array",
"items": {
"type": "object",
"properties": {
"sponsorId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"sponsorQueries": {
"description": "resource.ResourceQueries to match the Sponsors. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchAnySponsor": {
"description": "Match sponsors with any value. true to match ProgramOfferings with any sponsors, false to match ProgramOfferings with no sponsors",
"type": "boolean"
},
"matchCompletionRequirementsInfo": {
"description": "List of CompletionRequirementsInfo strings to match. Boolean OR performed among multiple completionRequirementsInfos.",
"type": "array",
"items": {
"type": "object",
"properties": {
"completionRequirementsInfos": {
"description": "completionRequirementsInfos to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyCompletionRequirementsInfo": {
"description": "Match completionRequirementsInfos with any value. true to match ProgramOfferings with any completion requirements info, false to match ProgramOfferings with no completion requirements info",
"type": "boolean"
},
"matchCompletionRequirementIds": {
"description": "List of Requisite Ids for this query to match completionRequirements.",
"type": "array",
"items": {
"type": "object",
"properties": {
"completionRequirementId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"completionRequirementQueries": {
"description": "requisite.RequisiteQueries to match the Completion Requirements. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchAnyCompletionRequirement": {
"description": "Match completion requirements with any value. true to match ProgramOfferings with any completion requirements, false to match ProgramOfferings with no completion requirements",
"type": "boolean"
},
"matchCredentialIds": {
"description": "List of Credential Ids for this query to match credentials.",
"type": "array",
"items": {
"type": "object",
"properties": {
"credentialId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"credentialQueries": {
"description": "program.CredentialQueries to match the Credentials. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchAnyCredential": {
"description": "Match credentials with any value. true to match ProgramOfferings with any credentials, false to match ProgramOfferings with no credentials",
"type": "boolean"
},
"matchRequiresRegistration": {
"description": "Match boolean value for requiresRegistration.",
"type": "object",
"properties": {
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
},
"matchMinimumSeats": {
"description": "Match ProgramOfferings with minimumSeats between the given integers inclusive.",
"type": "array",
"items": {
"type": "object",
"properties": {
"min": {
"description": "low number",
"type": "integer"
},
"max": {
"description": "high number",
"type": "integer"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyMinimumSeats": {
"description": "Match minimumSeats with any value. true to match ProgramOfferings with any minimum seats, false to match ProgramOfferings with no minimum seats",
"type": "boolean"
},
"matchMaximumSeats": {
"description": "Match ProgramOfferings with maximumSeats between the given integers inclusive.",
"type": "array",
"items": {
"type": "object",
"properties": {
"min": {
"description": "low number",
"type": "integer"
},
"max": {
"description": "high number",
"type": "integer"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyMaximumSeats": {
"description": "Match maximumSeats with any value. true to match ProgramOfferings with any maximum seats, false to match ProgramOfferings with no maximum seats",
"type": "boolean"
},
"matchURL": {
"description": "List of URL strings to match. Boolean OR performed among multiple urls.",
"type": "array",
"items": {
"type": "object",
"properties": {
"urls": {
"description": "urls to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyURL": {
"description": "Match urls with any value. true to match ProgramOfferings with any url, false to match ProgramOfferings with no url",
"type": "boolean"
},
"matchCourseCatalogIds": {
"description": "List of CourseCatalog Id's to match.",
"type": "array",
"items": {
"type": "object",
"properties": {
"courseCatalogId": {
"description": "Course Catalog id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"courseCatalogQueries": {
"description": "CourseCatalogQueries to match Course Catalog. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
}
}
}
Example:
{
"matchDisplayNames": [
{
"displayName": "string to exclude",
"match": false
}
]
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "program.ProgramOffering:4524@base.url",
"uri": "http://base.url/open/campusapi/program/programOffering/program.ProgramOffering%3A4524%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:4524@base.url",
"programId": "course.program.Program:9926@base.url",
"termId": "course.Term:7570@base.url",
"title": "This is the Title",
"number": "101",
"sponsorIds": [ "resource.Resource:6065@base.url", "..." ],
"completionRequirementsInfo": "This is the CompletionRequirementsInfo",
"completionRequirementIds": [ "course.requisite.Requisite:6692@base.url", "..." ],
"credentialIds": [ "course.program.Credential:6655@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" }
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 ProgramOffering
Get a particular ProgramOffering given its id.
Update a particular ProgramOffering given its id.
Delete a particular ProgramOffering given its id.
get /program-offerings/{programOfferingId}
Get a particular ProgramOffering given its id.
URI Parameters
- programOfferingId: required(string)
Query Parameters
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "endReason", "sponsors", "completionRequirements", "credentials", "program", "term", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"id": "program.ProgramOffering:4524@base.url",
"uri": "http://base.url/open/campusapi/program/programOffering/program.ProgramOffering%3A4524%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:4524@base.url",
"programId": "course.program.Program:9926@base.url",
"termId": "course.Term:7570@base.url",
"title": "This is the Title",
"number": "101",
"sponsorIds": [ "resource.Resource:6065@base.url", "..." ],
"completionRequirementsInfo": "This is the CompletionRequirementsInfo",
"completionRequirementIds": [ "course.requisite.Requisite:6692@base.url", "..." ],
"credentialIds": [ "course.program.Credential:6655@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": "ProgramOffering not found" }
put /program-offerings/{programOfferingId}
Update a particular ProgramOffering given its id.
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:1821@base.url",
"title": "This is the Title",
"number": "101",
"sponsorIds": [ "resource.Resource:9624@base.url", "..." ],
"completionRequirementsInfo": "This is the CompletionRequirementsInfo",
"completionRequirementIds": [ "course.requisite.Requisite:2287@base.url", "..." ],
"credentialIds": [ "course.program.Credential:8691@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 ProgramOffering 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": "ProgramOffering not found" }
delete /program-offerings/{programOfferingId}
Delete a particular ProgramOffering given its id.
URI Parameters
- programOfferingId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The ProgramOffering 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": "ProgramOffering 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
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
- genusTypeId: (string)
The id string to match a genusType
Example:
type.Type%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:3930@base.url",
"uri": "http://base.url/open/campusapi/program/credential/program.Credential%3A3930%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"
}
Query the collection of Credentials in a system, federation of systems, or in a default courseCatalog by posting a Query object.
Submit a query using a CredentialQuery object.
post /credentials/credential-query
Submit a query using a CredentialQuery object.
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "CredentialQuery",
"type": "object",
"properties": {
"matchIds": {
"description": "List of Ids to match. Boolean OR performed among multiple Ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchKeywords": {
"description": "List keywords to match. Multiple keywords can be added to perform a boolean OR among them. A keyword may be applied to any of the elements defined in this object such as the display name, description or any attribute defined in or implemented by this object.",
"type": "array",
"items": {
"type": "object",
"properties": {
"keyword": {
"description": "keyword to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchDisplayNames": {
"description": "List of displayName strings to match. Boolean OR performed among multiple displayNames.",
"type": "array",
"items": {
"type": "object",
"properties": {
"displayName": {
"description": "displayName to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchDescriptions": {
"description": "List of discription strings to match. Boolean OR performed among multiple descriptions.",
"type": "array",
"items": {
"type": "object",
"properties": {
"description": {
"description": "description to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchGenusTypeIds": {
"description": "List of genus type ids to match. Boolean OR performed among multiple ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"genusTypeid": {
"description": "genus type id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchRecordTypeIds": {
"description": "List of record type ids to match. Boolean OR performed among multiple ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"genusTypeid": {
"description": "record type id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchLifetime": {
"description": "Matches lifetimes in the given range inclusive.",
"type": "array",
"items": {
"type": "object",
"properties": {
"from": {
"description": "start range",
"type": "string",
"format": "duration"
},
"to": {
"description": "end range",
"type": "string",
"format": "duration"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyLifetime": {
"description": "Match lifetimes with any value. true to match Credentials with any lifetime, false to match ProgramOfferings with no lifetime",
"type": "boolean"
},
"matchCourseCatalogIds": {
"description": "List of CourseCatalog Id's to match.",
"type": "array",
"items": {
"type": "object",
"properties": {
"courseCatalogId": {
"description": "Course Catalog id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"courseCatalogQueries": {
"description": "CourseCatalogQueries to match Course Catalog. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
}
}
}
Example:
{
"matchDisplayNames": [
{
"displayName": "string to exclude",
"match": false
}
]
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "program.Credential:3930@base.url",
"uri": "http://base.url/open/campusapi/program/credential/program.Credential%3A3930%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" }
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 particular Credential given its id.
Update a particular Credential given its id.
Delete a particular Credential given its id.
get /credentials/{credentialId}
Get a particular Credential given its id.
URI Parameters
- credentialId: required(string)
Query Parameters
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"id": "program.Credential:3930@base.url",
"uri": "http://base.url/open/campusapi/program/credential/program.Credential%3A3930%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 particular Credential given its id.
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 particular Credential given its id.
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
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "endReason", "programOffering", "student", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
- genusTypeId: (string)
The id string to match a genusType
Example:
type.Type%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:2600@base.url",
"uri": "http://base.url/open/campusapi/program/enrollment/program.Enrollment%3A2600%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:2600@base.url",
"programOfferingId": "course.program.ProgramOffering:1908@base.url",
"studentId": "resource.Resource:665@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:4154@base.url"
}
Query the collection of Enrollments in a system, federation of systems, or in a default courseCatalog by posting a Query object.
Submit a query using a EnrollmentQuery object.
post /enrollments/enrollment-query
Submit a query using a EnrollmentQuery object.
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "endReason", "programOffering", "student", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "EnrollmentQuery",
"type": "object",
"properties": {
"matchIds": {
"description": "List of Ids to match. Boolean OR performed among multiple Ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchKeywords": {
"description": "List keywords to match. Multiple keywords can be added to perform a boolean OR among them. A keyword may be applied to any of the elements defined in this object such as the display name, description or any attribute defined in or implemented by this object.",
"type": "array",
"items": {
"type": "object",
"properties": {
"keyword": {
"description": "keyword to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchDisplayNames": {
"description": "List of displayName strings to match. Boolean OR performed among multiple displayNames.",
"type": "array",
"items": {
"type": "object",
"properties": {
"displayName": {
"description": "displayName to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchDescriptions": {
"description": "List of discription strings to match. Boolean OR performed among multiple descriptions.",
"type": "array",
"items": {
"type": "object",
"properties": {
"description": {
"description": "description to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchGenusTypeIds": {
"description": "List of genus type ids to match. Boolean OR performed among multiple ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"genusTypeid": {
"description": "genus type id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchRecordTypeIds": {
"description": "List of record type ids to match. Boolean OR performed among multiple ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"genusTypeid": {
"description": "record type id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchEffective": {
"description": "Match effective objects where the current date falls within the start and end dates inclusive. true to match any effective, false to match ineffective",
"type": "boolean"
},
"matchStartDate": {
"description": "Matches temporals whose start date falls in between the given dates inclusive.",
"type": "object",
"properties": {
"start": {
"description": "start of date range",
"type": "string",
"format": "date-time"
},
"end": {
"description": "end of date range",
"type": "string",
"format": "date-time"
},
"match": {
"description": "true if a positive match, false for negative match",
"type": "boolean"
}
}
},
"matchEndDate": {
"description": "Matches temporals whose end date falls in between the given dates inclusive.",
"type": "object",
"properties": {
"start": {
"description": "start of date range",
"type": "string",
"format": "date-time"
},
"end": {
"description": "end of date range",
"type": "string",
"format": "date-time"
},
"match": {
"description": "true if a positive match, false for negative match",
"type": "boolean"
}
}
},
"matchEndReasonIds": {
"description": "List of end reason Id's to match.",
"type": "array",
"items": {
"type": "object",
"properties": {
"stateId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"endReasonQueries": {
"description": "process.StateQueries to match end reason state. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchAnyEndReason": {
"description": "Match end reasons with any value. true to match Enrollments with any end reason, false to match Enrollments with no end reason",
"type": "boolean"
},
"matchProgramOfferingIds": {
"description": "List of programOffering Ids for this query to match enrollment that have a related programOffering.",
"type": "array",
"items": {
"type": "object",
"properties": {
"ruleId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"programOfferingQueries": {
"description": "ProgramOfferingQueries to match the programOffering. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchStudentIds": {
"description": "List of student Ids for this query to match enrollment that have a related student.",
"type": "array",
"items": {
"type": "object",
"properties": {
"ruleId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"studentQueries": {
"description": "StudentQueries to match the student. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchCourseCatalogIds": {
"description": "List of CourseCatalog Id's to match.",
"type": "array",
"items": {
"type": "object",
"properties": {
"courseCatalogId": {
"description": "Course Catalog id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"courseCatalogQueries": {
"description": "CourseCatalogQueries to match Course Catalog. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
}
}
}
Example:
{
"matchDisplayNames": [
{
"displayName": "string to exclude",
"match": false
}
]
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "program.Enrollment:2600@base.url",
"uri": "http://base.url/open/campusapi/program/enrollment/program.Enrollment%3A2600%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:2600@base.url",
"programOfferingId": "course.program.ProgramOffering:1908@base.url",
"studentId": "resource.Resource:665@base.url"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
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 particular Enrollment given its id.
Update a particular Enrollment given its id.
Delete a particular Enrollment given its id.
get /enrollments/{enrollmentId}
Get a particular Enrollment given its id.
URI Parameters
- enrollmentId: required(string)
Query Parameters
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "endReason", "programOffering", "student", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"id": "program.Enrollment:2600@base.url",
"uri": "http://base.url/open/campusapi/program/enrollment/program.Enrollment%3A2600%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:2600@base.url",
"programOfferingId": "course.program.ProgramOffering:1908@base.url",
"studentId": "resource.Resource:665@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 particular Enrollment given its id.
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:4154@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 particular Enrollment given its id.
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 CourseCatalogs in a system or federation of systems.
Get all CourseCatalogs.
Create a new CourseCatalog.
get /course-catalogs
Get all CourseCatalogs.
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "provider", "branding", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
- genusTypeId: (string)
The id string to match a genusType
Example:
type.Type%3AexampleCourseCatalogType%40dxtera.org
- parentGenusTypeId: (string)
The id string to match a parent genusType
Example:
type.Type%3AparentTypeExampleCourseCatalogType%40dxtera.org
- recordTypeId: (string)
The id string to match a recordType
Example:
type.Type%3AexampleCourseCatalogType%40campusapi.org
- providerId: (string)
Id string to match provider.
Example:
resource.Resource%3A3007%40demo.dxtera.org
- 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:8936@base.url",
"uri": "http://base.url/open/campusapi/course/courseCatalog/course.CourseCatalog%3A8936%40base.url",
"displayName": "Display Name of this CourseCatalog",
"description": "The description of this CourseCatalog",
"genusTypeId": "type.Type:defaultCourseCatalogType@base.url",
"recordTypeIds": [ "type.Type:exampleCourseCatalogRecordType@campusapi.org", "..."],
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:CourseCatalog@base.url",
"license": "The license that applies to this CourseCatalog"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
post /course-catalogs
Create a new CourseCatalog.
Query Parameters
- genusType: (string)
specify a particular courseCatalog type to create
Example:
type.Type%3AexampleCourseCatalogType%40dxtera.org
- recordType: (array of )
specify support for one or more courseCatalog record types
Example:
[ "type.Type%3AexampleCourseCatalogRecordType%40campusapi.org", "..." ]
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "CourseCatalog",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this course catalog, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this course catalog, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this course catalog for display.",
"type": "string"
},
"description": {
"description": "The description of this course catalog.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this course catalog. Default type set by system unless specified in query parameter.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this course catalog. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"providerId": {
"description": "The provider of this course catalog.",
"type": "string",
"format": "osid-id"
},
"brandingIds": {
"description": "The branding of this course catalog. A collection of Assets.",
"type": "array",
"items" : {
"type": "string",
"format": "osid-id"
}
},
"license": {
"description": "The licensing that applies to this course catalog.",
"type": "string"
}
}
}
Example:
{
"displayName": "Display Name of this CourseCatalog",
"description": "The description of this CourseCatalog",
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:CourseCatalog@base.url",
"license": "The license that applies to this CourseCatalog"
}
Query the collection of CourseCatalogs in a system, federation of systems, or in a default courseCatalog by posting a Query object.
Submit a query using a CourseCatalogQuery object.
post /course-catalogs/course-catalog-query
Submit a query using a CourseCatalogQuery object.
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- expand: (string)
Expand object or type for named attribute: , or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "CourseCatalogQuery",
"type": "object",
"properties": {
"matchIds": {
"description": "List of Ids to match. Boolean OR performed among multiple Ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchKeywords": {
"description": "List keywords to match. Multiple keywords can be added to perform a boolean OR among them. A keyword may be applied to any of the elements defined in this object such as the display name, description or any attribute defined in or implemented by this object.",
"type": "array",
"items": {
"type": "object",
"properties": {
"keyword": {
"description": "keyword to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchDisplayNames": {
"description": "List of displayName strings to match. Boolean OR performed among multiple displayNames.",
"type": "array",
"items": {
"type": "object",
"properties": {
"displayName": {
"description": "displayName to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchDescriptions": {
"description": "List of discription strings to match. Boolean OR performed among multiple descriptions.",
"type": "array",
"items": {
"type": "object",
"properties": {
"description": {
"description": "description to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchGenusTypeIds": {
"description": "List of genus type ids to match. Boolean OR performed among multiple ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"genusTypeid": {
"description": "genus type id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchRecordTypeIds": {
"description": "List of record type ids to match. Boolean OR performed among multiple ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"genusTypeid": {
"description": "record type id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchProviderIds": {
"description": "List of provider Ids to match.",
"type": "array",
"items": {
"type": "object",
"properties": {
"stateId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"providerQueries": {
"description": "resource.ResourceQuery for provider. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
},
"matchAnyProvider": {
"description": "Match providers with any value. true to match CourseCatalog with any provider, false to match CourseCatalog with no provider",
"type": "boolean"
}
},
"matchBrandingIds": {
"description": "List of branding asset Ids to match.",
"type": "array",
"items": {
"type": "object",
"properties": {
"stateId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"brandingQueries": {
"description": "repository.AssetQuery for branding. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchAnyBranding": {
"description": "Match brandingss with any value. true to match CourseCatalog with any branding, false to match CourseCatalog with no branding",
"type": "boolean"
},
"matchlicenses": {
"description": "List of license strings to match. Boolean OR performed among multiple descriptions.",
"type": "array",
"items": {
"type": "object",
"properties": {
"license": {
"description": "license to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchCourseCatalogIds": {
"description": "List of CourseCatalog Id's to match.",
"type": "array",
"items": {
"type": "object",
"properties": {
"courseCatalogId": {
"description": "Course Catalog id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"courseCatalogQueries": {
"description": "CourseCatalogQueries to match Course Catalog. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
}
}
}
Example:
{
"matchDisplayNames": [
{
"displayName": "string to exclude",
"match": false
}
]
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "course.CourseCatalog:8936@base.url",
"uri": "http://base.url/open/campusapi/course/courseCatalog/course.CourseCatalog%3A8936%40base.url",
"displayName": "Display Name of this CourseCatalog",
"description": "The description of this CourseCatalog",
"genusTypeId": "type.Type:defaultCourseCatalogType@base.url",
"recordTypeIds": [ "type.Type:exampleCourseCatalogRecordType@campusapi.org", "..."],
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:CourseCatalog@base.url",
"license": "The license that applies to this CourseCatalog"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Entity representing a CourseCatalog form metadata.
Get form metadata for creating a new CourseCatalog.
get /course-catalogs/metadata
Get form metadata for creating a new CourseCatalog.
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "CourseCatalog",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this course catalog, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this course catalog, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this course catalog for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "CourseCatalog.CourseCatalog:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this course catalog",
"linked": false
},
"description": {
"description": "The description of this course catalog.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "CourseCatalog.CourseCatalog:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this course catalog",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this course catalog. Default type set by system unless specified in query parameter on initial post.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this course catalog. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"providerId": {
"description": "The provider of this course catalog.",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "CourseCatalog.CourseCatalog:provider@base.url",
"existingValue": "",
"elementLabel": "Provider",
"instructions": "Enter the provider of this course catalog",
"linked": false
},
"brandingIds": {
"description": "The branding of this course catalog. A list of Assets.",
"type": "array",
"items" : {
"type": "string",
"format": "osid-id",
"pattern": "",
"enum": []
},
"read-only": false,
"default": [],
"elementId": "CourseCatalog.CourseCatalog:branding@base.url",
"existingValue": "",
"elementLabel": "Branding",
"instructions": "Enter the branding images for this course catalog",
"linked": false
},
"license": {
"description": "The licensing that applies to this course catalog.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "CourseCatalog.CourseCatalog:license@base.url",
"existingValue": "The Existing License",
"elementLabel": "License",
"instructions": "Include a license for this course catalog",
"linked": false
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
The root CourseCatalogs in the CourseCatalog hierarchy. A node with no parents is an orphan. While all CourseCatalog Ids are known to the hierarchy, an orphan does not appear in the hierarchy unless explicitly added as a root node or child of another node.
Get all root root-course-catalog
get /course-catalogs/root-course-catalog
Get all root root-course-catalog
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "course.CourseCatalog:8936@base.url",
"uri": "http://base.url/open/campusapi/course/courseCatalog/course.CourseCatalog%3A8936%40base.url",
"displayName": "Display Name of this CourseCatalog",
"description": "The description of this CourseCatalog",
"genusTypeId": "type.Type:defaultCourseCatalogType@base.url",
"recordTypeIds": [ "type.Type:exampleCourseCatalogRecordType@campusapi.org", "..."],
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:CourseCatalog@base.url",
"license": "The license that applies to this CourseCatalog"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Entity representing a CourseCatalog
Get a particular CourseCatalog given its id.
Update a particular CourseCatalog given its id.
Delete a particular CourseCatalog given its id.
get /course-catalogs/{courseCatalogId}
Get a particular CourseCatalog given its id.
URI Parameters
- courseCatalogId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"id": "course.CourseCatalog:8936@base.url",
"uri": "http://base.url/open/campusapi/course/courseCatalog/course.CourseCatalog%3A8936%40base.url",
"displayName": "Display Name of this CourseCatalog",
"description": "The description of this CourseCatalog",
"genusTypeId": "type.Type:defaultCourseCatalogType@base.url",
"recordTypeIds": [ "type.Type:exampleCourseCatalogRecordType@campusapi.org", "..."],
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:CourseCatalog@base.url",
"license": "The license that applies to this CourseCatalog"
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "CourseCatalog not found" }
put /course-catalogs/{courseCatalogId}
Update a particular CourseCatalog given its id.
URI Parameters
- courseCatalogId: required(string)
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "CourseCatalog",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this course catalog, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this course catalog, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this course catalog for display.",
"type": "string"
},
"description": {
"description": "The description of this course catalog.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this course catalog. Default type set by system unless specified in query parameter.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this course catalog. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"providerId": {
"description": "The provider of this course catalog.",
"type": "string",
"format": "osid-id"
},
"brandingIds": {
"description": "The branding of this course catalog. A collection of Assets.",
"type": "array",
"items" : {
"type": "string",
"format": "osid-id"
}
},
"license": {
"description": "The licensing that applies to this course catalog.",
"type": "string"
}
}
}
Example:
{
"displayName": "Display Name of this CourseCatalog",
"description": "The description of this CourseCatalog",
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:CourseCatalog@base.url",
"license": "The license that applies to this CourseCatalog"
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The CourseCatalog has been updated" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "CourseCatalog not found" }
delete /course-catalogs/{courseCatalogId}
Delete a particular CourseCatalog given its id.
URI Parameters
- courseCatalogId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The CourseCatalog has been deleted" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "CourseCatalog not found" }
Entity representing a CourseCatalog form metadata for update
Get form metadata for updating an existing CourseCatalog.
get /course-catalogs/{courseCatalogId}/metadata
Get form metadata for updating an existing CourseCatalog.
URI Parameters
- courseCatalogId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "CourseCatalog",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this course catalog, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this course catalog, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this course catalog for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "CourseCatalog.CourseCatalog:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this course catalog",
"linked": false
},
"description": {
"description": "The description of this course catalog.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "CourseCatalog.CourseCatalog:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this course catalog",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this course catalog. Default type set by system unless specified in query parameter on initial post.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this course catalog. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"providerId": {
"description": "The provider of this course catalog.",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "CourseCatalog.CourseCatalog:provider@base.url",
"existingValue": "",
"elementLabel": "Provider",
"instructions": "Enter the provider of this course catalog",
"linked": false
},
"brandingIds": {
"description": "The branding of this course catalog. A list of Assets.",
"type": "array",
"items" : {
"type": "string",
"format": "osid-id",
"pattern": "",
"enum": []
},
"read-only": false,
"default": [],
"elementId": "CourseCatalog.CourseCatalog:branding@base.url",
"existingValue": "",
"elementLabel": "Branding",
"instructions": "Enter the branding images for this course catalog",
"linked": false
},
"license": {
"description": "The licensing that applies to this course catalog.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "CourseCatalog.CourseCatalog:license@base.url",
"existingValue": "The Existing License",
"elementLabel": "License",
"instructions": "Include a license for this course catalog",
"linked": false
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "courseCatalog not found" }
Get child CourseCatalogs for the given CourseCatalog in the hierarchy.
get /course-catalogs/{courseCatalogId}/children
Get child CourseCatalogs for the given CourseCatalog in the hierarchy.
URI Parameters
- courseCatalogId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "course.CourseCatalog:8936@base.url",
"uri": "http://base.url/open/campusapi/course/courseCatalog/course.CourseCatalog%3A8936%40base.url",
"displayName": "Display Name of this CourseCatalog",
"description": "The description of this CourseCatalog",
"genusTypeId": "type.Type:defaultCourseCatalogType@base.url",
"recordTypeIds": [ "type.Type:exampleCourseCatalogRecordType@campusapi.org", "..."],
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:CourseCatalog@base.url",
"license": "The license that applies to this CourseCatalog"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Add CourseCatalog as child of the given CourseCatalog in the hierarchy.
Remove the given CourseCatalog as a child of the given CourseCatalog in the hierarchy.
put /course-catalogs/{courseCatalogId}/children/{childId}
Add CourseCatalog as child of the given CourseCatalog in the hierarchy.
URI Parameters
- courseCatalogId: required(string)
- childId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The child CourseCatalog has been added to the hierarchy" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{ "message": "courseCatalog not found" }
delete /course-catalogs/{courseCatalogId}/children/{childId}
Remove the given CourseCatalog as a child of the given CourseCatalog in the hierarchy.
URI Parameters
- courseCatalogId: required(string)
- childId: required(string)
Get parent CourseCatalogs for the given CourseCatalog in the hierarchy.
get /course-catalogs/{courseCatalogId}/parents
Get parent CourseCatalogs for the given CourseCatalog in the hierarchy.
URI Parameters
- courseCatalogId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "course.CourseCatalog:8936@base.url",
"uri": "http://base.url/open/campusapi/course/courseCatalog/course.CourseCatalog%3A8936%40base.url",
"displayName": "Display Name of this CourseCatalog",
"description": "The description of this CourseCatalog",
"genusTypeId": "type.Type:defaultCourseCatalogType@base.url",
"recordTypeIds": [ "type.Type:exampleCourseCatalogRecordType@campusapi.org", "..."],
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:CourseCatalog@base.url",
"license": "The license that applies to this CourseCatalog"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Get all Programs in this CourseCatalog
get /course-catalogs/{courseCatalogId}/programs
Get all Programs in this CourseCatalog
URI Parameters
- courseCatalogId: required(string)
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "sponsors", "completionRequirements", "credentials", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
- genusTypeId: (string)
The id string to match a genusType
Example:
type.Type%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
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "program.Program:2379@base.url",
"uri": "http://base.url/open/campusapi/program/program/program.Program%3A2379%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:4420@base.url", "..." ],
"completionRequirementsInfo": "This is the CompletionRequirementsInfo",
"completionRequirementIds": [ "course.requisite.Requisite:4839@base.url", "..." ],
"credentialIds": [ "course.program.Credential:9891@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 ProgramOfferings in this CourseCatalog
get /course-catalogs/{courseCatalogId}/program-offerings
Get all ProgramOfferings in this CourseCatalog
URI Parameters
- courseCatalogId: required(string)
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "endReason", "sponsors", "completionRequirements", "credentials", "program", "term", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
- genusTypeId: (string)
The id string to match a genusType
Example:
type.Type%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
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "program.ProgramOffering:4524@base.url",
"uri": "http://base.url/open/campusapi/program/programOffering/program.ProgramOffering%3A4524%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:4524@base.url",
"programId": "course.program.Program:9926@base.url",
"termId": "course.Term:7570@base.url",
"title": "This is the Title",
"number": "101",
"sponsorIds": [ "resource.Resource:6065@base.url", "..." ],
"completionRequirementsInfo": "This is the CompletionRequirementsInfo",
"completionRequirementIds": [ "course.requisite.Requisite:6692@base.url", "..." ],
"credentialIds": [ "course.program.Credential:6655@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 ProgramOffering to this CourseCatalog
Remove the given ProgramOffering from the CourseCatalog.
put /course-catalogs/{courseCatalogId}/program-offerings/{programOfferingId}
Add the given ProgramOffering to this CourseCatalog
URI Parameters
- courseCatalogId: required(string)
- programOfferingId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "ProgramOffering 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": "ProgramOffering not found" }
delete /course-catalogs/{courseCatalogId}/program-offerings/{programOfferingId}
Remove the given ProgramOffering from the CourseCatalog.
URI Parameters
- courseCatalogId: required(string)
- programOfferingId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "ProgramOffering 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": "ProgramOffering not found" }
Get all Credentials in this CourseCatalog
get /course-catalogs/{courseCatalogId}/credentials
Get all Credentials in this CourseCatalog
URI Parameters
- courseCatalogId: required(string)
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
- genusTypeId: (string)
The id string to match a genusType
Example:
type.Type%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
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "program.Credential:3930@base.url",
"uri": "http://base.url/open/campusapi/program/credential/program.Credential%3A3930%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)
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "endReason", "programOffering", "student", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
- genusTypeId: (string)
The id string to match a genusType
Example:
type.Type%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
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "program.Enrollment:2600@base.url",
"uri": "http://base.url/open/campusapi/program/enrollment/program.Enrollment%3A2600%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:2600@base.url",
"programOfferingId": "course.program.ProgramOffering:1908@base.url",
"studentId": "resource.Resource:665@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" }