CampusAPI Learning Services API documentation version 1.0.5
Based on OSID version 3.0.0
https://base.url/learning
Overview
The Learning services manage learning objectives. A learning Objective describes measurable learning goals While traditional educational institutions organize learning activities into programs and courses, learning may be more accurately defined by learning Objectives and similar entities. A learning Objective describes measurable learning goals at varying levels of detail. Objectives may also be known as “competencies”, “learning outcomes”, “skills”, etc.
This package includes the following entities:
Objectives
A statable learning objective or goal. Objectives describe measurable learning goals. A learning objective may be measured by a related Assessment. Objectives may be mapped to levels, A level is represented by a Grade which is used to indicate an educational grade level or level of difficulty.
Objectives are hierarchical. An Objective with children represents an objective that is inclusive of all its children. For example, an Objective that represents learning in arithmetic may be composed of objectives that represent learning in both addition and subtraction. Objectives may also have requisites. A requisite Objective is one that should be achieved before another Objective is attempted, which can then define learning "pathways".
Field | Description | Type |
---|---|---|
id(read‑only) | The unique id of this objective, provided by system. | string(osid‑id) |
uri(read‑only) | The uri of this objective, provided by system. | string(uri) |
displayName | The name of this objective for display. | string |
description | The description of this objective. | string |
genusTypeId (read‑only) | Id of the immutable type of this objective. Default type set by system unless specified in query parameter. | string(osid‑id) |
recordTypeIds (read‑only) | Type Ids of record types available on this objective. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere. | string(osid‑id)[] |
assessmentId | The assessment associated with this learning objective. References an assessment.Assessment object | string(osid‑id) |
knowledgeCategoryId | The grade associated with the knowledge dimension. References a grading.Grade object | string(osid‑id) |
cognitiveProcessId | The grade associated with the cognitive process. References a grading.Grade object | string(osid‑id) |
Activities
Activities represent learning material or other learning activities to meet an Objective. An Activity may relate to a set of Assets for self learning, recommended Courses to take, or a learning Assessment. These Activity Assessments differs from the Objective Assessment in that these are used for aiding in learning while the Objective Assessment is used to test for proficiency in the Objective.
Field | Description | Type |
---|---|---|
id(read‑only) | The unique id of this activity, provided by system. | string(osid‑id) |
uri(read‑only) | The uri of this activity, provided by system. | string(uri) |
displayName | The name of this activity for display. | string |
description | The description of this activity. | string |
genusTypeId (read‑only) | Id of the immutable type of this activity. Default type set by system unless specified in query parameter. | string(osid‑id) |
recordTypeIds (read‑only) | Type Ids of record types available on this activity. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere. | string(osid‑id)[] |
objectiveId (read‑only) | The objective associated with this activity. References a learning.Objective object. | string(osid‑id) |
assetIds | Any assets associated with this activity. References an array of repository.Asset objects. | string(osid‑id)[] |
courseIds | Any courses associated with this activity. References an array of course.Course objects. | string(osid‑id)[] |
assessmentIds | Any assessments associated with this activity. References an array of assessment.Assessment objects. | string(osid‑id)[] |
Proficiencies
Represents an individual's competency with a learning Objective. Proficiencies typically relate a person to an Objective. But any other kind of resource can be related to Objectives through Proficiencies. For instance, the extent to which a Course is able to teach an Objective could also be measured through Proficiency and measured through accreditation or student course evaluations.
Field | Description | Type |
---|---|---|
id(read‑only) | The unique id of this proficiency, provided by system. | string(osid‑id) |
uri(read‑only) | The uri of this proficiency, provided by system. | string(uri) |
displayName | The name of this proficiency for display. | string |
description | The description of this proficiency. | string |
genusTypeId (read‑only) | Id of the immutable type of this proficiency. Default type set by system unless specified in query parameter. | string(osid‑id) |
recordTypeIds (read‑only) | Type Ids of record types available on this proficiency. 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 proficiency. | string(date‑time) |
endDate | The ending date of this proficiency. | string(date‑time) |
endReasonId | The reason this proficiency ended. References a process.State object. | string(osid‑id) |
resourceId (read‑only) | The resource associated with this proficiency. References a resource.Resource object. | string(osid‑id) |
objectiveId (read‑only) | The objective associated with this proficiency. References a learning.Objective object. | string(osid‑id) |
completion | The completion of this objective as a percentage 0-100. | number |
levelId | The proficiency level expressed as a grade. References a grading.Grade object | string(osid‑id) |
ObjectiveBanks
A ObjectiveBank is a catalog for all "learning" related entities. The term "Framework" is often used as an alternate name to describe this kind of organization when applied to competencies
Field | Description | Type |
---|---|---|
id(read‑only) | The unique id of this objective bank, provided by system. | string(osid‑id) |
uri(read‑only) | The uri of this objective bank, provided by system. | string(uri) |
displayName | The name of this objective bank for display. | string |
description | The description of this objective bank. | string |
genusTypeId (read‑only) | Id of the immutable type of this objective bank. Default type set by system unless specified in query parameter. | string(osid‑id) |
recordTypeIds (read‑only) | Type Ids of record types available on this objective bank. 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 objective bank. References a resource.Resource object. | string(osid‑id) |
brandingIds | The branding of this objective bank. References repository.Asset objects. | string(osid‑id)[] |
license | The licensing that applies to this objective bank. | string |
License
CampusAPI REST Documentation Copyright 2023 DXtera Institute. Based on the Open Service Interface Definitions: http://osid.org
/objectives
Collection of Objectives in a system, federation of systems, or in a default ObjectiveBank.
Get all Objectives in the system or default ObjectiveBank.
Create a new Objective in the default ObjectiveBank.
get /objectives
Get all Objectives in the system or default ObjectiveBank.
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", "assessment", "knowledgeCategory", "cognitiveProcess", 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%3AexampleObjectiveType%40dxtera.org
- parentGenusTypeId: (string)
The id string to match a parent genusType
Example:
type.Type%3AparentTypeExampleObjectiveType%40dxtera.org
- recordTypeId: (string)
The id string to match a recordType
Example:
type.Type%3AexampleObjectiveType%40campusapi.org
- objectiveBankId: (string)
The id string to match a objectiveBank
Example:
learning.ObjectiveBank%3A8374%40base.url
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "learning.Objective:6036@base.url",
"uri": "http://base.url/open/campusapi/learning/objective/learning.Objective%3A6036%40base.url",
"displayName": "Display Name of this Objective",
"description": "The description of this Objective",
"genusTypeId": "type.Type:defaultObjectiveType@base.url",
"recordTypeIds": [ "type.Type:exampleObjectiveRecordType@campusapi.org", "..."],
"assessmentId": "assessment.Assessment:6896@base.url",
"knowledgeCategoryId": "grading.Grade:6589@base.url",
"cognitiveProcessId": "grading.Grade:4613@base.url"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
post /objectives
Create a new Objective in the default ObjectiveBank.
Query Parameters
- genusType: (string)
specify a particular objective type to create
Example:
type.Type%3AexampleObjectiveType%40dxtera.org
- recordType: (array of )
specify support for one or more objective record types
Example:
[ "type.Type%3AexampleObjectiveRecordType%40campusapi.org", "..." ]
- objectiveBankId: (string)
specify in which objective-bank to create this objective
Example:
learning.ObjectiveBank%3A8374%40base.url
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Objective",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this objective, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this objective, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this objective for display.",
"type": "string"
},
"description": {
"description": "The description of this objective.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this objective. 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 objective. 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
},
"assessmentId": {
"description": "The assessment associated with this learning objective.",
"type": "string",
"format": "osid-id"
},
"knowledgeCategoryId": {
"description": "The grade associated with the knowledge dimension.",
"type": "string",
"format": "osid-id"
},
"cognitiveProcessId": {
"description": "The grade associated with the cognitive process.",
"type": "string",
"format": "osid-id"
}
}
}
Example:
{
"displayName": "Display Name of this Objective",
"description": "The description of this Objective",
"assessmentId": "assessment.Assessment:4406@base.url",
"knowledgeCategoryId": "grading.Grade:7609@base.url",
"cognitiveProcessId": "grading.Grade:4456@base.url"
}
Query the collection of Objectives in a system, federation of systems, or in a default objectiveBank by posting a Query object.
Submit a query using a ObjectiveQuery object.
post /objectives/objective-query
Submit a query using a ObjectiveQuery 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", "assessment", "knowledgeCategory", "cognitiveProcess", 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": "ObjectiveQuery",
"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"
}
}
}
},
"matchAssessmentIds": {
"description": "List of Assessment Ids for this query to match assessment.",
"type": "array",
"items": {
"type": "object",
"properties": {
"assessmentId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"assessmentQueries": {
"description": "assessment.AssessmentQueries to match the Assessment. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchAnyAssessment": {
"description": "Match assessment with any value. true to match Objectives with any assessment, false to match Objectives with no assessment",
"type": "boolean"
},
"matchKnowledgeCategoryIds": {
"description": "List of Grade Ids for this query to match knowledgeCategory.",
"type": "array",
"items": {
"type": "object",
"properties": {
"knowledgeCategoryId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"knowledgeCategoryQueries": {
"description": "grading.GradeQueries to match the Knowledge Category. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchAnyKnowledgeCategory": {
"description": "Match knowledge category with any value. true to match Objectives with any knowledge category, false to match Objectives with no knowledge category",
"type": "boolean"
},
"matchCognitiveProcesIds": {
"description": "List of Grade Ids for this query to match cognitiveProcess.",
"type": "array",
"items": {
"type": "object",
"properties": {
"cognitiveProcesId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"cognitiveProcesQueries": {
"description": "grading.GradeQueries to match the Cognitive Process. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchAnyCognitiveProces": {
"description": "Match cognitive process with any value. true to match Objectives with any cognitive process, false to match Objectives with no cognitive process",
"type": "boolean"
},
"matchObjectiveBankIds": {
"description": "List of ObjectiveBank Id's to match.",
"type": "array",
"items": {
"type": "object",
"properties": {
"objectiveBankId": {
"description": "Objective Bank id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"objectiveBankQueries": {
"description": "ObjectiveBankQueries to match Objective Bank. 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": "learning.Objective:6036@base.url",
"uri": "http://base.url/open/campusapi/learning/objective/learning.Objective%3A6036%40base.url",
"displayName": "Display Name of this Objective",
"description": "The description of this Objective",
"genusTypeId": "type.Type:defaultObjectiveType@base.url",
"recordTypeIds": [ "type.Type:exampleObjectiveRecordType@campusapi.org", "..."],
"assessmentId": "assessment.Assessment:6896@base.url",
"knowledgeCategoryId": "grading.Grade:6589@base.url",
"cognitiveProcessId": "grading.Grade:4613@base.url"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Entity representing a Objective form metadata.
Get form metadata for creating a new Objective.
get /objectives/metadata
Get form metadata for creating a new Objective.
Query Parameters
- genusType: (string)
specify a particular objective type to create
Example:
type.Type%3AexampleObjectiveType%40dxtera.org
- recordType: (array of )
specify support for one or more objective record types
Example:
[ "type.Type%3AexampleObjectiveRecordType%40campusapi.org", "..." ]
- objectiveBankId: (string)
specify in which objective-bank to create this objective
Example:
learning.ObjectiveBank%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": "Objective",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this objective, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this objective, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this objective for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Objective.Objective:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this objective",
"linked": false
},
"description": {
"description": "The description of this objective.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Objective.Objective:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this objective",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this objective. 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 objective. 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
},
"assessmentId": {
"description": "The assessment associated with this learning objective.",
"type": "string",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "learning.Objective:assessment@dxtera.org",
"existingValue": null,
"elementLabel": "Assessment",
"instructions": "Enter the Id of the assessment for this objective.",
"linked": false
},
"knowledgeCategoryId": {
"description": "The grade associated with the knowledge dimension.",
"type": "string",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "learning.Objective:knowledgeCategory@dxtera.org",
"existingValue": null,
"elementLabel": "Knowledge Category",
"instructions": "Enter the Id of the knowledge category for this objective.",
"linked": false
},
"cognitiveProcessId": {
"description": "The grade associated with the cognitive process.",
"type": "string",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "learning.Objective:cognitiveProcess@dxtera.org",
"existingValue": null,
"elementLabel": "Cognitive Process",
"instructions": "Enter the Id of the cognitive process for this objective.",
"linked": false
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
The root Objectives in the Objective hierarchy. A node with no parents is an orphan. While all Objective 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-objectives
get /objectives/root-objectives
Get all root root-objectives
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "learning.Objective:6036@base.url",
"uri": "http://base.url/open/campusapi/learning/objective/learning.Objective%3A6036%40base.url",
"displayName": "Display Name of this Objective",
"description": "The description of this Objective",
"genusTypeId": "type.Type:defaultObjectiveType@base.url",
"recordTypeIds": [ "type.Type:exampleObjectiveRecordType@campusapi.org", "..."],
"assessmentId": "assessment.Assessment:6896@base.url",
"knowledgeCategoryId": "grading.Grade:6589@base.url",
"cognitiveProcessId": "grading.Grade:4613@base.url"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Add the given Objective as a root in the Objective hierarchy
Remove the given Objective as a root in the Objective hierarchy.
put /objectives/root-objectives/{objectiveId}
Add the given Objective as a root in the Objective hierarchy
URI Parameters
- objectiveId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The Objective has been added as a root" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{ "message": "Objective not found" }
delete /objectives/root-objectives/{objectiveId}
Remove the given Objective as a root in the Objective hierarchy.
URI Parameters
- objectiveId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The Objective has been removed as a root from the hierarchy" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{ "message": "Objective not found" }
Entity representing a Objective
Get a particular Objective given its id.
Update a particular Objective given its id.
Delete a particular Objective given its id.
get /objectives/{objectiveId}
Get a particular Objective given its id.
URI Parameters
- objectiveId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"id": "learning.Objective:6036@base.url",
"uri": "http://base.url/open/campusapi/learning/objective/learning.Objective%3A6036%40base.url",
"displayName": "Display Name of this Objective",
"description": "The description of this Objective",
"genusTypeId": "type.Type:defaultObjectiveType@base.url",
"recordTypeIds": [ "type.Type:exampleObjectiveRecordType@campusapi.org", "..."],
"assessmentId": "assessment.Assessment:6896@base.url",
"knowledgeCategoryId": "grading.Grade:6589@base.url",
"cognitiveProcessId": "grading.Grade:4613@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": "Objective not found" }
put /objectives/{objectiveId}
Update a particular Objective given its id.
URI Parameters
- objectiveId: required(string)
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Objective",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this objective, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this objective, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this objective for display.",
"type": "string"
},
"description": {
"description": "The description of this objective.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this objective. 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 objective. 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
},
"assessmentId": {
"description": "The assessment associated with this learning objective.",
"type": "string",
"format": "osid-id"
},
"knowledgeCategoryId": {
"description": "The grade associated with the knowledge dimension.",
"type": "string",
"format": "osid-id"
},
"cognitiveProcessId": {
"description": "The grade associated with the cognitive process.",
"type": "string",
"format": "osid-id"
}
}
}
Example:
{
"displayName": "Display Name of this Objective",
"description": "The description of this Objective",
"assessmentId": "assessment.Assessment:4406@base.url",
"knowledgeCategoryId": "grading.Grade:7609@base.url",
"cognitiveProcessId": "grading.Grade:4456@base.url"
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The Objective 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": "Objective not found" }
delete /objectives/{objectiveId}
Delete a particular Objective given its id.
URI Parameters
- objectiveId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The Objective 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": "Objective not found" }
Entity representing a Objective form metadata for update
Get form metadata for updating an existing Objective.
get /objectives/{objectiveId}/metadata
Get form metadata for updating an existing Objective.
URI Parameters
- objectiveId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "Objective",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this objective, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this objective, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this objective for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Objective.Objective:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this objective",
"linked": false
},
"description": {
"description": "The description of this objective.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Objective.Objective:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this objective",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this objective. 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 objective. 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
},
"assessmentId": {
"description": "The assessment associated with this learning objective.",
"type": "string",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "learning.Objective:assessment@dxtera.org",
"existingValue": null,
"elementLabel": "Assessment",
"instructions": "Enter the Id of the assessment for this objective.",
"linked": false
},
"knowledgeCategoryId": {
"description": "The grade associated with the knowledge dimension.",
"type": "string",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "learning.Objective:knowledgeCategory@dxtera.org",
"existingValue": null,
"elementLabel": "Knowledge Category",
"instructions": "Enter the Id of the knowledge category for this objective.",
"linked": false
},
"cognitiveProcessId": {
"description": "The grade associated with the cognitive process.",
"type": "string",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "learning.Objective:cognitiveProcess@dxtera.org",
"existingValue": null,
"elementLabel": "Cognitive Process",
"instructions": "Enter the Id of the cognitive process for this objective.",
"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": "objective not found" }
Get child Objectives for the given Objective in the hierarchy.
get /objectives/{objectiveId}/children
Get child Objectives for the given Objective in the hierarchy.
URI Parameters
- objectiveId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "learning.Objective:6036@base.url",
"uri": "http://base.url/open/campusapi/learning/objective/learning.Objective%3A6036%40base.url",
"displayName": "Display Name of this Objective",
"description": "The description of this Objective",
"genusTypeId": "type.Type:defaultObjectiveType@base.url",
"recordTypeIds": [ "type.Type:exampleObjectiveRecordType@campusapi.org", "..."],
"assessmentId": "assessment.Assessment:6896@base.url",
"knowledgeCategoryId": "grading.Grade:6589@base.url",
"cognitiveProcessId": "grading.Grade:4613@base.url"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Add Objective as child of the given Objective in the hierarchy.
Remove the given Objective as a child of the given Objective in the hierarchy.
put /objectives/{objectiveId}/children/{childId}
Add Objective as child of the given Objective in the hierarchy.
URI Parameters
- objectiveId: required(string)
- childId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The child Objective 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": "objective not found" }
delete /objectives/{objectiveId}/children/{childId}
Remove the given Objective as a child of the given Objective in the hierarchy.
URI Parameters
- objectiveId: required(string)
- childId: required(string)
Get parent Objectives for the given Objective in the hierarchy.
get /objectives/{objectiveId}/parents
Get parent Objectives for the given Objective in the hierarchy.
URI Parameters
- objectiveId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "learning.Objective:6036@base.url",
"uri": "http://base.url/open/campusapi/learning/objective/learning.Objective%3A6036%40base.url",
"displayName": "Display Name of this Objective",
"description": "The description of this Objective",
"genusTypeId": "type.Type:defaultObjectiveType@base.url",
"recordTypeIds": [ "type.Type:exampleObjectiveRecordType@campusapi.org", "..."],
"assessmentId": "assessment.Assessment:6896@base.url",
"knowledgeCategoryId": "grading.Grade:6589@base.url",
"cognitiveProcessId": "grading.Grade:4613@base.url"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Get requisite Objectives for the given Objective in the pathway.
get /objectives/{objectiveId}/requisites
Get requisite Objectives for the given Objective in the pathway.
URI Parameters
- objectiveId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "learning.Objective:6036@base.url",
"uri": "http://base.url/open/campusapi/learning/objective/learning.Objective%3A6036%40base.url",
"displayName": "Display Name of this Objective",
"description": "The description of this Objective",
"genusTypeId": "type.Type:defaultObjectiveType@base.url",
"recordTypeIds": [ "type.Type:exampleObjectiveRecordType@campusapi.org", "..."],
"assessmentId": "assessment.Assessment:6896@base.url",
"knowledgeCategoryId": "grading.Grade:6589@base.url",
"cognitiveProcessId": "grading.Grade:4613@base.url"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Add Objective as requisite of the given Objective in the pathway.
Remove the given Objective as a requisite of the given Objective in the pathway.
put /objectives/{objectiveId}/requisites/{requisiteObjectiveId}
Add Objective as requisite of the given Objective in the pathway.
URI Parameters
- objectiveId: required(string)
- requisiteObjectiveId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The requisite Objective has been added to the pathway" }
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": "objective not found" }
delete /objectives/{objectiveId}/requisites/{requisiteObjectiveId}
Remove the given Objective as a requisite of the given Objective in the pathway.
URI Parameters
- objectiveId: required(string)
- requisiteObjectiveId: required(string)
Get dependent Objectives for the given Objective in the pathway.
get /objectives/{objectiveId}/dependents
Get dependent Objectives for the given Objective in the pathway.
URI Parameters
- objectiveId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "learning.Objective:6036@base.url",
"uri": "http://base.url/open/campusapi/learning/objective/learning.Objective%3A6036%40base.url",
"displayName": "Display Name of this Objective",
"description": "The description of this Objective",
"genusTypeId": "type.Type:defaultObjectiveType@base.url",
"recordTypeIds": [ "type.Type:exampleObjectiveRecordType@campusapi.org", "..."],
"assessmentId": "assessment.Assessment:6896@base.url",
"knowledgeCategoryId": "grading.Grade:6589@base.url",
"cognitiveProcessId": "grading.Grade:4613@base.url"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Get equivelant Objectives for the given Objective in the pathway.
get /objectives/{objectiveId}/equivelants
Get equivelant Objectives for the given Objective in the pathway.
URI Parameters
- objectiveId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "learning.Objective:6036@base.url",
"uri": "http://base.url/open/campusapi/learning/objective/learning.Objective%3A6036%40base.url",
"displayName": "Display Name of this Objective",
"description": "The description of this Objective",
"genusTypeId": "type.Type:defaultObjectiveType@base.url",
"recordTypeIds": [ "type.Type:exampleObjectiveRecordType@campusapi.org", "..."],
"assessmentId": "assessment.Assessment:6896@base.url",
"knowledgeCategoryId": "grading.Grade:6589@base.url",
"cognitiveProcessId": "grading.Grade:4613@base.url"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Add Objective as equivalent of the given Objective in the pathway.
Remove the given Objective as a equivalent of the given Objective in the pathway.
put /objectives/{objectiveId}/equivelants/{equivalentObjectiveId}
Add Objective as equivalent of the given Objective in the pathway.
URI Parameters
- objectiveId: required(string)
- equivalentObjectiveId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The equivalent Objective has been added to the pathway" }
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": "objective not found" }
delete /objectives/{objectiveId}/equivelants/{equivalentObjectiveId}
Remove the given Objective as a equivalent of the given Objective in the pathway.
URI Parameters
- objectiveId: required(string)
- equivalentObjectiveId: required(string)
/activities
Collection of Activities in a system, federation of systems, or in a default ObjectiveBank.
Get all Activities in the system or default ObjectiveBank.
Create a new Activity in the default ObjectiveBank.
get /activities
Get all Activities in the system or default ObjectiveBank.
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", "assets", "courses", "assessments", "objective", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
- genusTypeId: (string)
The id string to match a genusType
Example:
type.Type%3AexampleActivityType%40dxtera.org
- parentGenusTypeId: (string)
The id string to match a parent genusType
Example:
type.Type%3AparentTypeExampleActivityType%40dxtera.org
- recordTypeId: (string)
The id string to match a recordType
Example:
type.Type%3AexampleActivityType%40campusapi.org
- objectiveId: (string)
the id string to match a objective.
Example:
learning.Objective%3A576%40base.url
- assetId: (string)
Id string to match asset.
Example:
repository.Asset%3A2790%40base.url
- objectiveBankId: (string)
The id string to match a objectiveBank
Example:
learning.ObjectiveBank%3A8374%40base.url
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "learning.Activity:7474@base.url",
"uri": "http://base.url/open/campusapi/learning/activity/learning.Activity%3A7474%40base.url",
"displayName": "Display Name of this Activity",
"description": "The description of this Activity",
"genusTypeId": "type.Type:defaultActivityType@base.url",
"recordTypeIds": [ "type.Type:exampleActivityRecordType@campusapi.org", "..."],
"objectiveId": "learning.Objective:2371@base.url",
"assetIds": [ "repository.Asset:1909@base.url", "..." ],
"courseIds": [ "course.Course:7926@base.url", "..." ],
"assessmentIds": [ "assessment.Assessment:5809@base.url", "..." ]
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
post /activities
Create a new Activity in the default ObjectiveBank.
Query Parameters
- objectiveId: required(string)
the objective of this activity.
Example:
learning.Objective%3A576%40base.url
- genusType: (string)
specify a particular activity type to create
Example:
type.Type%3AexampleActivityType%40dxtera.org
- recordType: (array of )
specify support for one or more activity record types
Example:
[ "type.Type%3AexampleActivityRecordType%40campusapi.org", "..." ]
- objectiveBankId: (string)
specify in which objective-bank to create this activity
Example:
learning.ObjectiveBank%3A8374%40base.url
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Activity",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this activity, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this activity, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this activity for display.",
"type": "string"
},
"description": {
"description": "The description of this activity.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this activity. Default type set by system unless specified in query parameter.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this activity. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"objectiveId": {
"description": "The objective associated with this activity.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"assetIds": {
"description": "Any assets associated with this activity.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
}
},
"courseIds": {
"description": "Any courses associated with this activity.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
}
},
"assessmentIds": {
"description": "Any assessments associated with this activity.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
}
}
}
}
Example:
{
"displayName": "Display Name of this Activity",
"description": "The description of this Activity",
"assetIds": [ "repository.Asset:2083@base.url", "..." ],
"courseIds": [ "course.Course:9660@base.url", "..." ],
"assessmentIds": [ "assessment.Assessment:4705@base.url", "..." ]
}
Query the collection of Activities in a system, federation of systems, or in a default objectiveBank by posting a Query object.
Submit a query using a ActivityQuery object.
post /activities/activity-query
Submit a query using a ActivityQuery object.
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "assets", "courses", "assessments", "objective", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "ActivityQuery",
"type": "object",
"properties": {
"matchIds": {
"description": "List of Ids to match. Boolean OR performed among multiple Ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchKeywords": {
"description": "List keywords to match. Multiple keywords can be added to perform a boolean OR among them. A keyword may be applied to any of the elements defined in this object such as the display name, description or any attribute defined in or implemented by this object.",
"type": "array",
"items": {
"type": "object",
"properties": {
"keyword": {
"description": "keyword to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchDisplayNames": {
"description": "List of displayName strings to match. Boolean OR performed among multiple displayNames.",
"type": "array",
"items": {
"type": "object",
"properties": {
"displayName": {
"description": "displayName to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchDescriptions": {
"description": "List of discription strings to match. Boolean OR performed among multiple descriptions.",
"type": "array",
"items": {
"type": "object",
"properties": {
"description": {
"description": "description to match",
"type": "string"
},
"stringMatchType": {
"description": "the string match type",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchGenusTypeIds": {
"description": "List of genus type ids to match. Boolean OR performed among multiple ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"genusTypeid": {
"description": "genus type id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchRecordTypeIds": {
"description": "List of record type ids to match. Boolean OR performed among multiple ids.",
"type": "array",
"items": {
"type": "object",
"properties": {
"genusTypeid": {
"description": "record type id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchObjectiveIds": {
"description": "List of objective Ids for this query to match activity that have a related objective.",
"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"
}
}
}
},
"objectiveQueries": {
"description": "ObjectiveQueries to match the objective. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchAssetIds": {
"description": "List of Asset Ids for this query to match assets.",
"type": "array",
"items": {
"type": "object",
"properties": {
"assetId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"assetQueries": {
"description": "repository.AssetQueries to match the Assets. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchAnyAsset": {
"description": "Match assets with any value. true to match Activities with any assets, false to match Activities with no assets",
"type": "boolean"
},
"matchCourseIds": {
"description": "List of Course Ids for this query to match courses.",
"type": "array",
"items": {
"type": "object",
"properties": {
"courseId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"courseQueries": {
"description": "course.CourseQueries to match the Courses. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchAnyCourse": {
"description": "Match courses with any value. true to match Activities with any courses, false to match Activities with no courses",
"type": "boolean"
},
"matchAssessmentIds": {
"description": "List of Assessment Ids for this query to match assessments.",
"type": "array",
"items": {
"type": "object",
"properties": {
"assessmentId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"assessmentQueries": {
"description": "assessment.AssessmentQueries to match the Assessments. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchAnyAssessment": {
"description": "Match assessments with any value. true to match Activities with any assessments, false to match Activities with no assessments",
"type": "boolean"
},
"matchObjectiveBankIds": {
"description": "List of ObjectiveBank Id's to match.",
"type": "array",
"items": {
"type": "object",
"properties": {
"objectiveBankId": {
"description": "Objective Bank id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"objectiveBankQueries": {
"description": "ObjectiveBankQueries to match Objective Bank. 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": "learning.Activity:7474@base.url",
"uri": "http://base.url/open/campusapi/learning/activity/learning.Activity%3A7474%40base.url",
"displayName": "Display Name of this Activity",
"description": "The description of this Activity",
"genusTypeId": "type.Type:defaultActivityType@base.url",
"recordTypeIds": [ "type.Type:exampleActivityRecordType@campusapi.org", "..."],
"objectiveId": "learning.Objective:2371@base.url",
"assetIds": [ "repository.Asset:1909@base.url", "..." ],
"courseIds": [ "course.Course:7926@base.url", "..." ],
"assessmentIds": [ "assessment.Assessment:5809@base.url", "..." ]
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Entity representing a Activity form metadata.
Get form metadata for creating a new Activity.
get /activities/metadata
Get form metadata for creating a new Activity.
Query Parameters
- objectiveId: required(string)
the objective of this metadatum.
Example:
learning.Objective%3A576%40base.url
- genusType: (string)
specify a particular activity type to create
Example:
type.Type%3AexampleActivityType%40dxtera.org
- recordType: (array of )
specify support for one or more activity record types
Example:
[ "type.Type%3AexampleActivityRecordType%40campusapi.org", "..." ]
- objectiveBankId: (string)
specify in which objective-bank to create this activity
Example:
learning.ObjectiveBank%3A8374%40base.url
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "Activity",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this activity, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this activity, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this activity for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Activity.Activity:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this activity",
"linked": false
},
"description": {
"description": "The description of this activity.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Activity.Activity:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this activity",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this activity. Default type set by system unless specified in query parameter on initial post.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this activity. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"assetIds": {
"description": "Any assets associated with this activity.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id",
"pattern": "",
"enum": []
},
"read-only": false,
"elementId": "learning.Activity:assets@dxtera.org",
"existingValue": [],
"elementLabel": "Assets",
"instructions": "Enter Ids for assets of this activity.",
"linked": false
},
"courseIds": {
"description": "Any courses associated with this activity.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id",
"pattern": "",
"enum": []
},
"read-only": false,
"elementId": "learning.Activity:courses@dxtera.org",
"existingValue": [],
"elementLabel": "Courses",
"instructions": "Enter Ids for courses of this activity.",
"linked": false
},
"assessmentIds": {
"description": "Any assessments associated with this activity.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id",
"pattern": "",
"enum": []
},
"read-only": false,
"elementId": "learning.Activity:assessments@dxtera.org",
"existingValue": [],
"elementLabel": "Assessments",
"instructions": "Enter Ids for assessments of this activity.",
"linked": false
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Entity representing a Activity
Get a particular Activity given its id.
Update a particular Activity given its id.
Delete a particular Activity given its id.
get /activities/{activityId}
Get a particular Activity given its id.
URI Parameters
- activityId: required(string)
Query Parameters
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "assets", "courses", "assessments", "objective", 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": "learning.Activity:7474@base.url",
"uri": "http://base.url/open/campusapi/learning/activity/learning.Activity%3A7474%40base.url",
"displayName": "Display Name of this Activity",
"description": "The description of this Activity",
"genusTypeId": "type.Type:defaultActivityType@base.url",
"recordTypeIds": [ "type.Type:exampleActivityRecordType@campusapi.org", "..."],
"objectiveId": "learning.Objective:2371@base.url",
"assetIds": [ "repository.Asset:1909@base.url", "..." ],
"courseIds": [ "course.Course:7926@base.url", "..." ],
"assessmentIds": [ "assessment.Assessment:5809@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": "Activity not found" }
put /activities/{activityId}
Update a particular Activity given its id.
URI Parameters
- activityId: required(string)
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Activity",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this activity, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this activity, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this activity for display.",
"type": "string"
},
"description": {
"description": "The description of this activity.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this activity. Default type set by system unless specified in query parameter.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this activity. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"objectiveId": {
"description": "The objective associated with this activity.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"assetIds": {
"description": "Any assets associated with this activity.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
}
},
"courseIds": {
"description": "Any courses associated with this activity.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
}
},
"assessmentIds": {
"description": "Any assessments associated with this activity.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
}
}
}
}
Example:
{
"displayName": "Display Name of this Activity",
"description": "The description of this Activity",
"assetIds": [ "repository.Asset:2083@base.url", "..." ],
"courseIds": [ "course.Course:9660@base.url", "..." ],
"assessmentIds": [ "assessment.Assessment:4705@base.url", "..." ]
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The Activity has been updated" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "Activity not found" }
delete /activities/{activityId}
Delete a particular Activity given its id.
URI Parameters
- activityId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The Activity has been deleted" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "Activity not found" }
Entity representing a Activity form metadata for update
Get form metadata for updating an existing Activity.
get /activities/{activityId}/metadata
Get form metadata for updating an existing Activity.
URI Parameters
- activityId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "Activity",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this activity, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this activity, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this activity for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Activity.Activity:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this activity",
"linked": false
},
"description": {
"description": "The description of this activity.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Activity.Activity:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this activity",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this activity. Default type set by system unless specified in query parameter on initial post.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this activity. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"assetIds": {
"description": "Any assets associated with this activity.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id",
"pattern": "",
"enum": []
},
"read-only": false,
"elementId": "learning.Activity:assets@dxtera.org",
"existingValue": [],
"elementLabel": "Assets",
"instructions": "Enter Ids for assets of this activity.",
"linked": false
},
"courseIds": {
"description": "Any courses associated with this activity.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id",
"pattern": "",
"enum": []
},
"read-only": false,
"elementId": "learning.Activity:courses@dxtera.org",
"existingValue": [],
"elementLabel": "Courses",
"instructions": "Enter Ids for courses of this activity.",
"linked": false
},
"assessmentIds": {
"description": "Any assessments associated with this activity.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id",
"pattern": "",
"enum": []
},
"read-only": false,
"elementId": "learning.Activity:assessments@dxtera.org",
"existingValue": [],
"elementLabel": "Assessments",
"instructions": "Enter Ids for assessments of this activity.",
"linked": false
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "activity not found" }
/proficiencies
Collection of Proficiencies in a system, federation of systems, or in a default ObjectiveBank.
Get all Proficiencies in the system or default ObjectiveBank.
Create a new Proficiency in the default ObjectiveBank.
get /proficiencies
Get all Proficiencies in the system or default ObjectiveBank.
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", "level", "resource", "objective", 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%3AexampleProficiencyType%40dxtera.org
- parentGenusTypeId: (string)
The id string to match a parent genusType
Example:
type.Type%3AparentTypeExampleProficiencyType%40dxtera.org
- recordTypeId: (string)
The id string to match a recordType
Example:
type.Type%3AexampleProficiencyType%40campusapi.org
- fromDate: (string)
Get all proficiencies from this date inclusive. Use with toDate to define date range query.
Example:
2020-10-03
- toDate: (string)
Get all proficiencies up to this date inclusive. Use with fromDate to define date range query.
Example:
2020-12-18
- resourceId: (string)
the id string to match a resource.
Example:
resource.Resource%3A704%40base.url
- objectiveId: (string)
the id string to match a objective.
Example:
learning.Objective%3A792%40base.url
- objectiveBankId: (string)
The id string to match a objectiveBank
Example:
learning.ObjectiveBank%3A8374%40base.url
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "learning.Proficiency:7103@base.url",
"uri": "http://base.url/open/campusapi/learning/proficiency/learning.Proficiency%3A7103%40base.url",
"displayName": "Display Name of this Proficiency",
"description": "The description of this Proficiency",
"genusTypeId": "type.Type:defaultProficiencyType@base.url",
"recordTypeIds": [ "type.Type:exampleProficiencyRecordType@campusapi.org", "..."],
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"endReasonId": "process.State:7103@base.url",
"resourceId": "resource.Resource:7960@base.url",
"objectiveId": "learning.Objective:3531@base.url",
"completion": 3.14,
"levelId": "grading.Grade:5504@base.url"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
post /proficiencies
Create a new Proficiency in the default ObjectiveBank.
Query Parameters
- resourceId: required(string)
the resource of this proficiency.
Example:
resource.Resource%3A704%40base.url
- objectiveId: required(string)
the objective of this proficiency.
Example:
learning.Objective%3A792%40base.url
- genusType: (string)
specify a particular proficiency type to create
Example:
type.Type%3AexampleProficiencyType%40dxtera.org
- recordType: (array of )
specify support for one or more proficiency record types
Example:
[ "type.Type%3AexampleProficiencyRecordType%40campusapi.org", "..." ]
- objectiveBankId: (string)
specify in which objective-bank to create this proficiency
Example:
learning.ObjectiveBank%3A8374%40base.url
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Proficiency",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this proficiency, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this proficiency, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this proficiency for display.",
"type": "string"
},
"description": {
"description": "The description of this proficiency.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this proficiency. 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 proficiency. 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 proficiency.",
"type": "string",
"format": "date-time"
},
"endDate": {
"description": "The ending date of this proficiency.",
"type": "string",
"format": "date-time"
},
"endReasonId": {
"description": "The reason this proficiency ended.",
"type": "string",
"format": "osid-id"
},
"resourceId": {
"description": "The resource associated with this proficiency.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"objectiveId": {
"description": "The objective associated with this proficiency.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"completion": {
"description": "The completion of this objective as a percentage 0-100.",
"type": "number"
},
"levelId": {
"description": "The proficiency level expressed as a grade.",
"type": "string",
"format": "osid-id"
}
}
}
Example:
{
"displayName": "Display Name of this Proficiency",
"description": "The description of this Proficiency",
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"endReasonId": "process.State:1056@base.url",
"completion": 3.14,
"levelId": "grading.Grade:2122@base.url"
}
Query the collection of Proficiencies in a system, federation of systems, or in a default objectiveBank by posting a Query object.
Submit a query using a ProficiencyQuery object.
post /proficiencies/proficiency-query
Submit a query using a ProficiencyQuery 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", "level", "resource", "objective", 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": "ProficiencyQuery",
"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 Proficiencies with any end reason, false to match Proficiencies with no end reason",
"type": "boolean"
},
"matchResourceIds": {
"description": "List of resource Ids for this query to match proficiency that have a related resource.",
"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"
}
}
}
},
"resourceQueries": {
"description": "ResourceQueries to match the resource. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchObjectiveIds": {
"description": "List of objective Ids for this query to match proficiency that have a related objective.",
"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"
}
}
}
},
"objectiveQueries": {
"description": "ObjectiveQueries to match the objective. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchCompletion": {
"description": "Match Completion within the given range inclusive.",
"type": "array",
"items": {
"type": "object",
"properties": {
"from": {
"description": "starting value",
"type": "number"
},
"to": {
"description": "ending value",
"type": "number"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"matchAnyCompletion": {
"description": "Match completions with any value. true to match Proficiencies with any completion, false to match ProgramOfferings with no completion",
"type": "boolean"
},
"matchLevelIds": {
"description": "List of Grade Ids for this query to match level.",
"type": "array",
"items": {
"type": "object",
"properties": {
"levelId": {
"description": "id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"levelQueries": {
"description": "grading.GradeQueries to match the Level. Each query performs a boolean OR.",
"type": "array",
"items": {
"type": "object"
}
},
"matchAnyLevel": {
"description": "Match level with any value. true to match Proficiencies with any level, false to match Proficiencies with no level",
"type": "boolean"
},
"matchObjectiveBankIds": {
"description": "List of ObjectiveBank Id's to match.",
"type": "array",
"items": {
"type": "object",
"properties": {
"objectiveBankId": {
"description": "Objective Bank id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"objectiveBankQueries": {
"description": "ObjectiveBankQueries to match Objective Bank. 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": "learning.Proficiency:7103@base.url",
"uri": "http://base.url/open/campusapi/learning/proficiency/learning.Proficiency%3A7103%40base.url",
"displayName": "Display Name of this Proficiency",
"description": "The description of this Proficiency",
"genusTypeId": "type.Type:defaultProficiencyType@base.url",
"recordTypeIds": [ "type.Type:exampleProficiencyRecordType@campusapi.org", "..."],
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"endReasonId": "process.State:7103@base.url",
"resourceId": "resource.Resource:7960@base.url",
"objectiveId": "learning.Objective:3531@base.url",
"completion": 3.14,
"levelId": "grading.Grade:5504@base.url"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Entity representing a Proficiency form metadata.
Get form metadata for creating a new Proficiency.
get /proficiencies/metadata
Get form metadata for creating a new Proficiency.
Query Parameters
- resourceId: required(string)
the resource of this metadatum.
Example:
resource.Resource%3A704%40base.url
- objectiveId: required(string)
the objective of this metadatum.
Example:
learning.Objective%3A792%40base.url
- genusType: (string)
specify a particular proficiency type to create
Example:
type.Type%3AexampleProficiencyType%40dxtera.org
- recordType: (array of )
specify support for one or more proficiency record types
Example:
[ "type.Type%3AexampleProficiencyRecordType%40campusapi.org", "..." ]
- objectiveBankId: (string)
specify in which objective-bank to create this proficiency
Example:
learning.ObjectiveBank%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": "Proficiency",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this proficiency, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this proficiency, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this proficiency for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Proficiency.Proficiency:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this proficiency",
"linked": false
},
"description": {
"description": "The description of this proficiency.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Proficiency.Proficiency:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this proficiency",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this proficiency. 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 proficiency. 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 proficiency.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Proficiency.Proficiency:startDate@base.url",
"existingValue": "2020-10-03T08:00:00.000Z",
"elementLabel": "Start Date",
"instructions": "Enter a starting date for this proficiency",
"linked": false
},
"endDate": {
"description": "The ending date of this proficiency.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Proficiency.Proficiency:endDate@base.url",
"existingValue": "2020-12-18T17:00:00.000Z",
"elementLabel": "End Date",
"instructions": "Enter an ending date for this proficiency",
"linked": false
},
"endReasonId": {
"description": "The reason this proficiency ended. A process/State object.",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Proficiency.Proficiency:endReason@base.url",
"existingValue": "process.State:1860@base.url",
"elementLabel": "End Reason",
"instructions": "Select the reason this proficiency ended",
"linked": false
},
"completion": {
"description": "The completion of this objective as a percentage 0-100.",
"type": "number",
"minimum": 0,
"maximum": 1,
"units": "",
"default": null,
"enum": [],
"elementId": "learning.Proficiency:completion@dxtera.org",
"existingValue": 0.78,
"elementLabel": "Completion",
"instructions": "Enter the completion of this proficiency.",
"linked": false
},
"levelId": {
"description": "The proficiency level expressed as a grade.",
"type": "string",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "learning.Proficiency:level@dxtera.org",
"existingValue": null,
"elementLabel": "Level",
"instructions": "Enter the Id of the level for this proficiency.",
"linked": false
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Entity representing a Proficiency
Get a particular Proficiency given its id.
Update a particular Proficiency given its id.
Delete a particular Proficiency given its id.
get /proficiencies/{proficiencyId}
Get a particular Proficiency given its id.
URI Parameters
- proficiencyId: required(string)
Query Parameters
- expand: (string)
Expand object or type for named attribute: "genusType", "recordType", "endReason", "level", "resource", "objective", 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": "learning.Proficiency:7103@base.url",
"uri": "http://base.url/open/campusapi/learning/proficiency/learning.Proficiency%3A7103%40base.url",
"displayName": "Display Name of this Proficiency",
"description": "The description of this Proficiency",
"genusTypeId": "type.Type:defaultProficiencyType@base.url",
"recordTypeIds": [ "type.Type:exampleProficiencyRecordType@campusapi.org", "..."],
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"endReasonId": "process.State:7103@base.url",
"resourceId": "resource.Resource:7960@base.url",
"objectiveId": "learning.Objective:3531@base.url",
"completion": 3.14,
"levelId": "grading.Grade:5504@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": "Proficiency not found" }
put /proficiencies/{proficiencyId}
Update a particular Proficiency given its id.
URI Parameters
- proficiencyId: required(string)
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Proficiency",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this proficiency, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this proficiency, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this proficiency for display.",
"type": "string"
},
"description": {
"description": "The description of this proficiency.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this proficiency. 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 proficiency. 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 proficiency.",
"type": "string",
"format": "date-time"
},
"endDate": {
"description": "The ending date of this proficiency.",
"type": "string",
"format": "date-time"
},
"endReasonId": {
"description": "The reason this proficiency ended.",
"type": "string",
"format": "osid-id"
},
"resourceId": {
"description": "The resource associated with this proficiency.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"objectiveId": {
"description": "The objective associated with this proficiency.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"completion": {
"description": "The completion of this objective as a percentage 0-100.",
"type": "number"
},
"levelId": {
"description": "The proficiency level expressed as a grade.",
"type": "string",
"format": "osid-id"
}
}
}
Example:
{
"displayName": "Display Name of this Proficiency",
"description": "The description of this Proficiency",
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"endReasonId": "process.State:1056@base.url",
"completion": 3.14,
"levelId": "grading.Grade:2122@base.url"
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The Proficiency 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": "Proficiency not found" }
delete /proficiencies/{proficiencyId}
Delete a particular Proficiency given its id.
URI Parameters
- proficiencyId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The Proficiency 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": "Proficiency not found" }
Entity representing a Proficiency form metadata for update
Get form metadata for updating an existing Proficiency.
get /proficiencies/{proficiencyId}/metadata
Get form metadata for updating an existing Proficiency.
URI Parameters
- proficiencyId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "Proficiency",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this proficiency, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this proficiency, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this proficiency for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Proficiency.Proficiency:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this proficiency",
"linked": false
},
"description": {
"description": "The description of this proficiency.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Proficiency.Proficiency:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this proficiency",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this proficiency. 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 proficiency. 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 proficiency.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Proficiency.Proficiency:startDate@base.url",
"existingValue": "2020-10-03T08:00:00.000Z",
"elementLabel": "Start Date",
"instructions": "Enter a starting date for this proficiency",
"linked": false
},
"endDate": {
"description": "The ending date of this proficiency.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Proficiency.Proficiency:endDate@base.url",
"existingValue": "2020-12-18T17:00:00.000Z",
"elementLabel": "End Date",
"instructions": "Enter an ending date for this proficiency",
"linked": false
},
"endReasonId": {
"description": "The reason this proficiency ended. A process/State object.",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Proficiency.Proficiency:endReason@base.url",
"existingValue": "process.State:1860@base.url",
"elementLabel": "End Reason",
"instructions": "Select the reason this proficiency ended",
"linked": false
},
"completion": {
"description": "The completion of this objective as a percentage 0-100.",
"type": "number",
"minimum": 0,
"maximum": 1,
"units": "",
"default": null,
"enum": [],
"elementId": "learning.Proficiency:completion@dxtera.org",
"existingValue": 0.78,
"elementLabel": "Completion",
"instructions": "Enter the completion of this proficiency.",
"linked": false
},
"levelId": {
"description": "The proficiency level expressed as a grade.",
"type": "string",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "learning.Proficiency:level@dxtera.org",
"existingValue": null,
"elementLabel": "Level",
"instructions": "Enter the Id of the level for this proficiency.",
"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": "proficiency not found" }
/objective-banks
Collection of ObjectiveBanks in a system or federation of systems.
Get all ObjectiveBanks.
Create a new ObjectiveBank.
get /objective-banks
Get all ObjectiveBanks.
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%3AexampleObjectiveBankType%40dxtera.org
- parentGenusTypeId: (string)
The id string to match a parent genusType
Example:
type.Type%3AparentTypeExampleObjectiveBankType%40dxtera.org
- recordTypeId: (string)
The id string to match a recordType
Example:
type.Type%3AexampleObjectiveBankType%40campusapi.org
- providerId: (string)
Id string to match provider.
Example:
resource.Resource%3A3007%40demo.dxtera.org
- objectiveId: (string)
Get objective-banks mapped to this objective.
Example:
learning.Objective%3A936%40demo.dxtera.org
- activityId: (string)
Get objective-banks mapped to this activity.
Example:
learning.Activity%3A832%40demo.dxtera.org
- proficiencyId: (string)
Get objective-banks mapped to this proficiency.
Example:
learning.Proficiency%3A1144%40demo.dxtera.org
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "learning.ObjectiveBank:2552@base.url",
"uri": "http://base.url/open/campusapi/learning/objectiveBank/learning.ObjectiveBank%3A2552%40base.url",
"displayName": "Display Name of this ObjectiveBank",
"description": "The description of this ObjectiveBank",
"genusTypeId": "type.Type:defaultObjectiveBankType@base.url",
"recordTypeIds": [ "type.Type:exampleObjectiveBankRecordType@campusapi.org", "..."],
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:ObjectiveBank@base.url",
"license": "The license that applies to this ObjectiveBank"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
post /objective-banks
Create a new ObjectiveBank.
Query Parameters
- genusType: (string)
specify a particular objectiveBank type to create
Example:
type.Type%3AexampleObjectiveBankType%40dxtera.org
- recordType: (array of )
specify support for one or more objectiveBank record types
Example:
[ "type.Type%3AexampleObjectiveBankRecordType%40campusapi.org", "..." ]
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "ObjectiveBank",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this objective bank, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this objective bank, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this objective bank for display.",
"type": "string"
},
"description": {
"description": "The description of this objective bank.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this objective bank. 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 objective bank. 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 objective bank.",
"type": "string",
"format": "osid-id"
},
"brandingIds": {
"description": "The branding of this objective bank. A collection of Assets.",
"type": "array",
"items" : {
"type": "string",
"format": "osid-id"
}
},
"license": {
"description": "The licensing that applies to this objective bank.",
"type": "string"
}
}
}
Example:
{
"displayName": "Display Name of this ObjectiveBank",
"description": "The description of this ObjectiveBank",
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:ObjectiveBank@base.url",
"license": "The license that applies to this ObjectiveBank"
}
Query the collection of ObjectiveBanks in a system, federation of systems, or in a default objectiveBank by posting a Query object.
Submit a query using a ObjectiveBankQuery object.
post /objective-banks/objective-bank-query
Submit a query using a ObjectiveBankQuery 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": "ObjectiveBankQuery",
"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 ObjectiveBank with any provider, false to match ObjectiveBank 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 ObjectiveBank with any branding, false to match ObjectiveBank 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"
}
}
}
},
"matchObjectiveBankIds": {
"description": "List of ObjectiveBank Id's to match.",
"type": "array",
"items": {
"type": "object",
"properties": {
"objectiveBankId": {
"description": "Objective Bank id to match",
"type": "string",
"format": "osid-id"
},
"match": {
"description": "true for a positive match, false for a negative match",
"type": "boolean"
}
}
}
},
"objectiveBankQueries": {
"description": "ObjectiveBankQueries to match Objective Bank. 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": "learning.ObjectiveBank:2552@base.url",
"uri": "http://base.url/open/campusapi/learning/objectiveBank/learning.ObjectiveBank%3A2552%40base.url",
"displayName": "Display Name of this ObjectiveBank",
"description": "The description of this ObjectiveBank",
"genusTypeId": "type.Type:defaultObjectiveBankType@base.url",
"recordTypeIds": [ "type.Type:exampleObjectiveBankRecordType@campusapi.org", "..."],
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:ObjectiveBank@base.url",
"license": "The license that applies to this ObjectiveBank"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Entity representing a ObjectiveBank form metadata.
Get form metadata for creating a new ObjectiveBank.
get /objective-banks/metadata
Get form metadata for creating a new ObjectiveBank.
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "ObjectiveBank",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this objective bank, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this objective bank, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this objective bank for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "ObjectiveBank.ObjectiveBank:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this objective bank",
"linked": false
},
"description": {
"description": "The description of this objective bank.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "ObjectiveBank.ObjectiveBank:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this objective bank",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this objective bank. 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 objective bank. 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 objective bank.",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "ObjectiveBank.ObjectiveBank:provider@base.url",
"existingValue": "",
"elementLabel": "Provider",
"instructions": "Enter the provider of this objective bank",
"linked": false
},
"brandingIds": {
"description": "The branding of this objective bank. A list of Assets.",
"type": "array",
"items" : {
"type": "string",
"format": "osid-id",
"pattern": "",
"enum": []
},
"read-only": false,
"default": [],
"elementId": "ObjectiveBank.ObjectiveBank:branding@base.url",
"existingValue": "",
"elementLabel": "Branding",
"instructions": "Enter the branding images for this objective bank",
"linked": false
},
"license": {
"description": "The licensing that applies to this objective bank.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "ObjectiveBank.ObjectiveBank:license@base.url",
"existingValue": "The Existing License",
"elementLabel": "License",
"instructions": "Include a license for this objective bank",
"linked": false
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
The root ObjectiveBanks in the ObjectiveBank hierarchy. A node with no parents is an orphan. While all ObjectiveBank 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-objective-bank
get /objective-banks/root-objective-bank
Get all root root-objective-bank
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "learning.ObjectiveBank:2552@base.url",
"uri": "http://base.url/open/campusapi/learning/objectiveBank/learning.ObjectiveBank%3A2552%40base.url",
"displayName": "Display Name of this ObjectiveBank",
"description": "The description of this ObjectiveBank",
"genusTypeId": "type.Type:defaultObjectiveBankType@base.url",
"recordTypeIds": [ "type.Type:exampleObjectiveBankRecordType@campusapi.org", "..."],
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:ObjectiveBank@base.url",
"license": "The license that applies to this ObjectiveBank"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Entity representing a ObjectiveBank
Get a particular ObjectiveBank given its id.
Update a particular ObjectiveBank given its id.
Delete a particular ObjectiveBank given its id.
get /objective-banks/{objectiveBankId}
Get a particular ObjectiveBank given its id.
URI Parameters
- objectiveBankId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"id": "learning.ObjectiveBank:2552@base.url",
"uri": "http://base.url/open/campusapi/learning/objectiveBank/learning.ObjectiveBank%3A2552%40base.url",
"displayName": "Display Name of this ObjectiveBank",
"description": "The description of this ObjectiveBank",
"genusTypeId": "type.Type:defaultObjectiveBankType@base.url",
"recordTypeIds": [ "type.Type:exampleObjectiveBankRecordType@campusapi.org", "..."],
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:ObjectiveBank@base.url",
"license": "The license that applies to this ObjectiveBank"
}
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": "ObjectiveBank not found" }
put /objective-banks/{objectiveBankId}
Update a particular ObjectiveBank given its id.
URI Parameters
- objectiveBankId: required(string)
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "ObjectiveBank",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this objective bank, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this objective bank, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this objective bank for display.",
"type": "string"
},
"description": {
"description": "The description of this objective bank.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this objective bank. 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 objective bank. 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 objective bank.",
"type": "string",
"format": "osid-id"
},
"brandingIds": {
"description": "The branding of this objective bank. A collection of Assets.",
"type": "array",
"items" : {
"type": "string",
"format": "osid-id"
}
},
"license": {
"description": "The licensing that applies to this objective bank.",
"type": "string"
}
}
}
Example:
{
"displayName": "Display Name of this ObjectiveBank",
"description": "The description of this ObjectiveBank",
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:ObjectiveBank@base.url",
"license": "The license that applies to this ObjectiveBank"
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The ObjectiveBank 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": "ObjectiveBank not found" }
delete /objective-banks/{objectiveBankId}
Delete a particular ObjectiveBank given its id.
URI Parameters
- objectiveBankId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The ObjectiveBank 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": "ObjectiveBank not found" }
Entity representing a ObjectiveBank form metadata for update
Get form metadata for updating an existing ObjectiveBank.
get /objective-banks/{objectiveBankId}/metadata
Get form metadata for updating an existing ObjectiveBank.
URI Parameters
- objectiveBankId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "ObjectiveBank",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this objective bank, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this objective bank, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this objective bank for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "ObjectiveBank.ObjectiveBank:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this objective bank",
"linked": false
},
"description": {
"description": "The description of this objective bank.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "ObjectiveBank.ObjectiveBank:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this objective bank",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this objective bank. 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 objective bank. 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 objective bank.",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "ObjectiveBank.ObjectiveBank:provider@base.url",
"existingValue": "",
"elementLabel": "Provider",
"instructions": "Enter the provider of this objective bank",
"linked": false
},
"brandingIds": {
"description": "The branding of this objective bank. A list of Assets.",
"type": "array",
"items" : {
"type": "string",
"format": "osid-id",
"pattern": "",
"enum": []
},
"read-only": false,
"default": [],
"elementId": "ObjectiveBank.ObjectiveBank:branding@base.url",
"existingValue": "",
"elementLabel": "Branding",
"instructions": "Enter the branding images for this objective bank",
"linked": false
},
"license": {
"description": "The licensing that applies to this objective bank.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "ObjectiveBank.ObjectiveBank:license@base.url",
"existingValue": "The Existing License",
"elementLabel": "License",
"instructions": "Include a license for this objective bank",
"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": "objectiveBank not found" }
Get child ObjectiveBanks for the given ObjectiveBank in the hierarchy.
get /objective-banks/{objectiveBankId}/children
Get child ObjectiveBanks for the given ObjectiveBank in the hierarchy.
URI Parameters
- objectiveBankId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "learning.ObjectiveBank:2552@base.url",
"uri": "http://base.url/open/campusapi/learning/objectiveBank/learning.ObjectiveBank%3A2552%40base.url",
"displayName": "Display Name of this ObjectiveBank",
"description": "The description of this ObjectiveBank",
"genusTypeId": "type.Type:defaultObjectiveBankType@base.url",
"recordTypeIds": [ "type.Type:exampleObjectiveBankRecordType@campusapi.org", "..."],
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:ObjectiveBank@base.url",
"license": "The license that applies to this ObjectiveBank"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Add ObjectiveBank as child of the given ObjectiveBank in the hierarchy.
Remove the given ObjectiveBank as a child of the given ObjectiveBank in the hierarchy.
put /objective-banks/{objectiveBankId}/children/{childId}
Add ObjectiveBank as child of the given ObjectiveBank in the hierarchy.
URI Parameters
- objectiveBankId: required(string)
- childId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The child ObjectiveBank 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": "objectiveBank not found" }
delete /objective-banks/{objectiveBankId}/children/{childId}
Remove the given ObjectiveBank as a child of the given ObjectiveBank in the hierarchy.
URI Parameters
- objectiveBankId: required(string)
- childId: required(string)
Get parent ObjectiveBanks for the given ObjectiveBank in the hierarchy.
get /objective-banks/{objectiveBankId}/parents
Get parent ObjectiveBanks for the given ObjectiveBank in the hierarchy.
URI Parameters
- objectiveBankId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "learning.ObjectiveBank:2552@base.url",
"uri": "http://base.url/open/campusapi/learning/objectiveBank/learning.ObjectiveBank%3A2552%40base.url",
"displayName": "Display Name of this ObjectiveBank",
"description": "The description of this ObjectiveBank",
"genusTypeId": "type.Type:defaultObjectiveBankType@base.url",
"recordTypeIds": [ "type.Type:exampleObjectiveBankRecordType@campusapi.org", "..."],
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:ObjectiveBank@base.url",
"license": "The license that applies to this ObjectiveBank"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Get all Objectives in this ObjectiveBank
get /objective-banks/{objectiveBankId}/objectives
Get all Objectives in this ObjectiveBank
URI Parameters
- objectiveBankId: 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", "assessment", "knowledgeCategory", "cognitiveProcess", 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%3AexampleObjectiveType%40dxtera.org
- parentGenusTypeId: (string)
The id string to match a parent genusType
Example:
type.Type%3AparentTypeExampleObjectiveType%40dxtera.org
- recordTypeId: (string)
The id string to match a recordType
Example:
type.Type%3AexampleObjectiveType%40campusapi.org
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "learning.Objective:6036@base.url",
"uri": "http://base.url/open/campusapi/learning/objective/learning.Objective%3A6036%40base.url",
"displayName": "Display Name of this Objective",
"description": "The description of this Objective",
"genusTypeId": "type.Type:defaultObjectiveType@base.url",
"recordTypeIds": [ "type.Type:exampleObjectiveRecordType@campusapi.org", "..."],
"assessmentId": "assessment.Assessment:6896@base.url",
"knowledgeCategoryId": "grading.Grade:6589@base.url",
"cognitiveProcessId": "grading.Grade:4613@base.url"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Add the given Objective to this ObjectiveBank
Remove the given Objective from the ObjectiveBank.
put /objective-banks/{objectiveBankId}/objectives/{objectiveId}
Add the given Objective to this ObjectiveBank
URI Parameters
- objectiveBankId: required(string)
- objectiveId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "Objective has been added to ObjectiveBank" }
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": "Objective not found" }
delete /objective-banks/{objectiveBankId}/objectives/{objectiveId}
Remove the given Objective from the ObjectiveBank.
URI Parameters
- objectiveBankId: required(string)
- objectiveId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "Objective 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": "Objective not found" }
Get all Activities in this ObjectiveBank
get /objective-banks/{objectiveBankId}/activities
Get all Activities in this ObjectiveBank
URI Parameters
- objectiveBankId: 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", "assets", "courses", "assessments", "objective", or "all" to expand all referenced objects or types. This parameter can be repeated to expand multiples.
Example:
all
- genusTypeId: (string)
The id string to match a genusType
Example:
type.Type%3AexampleActivityType%40dxtera.org
- parentGenusTypeId: (string)
The id string to match a parent genusType
Example:
type.Type%3AparentTypeExampleActivityType%40dxtera.org
- recordTypeId: (string)
The id string to match a recordType
Example:
type.Type%3AexampleActivityType%40campusapi.org
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "learning.Activity:7474@base.url",
"uri": "http://base.url/open/campusapi/learning/activity/learning.Activity%3A7474%40base.url",
"displayName": "Display Name of this Activity",
"description": "The description of this Activity",
"genusTypeId": "type.Type:defaultActivityType@base.url",
"recordTypeIds": [ "type.Type:exampleActivityRecordType@campusapi.org", "..."],
"objectiveId": "learning.Objective:2371@base.url",
"assetIds": [ "repository.Asset:1909@base.url", "..." ],
"courseIds": [ "course.Course:7926@base.url", "..." ],
"assessmentIds": [ "assessment.Assessment:5809@base.url", "..." ]
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Add the given Activity to this ObjectiveBank
Remove the given Activity from the ObjectiveBank.
put /objective-banks/{objectiveBankId}/activities/{activityId}
Add the given Activity to this ObjectiveBank
URI Parameters
- objectiveBankId: required(string)
- activityId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "Activity has been added to ObjectiveBank" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{ "message": "Activity not found" }
delete /objective-banks/{objectiveBankId}/activities/{activityId}
Remove the given Activity from the ObjectiveBank.
URI Parameters
- objectiveBankId: required(string)
- activityId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "Activity has been removed" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{ "message": "Activity not found" }
Get all Proficiencies in this ObjectiveBank
get /objective-banks/{objectiveBankId}/proficiencies
Get all Proficiencies in this ObjectiveBank
URI Parameters
- objectiveBankId: 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", "level", "resource", "objective", 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%3AexampleProficiencyType%40dxtera.org
- parentGenusTypeId: (string)
The id string to match a parent genusType
Example:
type.Type%3AparentTypeExampleProficiencyType%40dxtera.org
- recordTypeId: (string)
The id string to match a recordType
Example:
type.Type%3AexampleProficiencyType%40campusapi.org
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "learning.Proficiency:7103@base.url",
"uri": "http://base.url/open/campusapi/learning/proficiency/learning.Proficiency%3A7103%40base.url",
"displayName": "Display Name of this Proficiency",
"description": "The description of this Proficiency",
"genusTypeId": "type.Type:defaultProficiencyType@base.url",
"recordTypeIds": [ "type.Type:exampleProficiencyRecordType@campusapi.org", "..."],
"startDate": "2020-10-03T06:30:00.000Z",
"endDate": "2020-12-18T19:30:00.000Z",
"endReasonId": "process.State:7103@base.url",
"resourceId": "resource.Resource:7960@base.url",
"objectiveId": "learning.Objective:3531@base.url",
"completion": 3.14,
"levelId": "grading.Grade:5504@base.url"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Add the given Proficiency to this ObjectiveBank
Remove the given Proficiency from the ObjectiveBank.
put /objective-banks/{objectiveBankId}/proficiencies/{proficiencyId}
Add the given Proficiency to this ObjectiveBank
URI Parameters
- objectiveBankId: required(string)
- proficiencyId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "Proficiency has been added to ObjectiveBank" }
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": "Proficiency not found" }
delete /objective-banks/{objectiveBankId}/proficiencies/{proficiencyId}
Remove the given Proficiency from the ObjectiveBank.
URI Parameters
- objectiveBankId: required(string)
- proficiencyId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "Proficiency 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": "Proficiency not found" }