Rustici Engine API documentation
http://example.org/RusticiEngine/api/v1/
about
Get back the version and platform of the running instance of Engine
get /{tenant}/about
Get back the version and platform of the running instance of Engine
URI Parameters
- tenant: required (string)
Query Parameters
- configuration: (string - default: )
External configuration. Contains custom configuration properties defined by each LMS.
HTTP status code 200
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "aboutSchema",
"type": "object",
"properties": {
"version": {
"type": "string",
"description": "Version number of the current instance of Engine",
"required": true
},
"platform": {
"type": "string",
"description": "Used to determine if this is the .NET or Java version of Engine",
"required": true
},
"distribution": {
"type": "string",
"description": "The distribution type of the current instance of Engine",
"required": true
}
},
"additionalProperties": true
}
Example:
{
"version": "0.0.0.0",
"platform": "Net"
}
Gets the number of users across all tenants.
get /{tenant}/about/userCount
Gets the number of users across all tenants.
URI Parameters
- tenant: required (string)
Query Parameters
- before: (string - default: )
Only userCount updated before the specified ISO 8601 TimeStamp (inclusive) are included. If a time zone is not specified, the server's time zone will be used.
- since: (string - default: )
Only userCount updated since the specified ISO 8601 TimeStamp (inclusive) are included. If a time zone is not specified, the server's time zone will be used.
- configuration: (string - default: )
External configuration. Contains custom configuration properties defined by each LMS.
HTTP status code 200
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "userCountSummarySchema",
"type": "object",
"properties": {
"combinedTenants": {
"$ref": "userCountDetailSchema",
"required": true
},
"byTenant": {
"type": "array",
"description": "A summary of user counts for each named tenant in the system",
"items": {
"$ref": "userCountDetailSchema"
},
"required": true
}
}
}
Example:
{
"total": {
"total": 104587,
"dispatched": 73209,
"nonDispatched": 31378
},
"byTenant": [
{
"tenantName": "myFirstTenant",
"total": 46032,
"dispatched": 46032,
"nonDispatched": 0
},
{
"tenantName": "myOtherTenant",
"total": 7833,
"dispatched": 0,
"nonDispatched": 7833
},
{
"tenantName": "myOtherOtherTenant",
"total": 35312,
"dispatched": 27177,
"nonDispatched": 8135
},
{
"tenantName": "myFourthTenant",
"total": 15410,
"dispatched": 0,
"nonDispatched": 15410
}
]
}
ping
Get back a message indicating that the API is working.
get /{tenant}/ping
Get back a message indicating that the API is working.
URI Parameters
- tenant: required (string)
Query Parameters
- configuration: (string - default: )
External configuration. Contains custom configuration properties defined by each LMS.
HTTP status code 200
Import result
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "messageSchema",
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{"message": "API is up." }
tenant configuration
Bulk set configuration settings via POST request. If explicit is not set, then just ensure the effective value of this setting is as specified. If explicit is set, then actually record the specified value at this level, even if it already would have effectively had this value due to a default or lower level setting.
Returns the effective value of every setting at this level, as well as the effective value of any setting at a more specific level.
post /{tenant}/configuration
Bulk set configuration settings via POST request. If explicit is not set, then just ensure the effective value of this setting is as specified. If explicit is set, then actually record the specified value at this level, even if it already would have effectively had this value due to a default or lower level setting.
URI Parameters
- tenant: required (string)
Query Parameters
- configuration: (string - default: )
External configuration. Contains custom configuration properties defined by each LMS.
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "settingsPostSchema",
"type": "object",
"properties":
{
"settings": {
"type": "array",
"items": {
"$ref": "settingsIndividualSchema"
}
}
}
}
Example:
{
"settings": [
{ "settingId": "id1", "value": "newValue" },
{ "settingId": "id2", "value": "anotherValue" }
]
}
HTTP status code 204
Request succeeded
HTTP status code 400
bad request
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "messageSchema",
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{ "message" : "Explanation of why the request is bad."}
get /{tenant}/configuration
Returns the effective value of every setting at this level, as well as the effective value of any setting at a more specific level.
URI Parameters
- tenant: required (string)
Query Parameters
- configuration: (string - default: )
External configuration. Contains custom configuration properties defined by each LMS.
HTTP status code 200
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema#",
"title": "configListSchema",
"type": "object",
"properties": {
"configurationItems": {
"type": "array",
"items": {
"$schema": "http://json-schema.org/draft-03/schema#",
"title": "configurationItem",
"javaType": "RusticiSoftware.Engine.api.model.ConfigurationItem",
"type": "object",
"properties": {
"id": {
"type": "string"
},
"value": {
"type": "string"
}
},
"additionalProperties": true
},
"required": true
}
},
"additionalProperties": true
}
Example:
{
"configurationItems": [{
"id": "ApiRollupRegistrationPostBackUrl",
"value": ""
}, {
"id": "PlayerShowFinishButton",
"value": "YES"
}, {
"id": "PromptOnPlayerClose",
"value": "false"
}]
}
HTTP status code 400
bad request
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "messageSchema",
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{ "message" : "Explanation of why the request is bad."}
HTTP status code 404
not found
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "messageSchema",
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{"message": "Parent resource not found." }
Sets the value for this configuration setting, for the resource being configured.
Returns the effective value for this configuration setting for the resource being configured.
put /{tenant}/configuration/{settingId}
Sets the value for this configuration setting, for the resource being configured.
URI Parameters
- tenant: required (string)
- settingId: required (string)
id for this configuration setting
Query Parameters
- configuration: (string - default: )
External configuration. Contains custom configuration properties defined by each LMS.
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "settingSchema",
"properties": {
"value": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{"value": "http://example.org" }
HTTP status code 204
request succeeded
HTTP status code 400
bad request
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "messageSchema",
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{"message": "Invalid configuration setting id." }
HTTP status code 404
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "messageSchema",
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{"message": "Registration not found." }
get /{tenant}/configuration/{settingId}
Returns the effective value for this configuration setting for the resource being configured.
URI Parameters
- tenant: required (string)
- settingId: required (string)
id for this configuration setting
Query Parameters
- configuration: (string - default: )
External configuration. Contains custom configuration properties defined by each LMS.
HTTP status code 200
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "settingSchema",
"properties": {
"value": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{"value": "http://example.org" }
HTTP status code 400
bad request
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "messageSchema",
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{ "message" : "Explanation of why the request is bad."}
HTTP status code 404
not found
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "messageSchema",
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{"message": "Parent resource or configuration setting not found." }
Deletes the configuration setting at this specific configuration level.
Gets the value of the configuration setting set at this specific level. (This is different from the effective value; a setting can have an effective value from a less-specific level and return a 404 for this endpoint.)
delete /{tenant}/configuration/{settingId}/atThisLevel
Deletes the configuration setting at this specific configuration level.
URI Parameters
- tenant: required (string)
- settingId: required (string)
id for this configuration setting
Query Parameters
- configuration: (string - default: )
External configuration. Contains custom configuration properties defined by each LMS.
HTTP status code 204
request succeeded
HTTP status code 400
bad request
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "messageSchema",
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{"message": "Invalid configuration setting id."}
HTTP status code 404
not found
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "messageSchema",
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{"message": "Parent resource or configuration setting not found at this level."}
get /{tenant}/configuration/{settingId}/atThisLevel
Gets the value of the configuration setting set at this specific level. (This is different from the effective value; a setting can have an effective value from a less-specific level and return a 404 for this endpoint.)
URI Parameters
- tenant: required (string)
- settingId: required (string)
id for this configuration setting
Query Parameters
- configuration: (string - default: )
External configuration. Contains custom configuration properties defined by each LMS.
HTTP status code 200
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "settingSchema",
"properties": {
"value": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{"value": "http://example.org"}
HTTP status code 400
bad request
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "messageSchema",
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{"message": "Invalid configuration setting id."}
HTTP status code 404
not found
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "messageSchema",
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{"message": "Parent resource or configuration setting not found at this level."}
Re-write settings, and statement pipe passwords using the current encryption settings. For password rotation.
post /{tenant}/configuration/updateEncryptedSettings
Re-write settings, and statement pipe passwords using the current encryption settings. For password rotation.
URI Parameters
- tenant: required (string)
Query Parameters
- configuration: (string - default: )
External configuration. Contains custom configuration properties defined by each LMS.
HTTP status code 204
Request succeeded
courses
Import, list, or delete courses.
Get the list of courses
get /{tenant}/courses
Get the list of courses
URI Parameters
- tenant: required (string)
Query Parameters
- more: (string - default: )
Value for this parameter will be provided in the 'more' property of courses lists, where needed. An opaque value, construction and parsing may change without notice.
- since: (string - default: )
Only courses updated since the specified ISO 8601 TimeStamp (inclusive) are included. If a time zone is not specified, the server's time zone will be used.
- configuration: (string - default: )
External configuration. Contains custom configuration properties defined by each LMS.
HTTP status code 200
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema#",
"title": "courseListSchema",
"type": "object",
"properties": {
"courses": {
"type": "array",
"items": {
"$ref": "courseSummarySchema"
}
},
"more": {
"type": "string"
}
}
}
HTTP status code 400
bad request
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "messageSchema",
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{ "message" : "Explanation of why the request is bad."}
HTTP status code 404
not found
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "messageSchema",
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{"message": "courses not found" }
Delete the course with courseId = {courseId}
Get courses based on courseId
delete /{tenant}/courses/{courseId}
Delete the course with courseId = {courseId}
URI Parameters
- tenant: required (string)
- courseId: required (string)
Serialized course ID
Query Parameters
- version: (integer - default: -1)
The version of this course to use. If not provided, the latest version will be used. The External ID version property should not be set.
- configuration: (string - default: )
External configuration. Contains custom configuration properties defined by each LMS.
HTTP status code 204
request succeeded
HTTP status code 400
bad request
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "messageSchema",
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{ "message" : "Explanation of why the request is bad."}
HTTP status code 404
not found
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "messageSchema",
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{"message": "course not found" }
get /{tenant}/courses/{courseId}
Get courses based on courseId
URI Parameters
- tenant: required (string)
- courseId: required (string)
Serialized course ID
Query Parameters
- more: (string - default: )
Value for this parameter will be provided in the 'more' property of courses lists, where needed. An opaque value, construction and parsing may change without notice.
- since: (string - default: )
Only courses updated since the specified ISO 8601 TimeStamp (inclusive) are included. If a time zone is not specified, the server's time zone will be used.
- configuration: (string - default: )
External configuration. Contains custom configuration properties defined by each LMS.
HTTP status code 200
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema#",
"title": "courseListSchema",
"type": "object",
"properties": {
"courses": {
"type": "array",
"items": {
"$ref": "courseSummarySchema"
}
},
"more": {
"type": "string"
}
}
}
Example:
{
"courses": [
{
"id": "scorm2004golf",
"version": 0,
"title": "Golf Explained - Run-time Advanced Calls",
"courseLearningStandard": "SCORM_2004_3RD_EDITION",
"registrationCount": 1,
"updated": "2017-05-12T16:43:48.000Z",
"metadata": {
"title": "Golf Explained - Run-time Advanced Calls",
"titleLangueage": "en-US",
"description": "Course Description",
"descriptionLanguage": "en-US"
}
}
]
}
HTTP status code 400
bad request
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "messageSchema",
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{ "message" : "Explanation of why the request is bad."}
HTTP status code 404
not found
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "messageSchema",
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{"message": "Course not found"}
gets the details of the course's web path and structure
get /{tenant}/courses/{courseId}/detail
gets the details of the course's web path and structure
URI Parameters
- tenant: required (string)
- courseId: required (string)
Serialized course ID
Query Parameters
- version: (integer - default: -1)
The version of this course to use. If not provided, the latest version will be used. The External ID version property should not be set.
- configuration: (string - default: )
External configuration. Contains custom configuration properties defined by each LMS.
HTTP status code 200
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema#",
"title": "courseDetailSchema",
"type": "object",
"properties": {
"id": {
"description": "The external identification of this course",
"type": "string"
},
"version": {
"description": "The version of this course",
"type": "integer"
},
"title": {
"description": "The title of this course",
"type": "string"
},
"courseLearningStandard": {
"description": "The learning standard that this course uses",
"type": "string",
"enum": [
"SCORM_11",
"SCORM_12",
"SCORM_2004_2ND_EDITION",
"SCORM_2004_3RD_EDITION",
"SCORM_2004_4TH_EDITION",
"AICC",
"XAPI",
"CMI5"
]
},
"registrationCount": {
"type": "integer"
},
"updated": {
"type": "string"
},
"webPath": {
"description": "The web path at which the course's contents are hosted. For AICC courses, refer to the href property of the child activities as this value will not be available.",
"type": "string"
},
"rootActivity": {
"id": "rootActivity",
"$schema": "http://json-schema.org/draft-03/schema#",
"title": "CourseActivitySchema",
"javaType": "RusticiSoftware.Engine.api.model.CourseActivitySchema",
"properties": {
"externalIdentifier": {
"description": "An identifier for this activity generated by Engine based on details of the course",
"type": "string"
},
"itemIdentifier": {
"description": "The string which identifies this activity in the context of its course",
"type": "string"
},
"resourceIdentifier": {
"description": "The string which identifies this activity's resource in a course's manifest",
"type": "string"
},
"activityType": {
"description": "The type of this activity",
"type": "string",
"enum": [
"UNKNOWN",
"AGGREGATION",
"SCO" ,
"ASSET",
"OBJECTIVE"
]
},
"href": {
"description": "The web path used to launch this activity",
"type": "string"
},
"scaledPassingScore": {
"description": "The score required of a learner to pass this activity",
"type": "string"
},
"title": {
"decsription": "The title of the activity",
"type": "string"
},
"children": {
"type": "array",
"items": {
"$ref": "#/properties/rootActivity"
}
}
}
},
"metadata": {
"$ref": "metadataSchema"
}
}
}
Example:
{
"id": "multi-au-3947",
"version": 0,
"title": "cmi5: AU Simulator (1.3.0) - Multi AU",
"courseLearningStandard": "CMI5",
"registrationCount": 1,
"updated": "2017-05-12T16:43:48.000Z",
"webPath": "/Courses/default/cmi5-multi-au",
"rootActivity": {
"externalIdentifier": "http://example.com/cmi5/lms-id/9c8aa9c33163c6a3813e76fc84adc11ed1892057/886fadee-10c6-48ea-b03d-ffcb4cc802af",
"itemIdentifier": "http://example.com/cmi5/lms-id/9c8aa9c33163c6a3813e76fc84adc11ed1892057/886fadee-10c6-48ea-b03d-ffcb4cc802af",
"resourceIdentifier": "http://id.tincanapi.com/activity/software/cmi5-AU-Simulator/1.3.0/Multi-AU",
"activityType": "AGGREGATION",
"href": "",
"title": "cmi5: AU Simulator (1.3.0) - Multi AU",
"children": [
{
"externalIdentifier": "http://example.com/cmi5/lms-id/a0c872e5cdacbd6c8b3b54b50f91d05bd629efe6/dc34ca4d-5290-4031-9029-9b1eb150a188",
"itemIdentifier": "http://example.com/cmi5/lms-id/a0c872e5cdacbd6c8b3b54b50f91d05bd629efe6/dc34ca4d-5290-4031-9029-9b1eb150a188",
"resourceIdentifier": "http://id.tincanapi.com/activity/software/cmi5-AU-Simulator/1.3.0/Multi-AU/0",
"activityType": "SCO",
"href": "index.html",
"scaledPassingScore": "0.9",
"title": "cmi5: AU Simulator (1.3.0) - Multi AU - 0",
"children": []
},
{
"externalIdentifier": "http://example.com/cmi5/lms-id/79c7f62d35af6ab3bf2a6742f1bd8c1a666c1d44/8b63bc8c-bf68-425a-8eee-7b0d6b092bc3",
"itemIdentifier": "http://example.com/cmi5/lms-id/79c7f62d35af6ab3bf2a6742f1bd8c1a666c1d44/8b63bc8c-bf68-425a-8eee-7b0d6b092bc3",
"resourceIdentifier": "http://id.tincanapi.com/activity/software/cmi5-AU-Simulator/1.3.0/Multi-AU/1",
"activityType": "SCO",
"href": "index.html",
"scaledPassingScore": "0.9",
"title": "cmi5: AU Simulator (1.3.0) - Multi AU - 1",
"children": []
}
]
},
"metadata": {
"title": "cmi5: AU Simulator (1.3.0) - Multi AU",
"titleLangueage": "en-US",
"description": "Course Description",
"descriptionLanguage": "en-US"
}
}
HTTP status code 400
bad request
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "messageSchema",
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{ "message" : "Explanation of why the request is bad."}
HTTP status code 404
not found
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "messageSchema",
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
gets the last version ID that exists for this course
get /{tenant}/courses/{courseId}/lastVersion
gets the last version ID that exists for this course
URI Parameters
- tenant: required (string)
- courseId: required (string)
Serialized course ID
Query Parameters
- configuration: (string - default: )
External configuration. Contains custom configuration properties defined by each LMS.
HTTP status code 200
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "integerResultSchema",
"properties": {
"result": {
"type": "integer",
"required": true
}
},
"additionalProperties": true
}
Example:
{ "result" : 42}
HTTP status code 400
bad request
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "messageSchema",
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{ "message" : "Explanation of why the request is bad."}
HTTP status code 404
not found
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "messageSchema",
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Sets the course title for the specified course
get the course title
put /{tenant}/courses/{courseId}/title
Sets the course title for the specified course
URI Parameters
- tenant: required (string)
- courseId: required (string)
Serialized course ID
Query Parameters
- configuration: (string - default: )
External configuration. Contains custom configuration properties defined by each LMS.
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"type": "object",
"title": "titleSchema",
"properties": {
"title": {
"type": "string"
}
},
"additionalProperties": true
}
Example:
{
"title": "New course title"
}
HTTP status code 204
request succeeded
HTTP status code 400
bad request
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "messageSchema",
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{ "message" : "Explanation of why the request is bad."}
get /{tenant}/courses/{courseId}/title
get the course title
URI Parameters
- tenant: required (string)
- courseId: required (string)
Serialized course ID
Query Parameters
- configuration: (string - default: )
External configuration. Contains custom configuration properties defined by each LMS.
HTTP status code 200
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"type": "object",
"title": "titleSchema",
"properties": {
"title": {
"type": "string"
}
},
"additionalProperties": true
}
Example:
{"title": "The course title." }
HTTP status code 400
bad request
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "messageSchema",
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{ "message" : "Explanation of why the request is bad."}
HTTP status code 404
not found
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "messageSchema",
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{"message": "Course not found" }
Returns the launch link to use to preview this course
get /{tenant}/courses/{courseId}/preview
Returns the launch link to use to preview this course
URI Parameters
- tenant: required (string)
- courseId: required (string)
Serialized course ID
Query Parameters
- version: (integer - default: -1)
The version of this course to use. If not provided, the latest version will be used. The External ID version property should not be set.
- expiry: (integer - default: 0)
Number of seconds from now this link will expire in. Use 0 for no expiration.
- forceReview: (boolean - default: false)
Launch in review mode.
- startSco: (string - default: )
For SCORM, SCO identifier to override launch, overriding the normal sequencing.
- redirectOnExitUrl: (string - default: )
The URL the application should redirect to when the learner exits a course. If not specified, configured value will be used.
- configuration: (string - default: )
External configuration. Contains custom configuration properties defined by each LMS.
HTTP status code 200
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "launchLinkSchema",
"type": "object",
"properties": {
"launchLink": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{"launchLink":"/RusticiEngine/defaultui/launch.aspx?parameters..."}
HTTP status code 400
bad request
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "messageSchema",
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{ "message" : "Explanation of why the request is bad."}
HTTP status code 404
not found
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "messageSchema",
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Returns xAPI activity ID associated with this course
get /{tenant}/courses/{courseId}/xapiActivityId
Returns xAPI activity ID associated with this course
URI Parameters
- tenant: required (string)
- courseId: required (string)
Serialized course ID
Query Parameters
- version: (integer - default: -1)
The version of this course to use. If not provided, the latest version will be used. The External ID version property should not be set.
- configuration: (string - default: )
External configuration. Contains custom configuration properties defined by each LMS.
HTTP status code 200
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "idSchema",
"type": "object",
"properties": {
"id": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{"id": "http://example.org/example/activity/id" }
HTTP status code 400
bad request
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "messageSchema",
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{ "message" : "Explanation of why the request is bad."}
HTTP status code 404
not found
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "messageSchema",
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{"message": "Course not found or there is no xAPIActivityID because xAPI is not enabled" }
Bulk set configuration settings via POST request. If explicit is not set, then just ensure the effective value of this setting is as specified. If explicit is set, then actually record the specified value at this level, even if it already would have effectively had this value due to a default or lower level setting.
Returns the effective value of every setting at this level, as well as the effective value of any setting at a more specific level.
post /{tenant}/courses/{courseId}/configuration
Bulk set configuration settings via POST request. If explicit is not set, then just ensure the effective value of this setting is as specified. If explicit is set, then actually record the specified value at this level, even if it already would have effectively had this value due to a default or lower level setting.
URI Parameters
- tenant: required (string)
- courseId: required (string)
Serialized course ID
Query Parameters
- version: (integer - default: -1)
The version of this course to use. If not provided, the latest version will be used. The External ID version property should not be set.
- configuration: (string - default: )
External configuration. Contains custom configuration properties defined by each LMS.
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "settingsPostSchema",
"type": "object",
"properties":
{
"settings": {
"type": "array",
"items": {
"$ref": "settingsIndividualSchema"
}
}
}
}
Example:
{
"settings": [
{ "settingId": "id1", "value": "newValue" },
{ "settingId": "id2", "value": "anotherValue" }
]
}
HTTP status code 204
Request succeeded
HTTP status code 400
bad request
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "messageSchema",
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{ "message" : "Explanation of why the request is bad."}
get /{tenant}/courses/{courseId}/configuration
Returns the effective value of every setting at this level, as well as the effective value of any setting at a more specific level.
URI Parameters
- tenant: required (string)
- courseId: required (string)
Serialized course ID
Query Parameters
- version: (integer - default: -1)
The version of this course to use. If not provided, the latest version will be used. The External ID version property should not be set.
- configuration: (string - default: )
External configuration. Contains custom configuration properties defined by each LMS.
HTTP status code 200
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema#",
"title": "configListSchema",
"type": "object",
"properties": {
"configurationItems": {
"type": "array",
"items": {
"$schema": "http://json-schema.org/draft-03/schema#",
"title": "configurationItem",
"javaType": "RusticiSoftware.Engine.api.model.ConfigurationItem",
"type": "object",
"properties": {
"id": {
"type": "string"
},
"value": {
"type": "string"
}
},
"additionalProperties": true
},
"required": true
}
},
"additionalProperties": true
}
Example:
{
"configurationItems": [{
"id": "ApiRollupRegistrationPostBackUrl",
"value": ""
}, {
"id": "PlayerShowFinishButton",
"value": "YES"
}, {
"id": "PromptOnPlayerClose",
"value": "false"
}]
}
HTTP status code 400
bad request
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "messageSchema",
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{ "message" : "Explanation of why the request is bad."}
HTTP status code 404
not found
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "messageSchema",
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{"message": "Parent resource not found." }
Sets the value for this configuration setting, for the resource being configured.
Returns the effective value for this configuration setting for the resource being configured.
put /{tenant}/courses/{courseId}/configuration/{settingId}
Sets the value for this configuration setting, for the resource being configured.
URI Parameters
- tenant: required (string)
- courseId: required (string)
Serialized course ID
- settingId: required (string)
id for this configuration setting
Query Parameters
- version: (integer - default: -1)
The version of this course to use. If not provided, the latest version will be used. The External ID version property should not be set.
- configuration: (string - default: )
External configuration. Contains custom configuration properties defined by each LMS.
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "settingSchema",
"properties": {
"value": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{"value": "http://example.org" }
HTTP status code 204
request succeeded
HTTP status code 400
bad request
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "messageSchema",
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{"message": "Invalid configuration setting id." }
HTTP status code 404
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "messageSchema",
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{"message": "Registration not found." }
get /{tenant}/courses/{courseId}/configuration/{settingId}
Returns the effective value for this configuration setting for the resource being configured.
URI Parameters
- tenant: required (string)
- courseId: required (string)
Serialized course ID
- settingId: required (string)
id for this configuration setting
Query Parameters
- version: (integer - default: -1)
The version of this course to use. If not provided, the latest version will be used. The External ID version property should not be set.
- configuration: (string - default: )
External configuration. Contains custom configuration properties defined by each LMS.
HTTP status code 200
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "settingSchema",
"properties": {
"value": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{"value": "http://example.org" }
HTTP status code 400
bad request
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "messageSchema",
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{ "message" : "Explanation of why the request is bad."}
HTTP status code 404
not found
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "messageSchema",
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{"message": "Parent resource or configuration setting not found." }
Deletes the configuration setting at this specific configuration level.
Gets the value of the configuration setting set at this specific level. (This is different from the effective value; a setting can have an effective value from a less-specific level and return a 404 for this endpoint.)
delete /{tenant}/courses/{courseId}/configuration/{settingId}/atThisLevel
Deletes the configuration setting at this specific configuration level.
URI Parameters
- tenant: required (string)
- courseId: required (string)
Serialized course ID
- settingId: required (string)
id for this configuration setting
Query Parameters
- version: (integer - default: -1)
The version of this course to use. If not provided, the latest version will be used. The External ID version property should not be set.
- configuration: (string - default: )
External configuration. Contains custom configuration properties defined by each LMS.
HTTP status code 204
request succeeded
HTTP status code 400
bad request
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "messageSchema",
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{"message": "Invalid configuration setting id."}
HTTP status code 404
not found
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "messageSchema",
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{"message": "Parent resource or configuration setting not found at this level."}
get /{tenant}/courses/{courseId}/configuration/{settingId}/atThisLevel
Gets the value of the configuration setting set at this specific level. (This is different from the effective value; a setting can have an effective value from a less-specific level and return a 404 for this endpoint.)
URI Parameters
- tenant: required (string)
- courseId: required (string)
Serialized course ID
- settingId: required (string)
id for this configuration setting
Query Parameters
- version: (integer - default: -1)
The version of this course to use. If not provided, the latest version will be used. The External ID version property should not be set.
- configuration: (string - default: )
External configuration. Contains custom configuration properties defined by each LMS.
HTTP status code 200
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "settingSchema",
"properties": {
"value": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{"value": "http://example.org"}
HTTP status code 400
bad request
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "messageSchema",
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{"message": "Invalid configuration setting id."}
HTTP status code 404
not found
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "messageSchema",
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{"message": "Parent resource or configuration setting not found at this level."}
Returns the link to use to access the package properties editor for the course specified by courseId. A token will be used as part of the URL in order to secure the request to the package properties editor link generated.
get /{tenant}/courses/{courseId}/packagePropertiesLink
Returns the link to use to access the package properties editor for the course specified by courseId. A token will be used as part of the URL in order to secure the request to the package properties editor link generated.
URI Parameters
- tenant: required (string)
- courseId: required (string)
Serialized course ID
Query Parameters
- configuration: (string - default: )
External configuration. Contains custom configuration properties defined by each LMS.
- cssUrl: (string - default: )
URL to the stylesheet to use for the properties page
HTTP status code 200
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "linkSchema",
"type": "object",
"properties": {
"link": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{"link":"/RusticiEngine/defaultui/packagepropertieseditor.aspx?parameters..."}
HTTP status code 400
bad request
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "messageSchema",
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{ "message" : "Explanation of why the request is bad."}
HTTP status code 404
not found
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "messageSchema",
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Either the actual contents of the zip file to import may be posted, or JSON that references the remote location to import from. Note that parameters common to both modes must be specified on the query string. An import job will be started to import the posted or referenced file, and the import job ID will be returned. If the import is successful, the imported course will be registered using the courseId provided.
post /{tenant}/courses/importJobs
Either the actual contents of the zip file to import may be posted, or JSON that references the remote location to import from. Note that parameters common to both modes must be specified on the query string. An import job will be started to import the posted or referenced file, and the import job ID will be returned. If the import is successful, the imported course will be registered using the courseId provided.
URI Parameters
- tenant: required (string)
Headers
- Content-Type: (string)
The content type of the request. Must be "multipart/form-data" followed by a boundary when uploading a file to import, otherwise it must be application/json
Query Parameters
- configuration: (string - default: )
External configuration. Contains custom configuration properties defined by each LMS.
- course: required (string)
A unique identifier your application will use to identify the course after import. Your application is responsible both for generating this unique ID and for keeping track of the ID for later use.
- mayCreateNewVersion: (boolean - default: false)
Is it OK to create a new version of this course? If this is set to false and the course already exists, the upload will fail. If true and the course already exists then a new version will be created. No effect if the course doesn't already exist.
Body
Type: multipart/*
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "importRequestSchema",
"properties": {
"url": {
"type": "string",
"required": true,
"description": "URL path to the .zip package representing the course or the manifest file defining the course.)"
},
"courseName": {
"type": "string",
"required": true,
"description": "Display name for the course to import."
},
"webPathToCourse": {
"type": "string",
"required": false,
"default": "",
"description": "To be specified if, and only if, the url refers to a manifest rather than a .zip file. This is the URL to the root of the course, to be accessed by the end user. When specified, the content will not be downloaded, instead the manifest referenced by the url will be used to import the course definition only, so this needs to be a path that the content is already available at."
},
"adHocManifestInformation": {
"description": "The minimum required information to create a course without using an existing manifest. If used, 'url' must be the web path directly to the SCO or other content to launch, not to a .zip package.",
"$schema": "http://json-schema.org/draft-03/schema",
"title": "adHocManifestInformationSchema",
"javaType": "RusticiSoftware.Engine.api.model.AdHocManifestInformationSchema",
"properties": {
"learningStandard": {
"type": "string",
"required": true,
"description": "The learning standard for the course to import. Must be one of: 'SCORM 1.2', 'SCORM 2004 2nd Edition', 'SCORM 2004 3rd Edition', 'SCORM 2004 4th Edition', 'AICC', 'cmi5', 'Tin Can' (or 'xAPI')."
},
"title": {
"type": "string",
"required": true,
"description": "Title of the course to import."
},
"xapiActivityId": {
"type": "string",
"required": false,
"description": "The activity ID for an xAPI course. This can be omitted if the learning standard is not xAPI."
},
"cmi5PublisherId": {
"type": "string",
"required": false,
"description": "The publisher ID for a CMI5 course. This can be omitted if the learning standard is not CMI5."
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}
Example:
{
"url": "http://scorm.com/wp-content/assets/golf_examples/PIFS/RuntimeMinimumCalls_SCORM20043rdEdition.zip",
"courseName": "test course"
}
HTTP status code 200
The identifier for the import job
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "importRequestResultSchema",
"properties": {
"result": {
"description": "For backwards compatibility. All of the response information can be found in the importResult property",
"type": "string",
"required": true
},
"importResult": {
"$ref": "importResultSchema"
}
},
"additionalProperties": true
}
Example:
{
"result": "6386a504-09b0-4268-8aaa-e1b8c064b131",
"importResult": {
"jobId": "6386a504-09b0-4268-8aaa-e1b8c064b131",
"status": "RUNNING",
"parserWarnings": [],
"courseLanguages": [],
}
}
HTTP status code 400
bad request
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "messageSchema",
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{ "message" : "Explanation of why the request is bad."}
This method will check the status of an import job.
get /{tenant}/courses/importJobs/{importJobId}
This method will check the status of an import job.
URI Parameters
- tenant: required (string)
- importJobId: required (string)
Id received when the import job was submitted to the importJobs resource.
Query Parameters
- configuration: (string - default: )
External configuration. Contains custom configuration properties defined by each LMS.
HTTP status code 200
Import result
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "importResultSchema",
"javaType": "RusticiSoftware.Engine.api.model.ImportResultSchema",
"properties": {
"jobId": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"RUNNING",
"COMPLETE",
"ERROR"
]
},
"message": {
"type": "string"
},
"courseTitle": {
"type": "string",
"description": "obsolete, duplicate of title in course. To be removed in a future version of the API"
},
"webPathToCourse" : {
"type": "string",
"description": "web path to this course"
},
"parserWarnings": {
"type": "array",
"items": {
"type": "string"
}
},
"courseLanguages": {
"type": "array",
"items": {
"type": "string"
}
},
"course": {
"$ref": "courseSummarySchema"
}
}
}
Example:
{
"jobId": "6386a504-09b0-4268-8aaa-e1b8c064b131",
"status": "COMPLETE",
"message": "Import Successful",
"courseTitle": "Golf Explained - Run-time Advanced Calls",
"webPathToCourse": "/courses/dev/mysql/default/SCORM_2004_Golf_Test",
"parserWarnings": [],
"courseLanguages": [],
"course": {
"id": "scorm2004golf",
"version": 0,
"title": "Golf Explained - Run-time Advanced Calls",
"courseLearningStandard": "SCORM_2004_3RD_EDITION",
"registrationCount": 0,
"updated": "2017-05-12T16:43:48.166Z"
}
}
HTTP status code 400
bad request
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "messageSchema",
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{ "message" : "Explanation of why the request is bad."}
HTTP status code 404
not found
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "messageSchema",
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{"message": "importJob not found" }
Returns a link that can be used to import a course. A token will be used as part of the URL in order to secure the request to the import link generated, and because of this token, the API's basic auth credentials are not required. Use this to get a link that you can form POST to with your import file. We generally recommend using /importLink to generate an import link that can be safely exposed for use in a front-end application, and we suggest using /importJobs for direct communication between Engine and your application.
get /{tenant}/courses/importLink
Returns a link that can be used to import a course. A token will be used as part of the URL in order to secure the request to the import link generated, and because of this token, the API's basic auth credentials are not required. Use this to get a link that you can form POST to with your import file. We generally recommend using /importLink to generate an import link that can be safely exposed for use in a front-end application, and we suggest using /importJobs for direct communication between Engine and your application.
URI Parameters
- tenant: required (string)
Query Parameters
- configuration: (string - default: )
External configuration. Contains custom configuration properties defined by each LMS.
- course: required (string)
Course ID for the new import
- redirectUrl: (string - default: )
Url to forward to after import completes
HTTP status code 200
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "linkSchema",
"type": "object",
"properties": {
"link": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{"link":"/RusticiEngine/tools/import.aspx?parameters..."}
HTTP status code 400
bad request
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "messageSchema",
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{ "message" : "Explanation of why the request is bad."}
HTTP status code 404
not found
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "messageSchema",
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
registrations
Create, list, or delete registrations.
Gets a list of registrations including a summary of the status of each registration. Note the "since" parameter exists to allow retreiving only registrations that have changed, and the "before" parameter exists to allow retreiving only registrations that haven't changed
get /{tenant}/registrations
Gets a list of registrations including a summary of the status of each registration. Note the "since" parameter exists to allow retreiving only registrations that have changed, and the "before" parameter exists to allow retreiving only registrations that haven't changed
URI Parameters
- tenant: required (string)
Query Parameters
- more: (string - default: )
Value for this parameter will be provided in the 'more' property of registrations lists, where needed. An opaque value, construction and parsing may change without notice.
- before: (string - default: )
Only registrations updated before the specified ISO 8601 TimeStamp (inclusive) are included. If a time zone is not specified, the server's time zone will be used.
- since: (string - default: )
Only registrations updated since the specified ISO 8601 TimeStamp (inclusive) are included. If a time zone is not specified, the server's time zone will be used.
- configuration: (string - default: )
External configuration. Contains custom configuration properties defined by each LMS.
- courseId: (string - default: )
Only registrations for the specified course id will be included.
- learnerId: (string - default: )
Only registrations for the specified learner id will be included.
HTTP status code 200
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema#",
"title": "registrationListSchema",
"type": "object",
"properties": {
"registrations": {
"type": "array",
"items": {
"$ref": "registrationSummarySchema"
},
"required": true
},
"more": {
"type": "string"
}
}
}
Example:
{
"registrations": [
{
"id": "tcvmbscgolf",
"instance": 0,
"updated": "2015-11-04T20:32:37.000Z",
"registrationCompletion": "UNKNOWN",
"registrationSuccess": "PASSED",
"score": {
"scaled": 93,
"additionalProperties": {}
},
"totalSecondsTracked": 0,
"course": {
"id": "tcvm",
"version": 0,
"title": "Tin Can Golf Example",
"courseLearningStandard": "XAPI",
"updated": "2015-11-04T15:32:19.000Z"
},
"learner": {
"id": "ConsoleLearner",
"firstName": "Console",
"lastName": "Learner"
},
"globalObjectives": [],
"additionalProperties": {}
},
{
"id": "059053c1-564e-4dfc-9df4-236623f91cc6",
"instance": 0,
"updated": "2015-11-04T22:05:49.000Z",
"registrationCompletion": "INCOMPLETE",
"registrationSuccess": "UNKNOWN",
"totalSecondsTracked": 0,
"course": {
"id": "2",
"version": 0,
"title": "Golf Explained - Run-time Basic Calls",
"courseLearningStandard": "SCORM_12",
"updated": "2015-10-27T19:07:49.000Z"
},
"learner": {
"id": "testLearnerId",
"firstName": "Last",
"lastName": "First"
},
"globalObjectives": [],
"additionalProperties": {}
}
],
"more": "/RusticiEngine/api/v1/default/registrations?more=AAABUNSI1kgAAAEi",
"additionalProperties": {}
}
HTTP status code 400
bad request
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "messageSchema",
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{ "message" : "Explanation of why the request is bad."}
HTTP status code 404
not found
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "messageSchema",
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{"message": "registrations not found" }
Gets the number of registrations, optionally for the specified course ID
get /{tenant}/registrations/count
Gets the number of registrations, optionally for the specified course ID
URI Parameters
- tenant: required (string)
Query Parameters
- configuration: (string - default: )
External configuration. Contains custom configuration properties defined by each LMS.
- courseId: (string - default: )
Only registrations for the specified course id will be included.
HTTP status code 200
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "integerResultSchema",
"properties": {
"result": {
"type": "integer",
"required": true
}
},
"additionalProperties": true
}
Example:
{"result": 100 }
HTTP status code 400
bad request
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "messageSchema",
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{ "message" : "Explanation of why the request is bad."}
HTTP status code 404
not found
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "messageSchema",
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{"message": "Course not found" }
Delete the registration with registrationId = {registrationId}
Does this registration exist? You can also use the 'instance' parameter to check if a particular instance of a registrations exists.
delete /{tenant}/registrations/{registrationId}
Delete the registration with registrationId = {registrationId}
URI Parameters
- tenant: required (string)
- registrationId: required (string)
id for this registration
Query Parameters
- configuration: (string - default: )
External configuration. Contains custom configuration properties defined by each LMS.
HTTP status code 204
request succeeded
HTTP status code 400
bad request
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "messageSchema",
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{ "message" : "Explanation of why the request is bad."}
HTTP status code 404
not found
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "messageSchema",
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{"message": "registration not found" }
get /{tenant}/registrations/{registrationId}
Does this registration exist? You can also use the 'instance' parameter to check if a particular instance of a registrations exists.
URI Parameters
- tenant: required (string)
- registrationId: required (string)
id for this registration
Query Parameters
- instance: (integer - default: -1)
The instance of this registration to use. If not provided, the latest instance will be used. The External ID instance property should not be set.
- configuration: (string - default: )
External configuration. Contains custom configuration properties defined by each LMS.
HTTP status code 200
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "minimalRegistrationSummarySchema",
"properties": {
"exists": {
"type": "boolean",
"required": true
}
}
}
Example:
{ "exists" : true}
HTTP status code 400
bad request
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "messageSchema",
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{ "message" : "Explanation of why the request is bad."}
HTTP status code 404
not found
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "messageSchema",
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{"message": "registration not found" }
Get all the instances of this the registration specified by the registration ID
get /{tenant}/registrations/{registrationId}/instances
Get all the instances of this the registration specified by the registration ID
URI Parameters
- tenant: required (string)
- registrationId: required (string)
id for this registration
Query Parameters
- more: (string - default: )
Value for this parameter will be provided in the 'more' property of instances lists, where needed. An opaque value, construction and parsing may change without notice.
- before: (string - default: )
Only instances updated before the specified ISO 8601 TimeStamp (inclusive) are included. If a time zone is not specified, the server's time zone will be used.
- since: (string - default: )
Only instances updated since the specified ISO 8601 TimeStamp (inclusive) are included. If a time zone is not specified, the server's time zone will be used.
- configuration: (string - default: )
External configuration. Contains custom configuration properties defined by each LMS.
HTTP status code 200
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema#",
"title": "registrationListSchema",
"type": "object",
"properties": {
"registrations": {
"type": "array",
"items": {
"$ref": "registrationSummarySchema"
},
"required": true
},
"more": {
"type": "string"
}
}
}
Example:
{
"registrations": [
{
"id": "myRegId",
"instance": 0,
"updated": "2015-11-04T20:32:37.000Z",
"registrationCompletion": "UNKNOWN",
"registrationSuccess": "PASSED",
"score": {
"scaled": 93,
"additionalProperties": {}
},
"totalSecondsTracked": 0,
"course": {
"id": "tcvm",
"version": 0,
"title": "Tin Can Golf Example",
"courseLearningStandard": "XAPI",
"updated": "2015-11-04T15:32:19.000Z"
},
"learner": {
"id": "ConsoleLearner",
"firstName": "Console",
"lastName": "Learner"
},
"globalObjectives": [],
"additionalProperties": {}
},
{
"id": "myRegId",
"instance": 1,
"updated": "2015-11-04T22:05:49.000Z",
"registrationCompletion": "INCOMPLETE",
"registrationSuccess": "UNKNOWN",
"totalSecondsTracked": 0,
"course": {
"id": "2",
"version": 0,
"title": "Golf Explained - Run-time Basic Calls",
"courseLearningStandard": "SCORM_12",
"updated": "2015-10-27T19:07:49.000Z"
},
"learner": {
"id": "testLearnerId",
"firstName": "Last",
"lastName": "First"
},
"globalObjectives": [],
"additionalProperties": {}
}
],
"more": "/RusticiEngine/api/v1/default/registrations/myRegId/instances?more=AAABUNSI1kgAAAEi",
"additionalProperties": {}
}
HTTP status code 400
bad request
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "messageSchema",
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{ "message" : "Explanation of why the request is bad."}
HTTP status code 404
not found
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "messageSchema",
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{"message": "Registration not found"}
Bulk set configuration settings via POST request. If explicit is not set, then just ensure the effective value of this setting is as specified. If explicit is set, then actually record the specified value at this level, even if it already would have effectively had this value due to a default or lower level setting.
Returns the effective value of every setting at this level, as well as the effective value of any setting at a more specific level.
post /{tenant}/registrations/{registrationId}/configuration
Bulk set configuration settings via POST request. If explicit is not set, then just ensure the effective value of this setting is as specified. If explicit is set, then actually record the specified value at this level, even if it already would have effectively had this value due to a default or lower level setting.
URI Parameters
- tenant: required (string)
- registrationId: required (string)
id for this registration
Query Parameters
- instance: (integer - default: -1)
The instance of this registration to use. If not provided, the latest instance will be used. The External ID instance property should not be set.
- configuration: (string - default: )
External configuration. Contains custom configuration properties defined by each LMS.
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "settingsPostSchema",
"type": "object",
"properties":
{
"settings": {
"type": "array",
"items": {
"$ref": "settingsIndividualSchema"
}
}
}
}
Example:
{
"settings": [
{ "settingId": "id1", "value": "newValue" },
{ "settingId": "id2", "value": "anotherValue" }
]
}
HTTP status code 204
Request succeeded
HTTP status code 400
bad request
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "messageSchema",
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{ "message" : "Explanation of why the request is bad."}
get /{tenant}/registrations/{registrationId}/configuration
Returns the effective value of every setting at this level, as well as the effective value of any setting at a more specific level.
URI Parameters
- tenant: required (string)
- registrationId: required (string)
id for this registration
Query Parameters
- instance: (integer - default: -1)
The instance of this registration to use. If not provided, the latest instance will be used. The External ID instance property should not be set.
- configuration: (string - default: )
External configuration. Contains custom configuration properties defined by each LMS.
HTTP status code 200
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema#",
"title": "configListSchema",
"type": "object",
"properties": {
"configurationItems": {
"type": "array",
"items": {
"$schema": "http://json-schema.org/draft-03/schema#",
"title": "configurationItem",
"javaType": "RusticiSoftware.Engine.api.model.ConfigurationItem",
"type": "object",
"properties": {
"id": {
"type": "string"
},
"value": {
"type": "string"
}
},
"additionalProperties": true
},
"required": true
}
},
"additionalProperties": true
}
Example:
{
"configurationItems": [{
"id": "ApiRollupRegistrationPostBackUrl",
"value": ""
}, {
"id": "PlayerShowFinishButton",
"value": "YES"
}, {
"id": "PromptOnPlayerClose",
"value": "false"
}]
}
HTTP status code 400
bad request
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "messageSchema",
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{ "message" : "Explanation of why the request is bad."}
HTTP status code 404
not found
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "messageSchema",
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{"message": "Parent resource not found." }
Sets the value for this configuration setting, for the resource being configured.
Returns the effective value for this configuration setting for the resource being configured.
put /{tenant}/registrations/{registrationId}/configuration/{settingId}
Sets the value for this configuration setting, for the resource being configured.
URI Parameters
- tenant: required (string)
- registrationId: required (string)
id for this registration
- settingId: required (string)
id for this configuration setting
Query Parameters
- instance: (integer - default: -1)
The instance of this registration to use. If not provided, the latest instance will be used. The External ID instance property should not be set.
- configuration: (string - default: )
External configuration. Contains custom configuration properties defined by each LMS.
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "settingSchema",
"properties": {
"value": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{"value": "http://example.org" }
HTTP status code 204
request succeeded
HTTP status code 400
bad request
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "messageSchema",
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{"message": "Invalid configuration setting id." }
HTTP status code 404
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "messageSchema",
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{"message": "Registration not found." }
get /{tenant}/registrations/{registrationId}/configuration/{settingId}
Returns the effective value for this configuration setting for the resource being configured.
URI Parameters
- tenant: required (string)
- registrationId: required (string)
id for this registration
- settingId: required (string)
id for this configuration setting
Query Parameters
- instance: (integer - default: -1)
The instance of this registration to use. If not provided, the latest instance will be used. The External ID instance property should not be set.
- configuration: (string - default: )
External configuration. Contains custom configuration properties defined by each LMS.
HTTP status code 200
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "settingSchema",
"properties": {
"value": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{"value": "http://example.org" }
HTTP status code 400
bad request
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "messageSchema",
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{ "message" : "Explanation of why the request is bad."}
HTTP status code 404
not found
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "messageSchema",
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{"message": "Parent resource or configuration setting not found." }
Deletes the configuration setting at this specific configuration level.
Gets the value of the configuration setting set at this specific level. (This is different from the effective value; a setting can have an effective value from a less-specific level and return a 404 for this endpoint.)
delete /{tenant}/registrations/{registrationId}/configuration/{settingId}/atThisLevel
Deletes the configuration setting at this specific configuration level.
URI Parameters
- tenant: required (string)
- registrationId: required (string)
id for this registration
- settingId: required (string)
id for this configuration setting
Query Parameters
- instance: (integer - default: -1)
The instance of this registration to use. If not provided, the latest instance will be used. The External ID instance property should not be set.
- configuration: (string - default: )
External configuration. Contains custom configuration properties defined by each LMS.
HTTP status code 204
request succeeded
HTTP status code 400
bad request
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "messageSchema",
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{"message": "Invalid configuration setting id."}
HTTP status code 404
not found
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "messageSchema",
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{"message": "Parent resource or configuration setting not found at this level."}
get /{tenant}/registrations/{registrationId}/configuration/{settingId}/atThisLevel
Gets the value of the configuration setting set at this specific level. (This is different from the effective value; a setting can have an effective value from a less-specific level and return a 404 for this endpoint.)
URI Parameters
- tenant: required (string)
- registrationId: required (string)
id for this registration
- settingId: required (string)
id for this configuration setting
Query Parameters
- instance: (integer - default: -1)
The instance of this registration to use. If not provided, the latest instance will be used. The External ID instance property should not be set.
- configuration: (string - default: )
External configuration. Contains custom configuration properties defined by each LMS.
HTTP status code 200
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "settingSchema",
"properties": {
"value": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{"value": "http://example.org"}
HTTP status code 400
bad request
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "messageSchema",
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{"message": "Invalid configuration setting id."}
HTTP status code 404
not found
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "messageSchema",
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{"message": "Parent resource or configuration setting not found at this level."}
Returns xAPI registration ID associated with this registration
get /{tenant}/registrations/{registrationId}/xapiRegistrationId
Returns xAPI registration ID associated with this registration
URI Parameters
- tenant: required (string)
- registrationId: required (string)
id for this registration
Query Parameters
- configuration: (string - default: )
External configuration. Contains custom configuration properties defined by each LMS.
- instance: (integer - default: -1)
The instance of this registration to get the xAPI registration ID for. If not provided, the latest instance will be used. The External ID instance property should not be set.
HTTP status code 200
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "idSchema",
"type": "object",
"properties": {
"id": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{"id": "de305d54-75b4-431b-adb2-eb6b9e546013" }
HTTP status code 400
bad request
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "messageSchema",
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{ "message" : "Explanation of why the request is bad."}
HTTP status code 404
not found
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "messageSchema",
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{"message": "Registration not found or there is no xAPIRegistrationId because xAPI is not enabled" }
gets the last instance ID that exists for this registration
get /{tenant}/registrations/{registrationId}/lastInstance
gets the last instance ID that exists for this registration
URI Parameters
- tenant: required (string)
- registrationId: required (string)
id for this registration
Query Parameters
- configuration: (string - default: )
External configuration. Contains custom configuration properties defined by each LMS.
HTTP status code 200
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "integerResultSchema",
"properties": {
"result": {
"type": "integer",
"required": true
}
},
"additionalProperties": true
}
Example:
{ "result" : 42}
HTTP status code 400
bad request
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "messageSchema",
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{ "message" : "Explanation of why the request is bad."}
HTTP status code 404
not found
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "messageSchema",
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
delete registration progress (clear registration)
Get registration summary
delete /{tenant}/registrations/{registrationId}/progress
delete registration progress (clear registration)
URI Parameters
- tenant: required (string)
- registrationId: required (string)
id for this registration
Query Parameters
- configuration: (string - default: )
External configuration. Contains custom configuration properties defined by each LMS.
HTTP status code 204
request succeeded
HTTP status code 400
bad request
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "messageSchema",
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{ "message" : "Explanation of why the request is bad."}
HTTP status code 404
not found
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "messageSchema",
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{"message": "Registration not found" }
get /{tenant}/registrations/{registrationId}/progress
Get registration summary
URI Parameters
- tenant: required (string)
- registrationId: required (string)
id for this registration
Query Parameters
- configuration: (string - default: )
External configuration. Contains custom configuration properties defined by each LMS.
- instance: (integer - default: -1)
The instance of this registration to get progress for. If not provided, the latest instance will be used. The External ID instance property should not be set.
HTTP status code 200
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "registrationSummarySchema",
"javaType": "RusticiSoftware.Engine.api.model.RegistrationSummarySchema",
"properties": {
"id": {
"description" : "Registration ID (Ignored for update)",
"type": "string"
},
"xapiRegistrationId": {
"description" : "xAPI Registration ID",
"type": "string"
},
"dispatchId": {
"description" : "Dispatch ID for this registration, if applicable",
"type": "string"
},
"instance": {
"description" : "Instance of this registration (typically used for reoccurring training), starts at 0 (Ignored for update)",
"type": "integer"
},
"updated": {
"type": "string"
},
"registrationCompletion": {
"description" : "Has this registration been completed?",
"type": "string",
"default": "UNKNOWN",
"enum": [
"UNKNOWN",
"COMPLETED",
"INCOMPLETE"
]
},
"registrationCompletionAmount": {
"description": "A decimal value between 0 and 1 representing the percentage of this course that the learner has completed so far, if known. Note: for learning standards other than SCORM 2004 4th Edition, this value is based on the percentage of activities completed/passed. This means that single-activity courses in those standards will always return either 0 or 1.",
"type": "number"
},
"registrationSuccess": {
"description" : "Has this registration been passed?",
"type": "string",
"default": "Unknown",
"enum": [
"Unknown",
"Passed",
"Failed"
]
},
"score": {
"type": "object",
"title": "scoreSchema",
"javaType": "RusticiSoftware.Engine.api.model.ScoreSchema",
"properties": {
"scaled": {
"description": "Scaled score between 0 and 100",
"type": "number"
}
}
},
"totalSecondsTracked": {
"description" : "How long the learner spent taking this registration, in seconds.",
"type": "number"
},
"firstAccessDate": {
"description" : "ISO 8601 time-stamp of the learner's first interaction with this registration.",
"type": "string"
},
"lastAccessDate": {
"description" : "ISO 8601 time-stamp of the learner's last interaction with this registration.",
"type": "string"
},
"completedDate": {
"description" : "ISO 8601 time-stamp of the learner's first completion of this registration.",
"type": "string"
},
"createdDate": {
"description" : "ISO 8601 time-stamp of the creation of this registration.",
"type": "string"
},
"course": {
"description" : "Information about the course associated with this registration. (Ignored for update)",
"$ref": "courseSummarySchema"
},
"learner": {
"description" : "Information about the learner associated with this registration. (Ignored for update)",
"$schema": "http://json-schema.org/draft-03/schema#",
"type": "object",
"javaType": "RusticiSoftware.Engine.api.model.LearnerSchema",
"title": "learnerSchema",
"properties": {
"id": {
"type": "string"
},
"firstName": {
"type": "string"
},
"lastName": {
"type": "string"
}
},
"additionalProperties": true
},
"globalObjectives": {
"description" : "Global objectives for this registration",
"type": "array",
"items": {
"$ref": "objectiveSchema"
}
},
"sharedData": {
"description" : "SCORM 2004 4th edition shared data buckets for this registration",
"type": "array",
"items": {
"$ref": "sharedDataEntrySchema"
}
},
"suspendedActivityId": {
"description" : "The SCORM activity ID of the suspended activity, if any.",
"type": "string"
},
"activityDetails": {
"type": "object",
"id": "activityDetails",
"title": "activityResultSchema",
"description": "Detailed progress on this activity for this registration",
"javaType": "RusticiSoftware.Engine.api.model.ActivityResultSchema",
"properties": {
"id": {
"description" : "SCORM activity ID",
"type": "string"
},
"title": {
"description": "Title of this activity/SCO (Ignored for update)",
"type": "string"
},
"activityProgressKnown" : {
"description": " Determines whether the data in the 'Activity' properties is known. If false then they are unknown (not initialized) and unreliable. The 'Activity' properties include: ActivityAbsoluteDuration, ActivityExperiencedDuration, and ActivityAttemptCount",
"type": "boolean",
"default": false
},
"attempts": {
"description": "The number of times that the learner attempted this activity.",
"type": "integer",
"default": 0
},
"activityCompletion": {
"description": "Represents whether the current attempt on the activity has been completed",
"type": "string",
"default": "UNKNOWN",
"enum": [
"UNKNOWN",
"COMPLETED",
"INCOMPLETE"
]
},
"previousAttemptCompletion": {
"description": "Represents whether the previous attempt on the activity has been completed",
"type": "string",
"default": "Unknown",
"enum": [
"Unknown",
"Completed",
"Incomplete"
]
},
"activitySuccess": {
"success": "Pass/fail status of primary objective for this activity (Ignored for update)",
"type": "string",
"default": "UNKNOWN",
"enum": [
"UNKNOWN",
"PASSED",
"FAILED"
]
},
"score": {
"success": "Score of primary objective for this activity (Ignored for update)",
"type": "object",
"title": "scoreSchema",
"javaType": "RusticiSoftware.Engine.api.model.ScoreSchema",
"properties": {
"scaled": {
"description": "Scaled score between 0 and 100",
"type": "number"
}
}
},
"timeTracked": {
"description": "The total time the learner spent taking this SCO during the current sequencing attempt (Ignored for update)",
"type": "string"
},
"activityAbsoluteDuration": {
"description": "The total time that the learner had access to the activity.",
"type": "string"
},
"attemptAbsoluteDuration": {
"description": "The total time that the learner had access to the activity during the current attempt.",
"type": "string"
},
"firstCompletionTime": {
"description": "ISO 8601 time-stamp of the learner's first completion of this activity.",
"type": "string"
},
"activityStartTime": {
"description": "ISO 8601 time-stamp of the learner's first launch of this activity.",
"type": "string"
},
"attemptStartTime": {
"description": "ISO 8601 time-stamp of the learner's first launch of this activity for the current attempt.",
"type": "string"
},
"attemptedDuringThisAttempt": {
"type": "boolean",
"default": false
},
"completionAmount": {
"description": "Represents how much of the current attempt on the activity has been completed as a number between 0-100",
"type": "object",
"title": "completionAmountSchema",
"javaType": "RusticiSoftware.Engine.api.model.CompletionAmountSchema",
"properties": {
"scaled": {
"description": "Scaled completion amount between 0 and 100",
"type": "number"
}
}
},
"suspended": {
"description": "Has this activity has been paused so that it can be resumed with its current state at a later time?",
"type": "boolean",
"default": false
},
"active": {
"description": "Represents whether this activity is currently on the path of activities being attempted",
"type": "boolean",
"default": false
},
"included": {
"description": "Represents whether this activity is actually included by its parent in the activities it will deliver (vs being hidden by selection controls)",
"type": "boolean",
"default": false
},
"ordinal": {
"description": "Represents the order in which this activity will be delivered in the context of its parent. Some activities have randomization controls which change the order in which this children are delivered.",
"type": "integer",
"default": 0
},
"selectedChildren": {
"description": "Specifies whether this activity has already selected which of its children it will deliver.",
"type": "boolean",
"default": false
},
"randomizedChildren": {
"description": "Specifies whether this activity has already randomized the deliver order of its children.",
"type": "boolean",
"default": false
},
"children": {
"description": "Child activities of this activity.",
"type": "array",
"items": {
"$ref": "#/properties/activityDetails"
}
},
"objectives": {
"description": "Objectives for this activity",
"type": "array",
"items": {
"$ref": "objectiveSchema"
}
},
"staticProperties": {
"description": "Properties associated with this activity that were read from the manifest and cannot be changed (Ignored for update).",
"type": "object",
"javaType": "RusticiSoftware.Engine.api.model.StaticPropertiesSchema",
"title": "staticPropertiesSchema",
"properties": {
"completionThreshold": {
"type": "string"
},
"launchData": {
"type": "string"
},
"maxTimeAllowed": {
"type": "string"
},
"scaledPassingScore": {
"type": "number"
},
"scaledPassingScoreUsed": {
"type": "boolean",
"default": false
},
"timeLimitAction": {
"type": "string"
}
}
},
"runtime": {
"description": "Runtime (vs sequencing) information for this activity.",
"type": "object",
"javaType": "RusticiSoftware.Engine.api.model.RuntimeSchema",
"title": "runtimeSchema",
"properties": {
"completionStatus": {
"type": "string"
},
"credit": {
"type": "string"
},
"entry": {
"type": "string"
},
"exit": {
"description": "Exit status for the SCO",
"type": "string",
"default": "Unknown",
"enum": [
"Unknown",
"TimeOut",
"Suspend",
"Logout",
"Normal"
]
},
"learnerPreference": {
"description": "Learner preferences. Read from the manifest and cannot be changed (Ignored for update).",
"type": "object",
"javaType": "RusticiSoftware.Engine.api.model.LearnerPreferenceSchema",
"title": "learnerPreferenceSchema",
"properties": {
"audioLevel": {
"type": "number"
},
"language": {
"type": "string"
},
"deliverySpeed": {
"type": "number"
},
"audioCaptioning": {
"type": "integer"
}
}
},
"location": {
"description": "Represents the current location of the learner within the SCO, aka the bookmark. This data is a free text field that format of which is determined by the SCO.",
"type": "string"
},
"mode": {
"description": "Last launch mode of the SCO",
"type": "string",
"default": "Normal",
"enum": [
"Normal",
"Browse",
"Review"
]
},
"progressMeasure": {
"description": "The amount of progress the learner has made towards completing the SCO measured as a double from 0-1.",
"type": "string"
},
"scoreScaled": {
"description": "The score the learner achieved on this SCO normalized as a double between 0-1.",
"type": "string"
},
"scoreRaw": {
"description": "The raw score (not normalized to any range) that the learner achieved on this SCO.",
"type": "string"
},
"scoreMin": {
"description": "The minimum score the learner could have achieved on this SCO.",
"type": "string"
},
"scoreMax": {
"description": " The maximum score the learner could have achieved on this SCO..",
"type": "string"
},
"totalTime": {
"description": "The total time the learner spent taking this SCO during the current sequencing attempt (which may last several sessions) as reported by the SCO",
"type": "string"
},
"timeTracked": {
"description": "The total time the learner spent taking this SCO during the current sequencing attempt (which may last several sessions) as tracked by the system. For AICC courses, this column will hold the time spent in the most recent session and will not track the total time spent in the course.",
"type": "string"
},
"successStatus": {
"description": "Success status of the SCO",
"type": "string",
"default": "Unknown",
"enum": [
"Unknown",
"Passed",
"Failed"
]
},
"suspendData": {
"description": "A block of free text data that the SCO has stored to persist its state.",
"type": "string"
},
"learnerComments": {
"description": "The comments that the SCO reported to the LMS.",
"type": "array",
"items": {
"$ref": "commentSchema"
}
},
"lmsComments": {
"description": "The comments that the LMS may report to the SCO",
"type": "array",
"items": {
"$ref": "commentSchema"
}
},
"runtimeInteractions": {
"description": "The interactions that the SCO reported to the LMS.",
"type": "array",
"items": {
"$schema": "http://json-schema.org/draft-03/schema",
"title": "runtimeInteractionSchema",
"type": "object",
"javaType": "RusticiSoftware.Engine.api.model.RuntimeInteractionSchema",
"properties": {
"id": {
"description": "The interaction ID",
"type": "string"
},
"type": {
"description": "The interaction type",
"type": "string",
"default": "Undefined",
"enum": [
"Undefined",
"TrueFalse",
"Choice",
"FillIn",
"LongFillIn",
"Likert",
"Matching",
"Performance",
"Sequencing",
"Numeric",
"Other"
]
},
"objectives": {
"description": "The learning objectives (ids) that this interaction addresses",
"type": "array",
"items": {
"type": "string"
}
},
"timestamp": {
"description": "The timestamp of when the interaction was reported, in the format provided by the SCO",
"type": "string"
},
"timestampUtc": {
"description": "The ISO 8601 timestamp of when the interaction was reported.",
"type": "string"
},
"correctResponses": {
"description": "The correct responses to this interaction",
"type": "array",
"items": {
"type": "string"
}
},
"weighting": {
"description": "The weight this interaction carries relative to the other interactions in the SCO",
"type": "string"
},
"learnerResponse": {
"description": "The correct responses to this interaction",
"type": "string"
},
"result": {
"description": "The result of the interaction. Did the learner answer correctly, etc. Either correct, incorrect, unanticipated, neutral, or a numeric value",
"type": "string"
},
"latency": {
"description": "Iso8601TimeSpan representing the amount of time it took for the learner to make the interaction, i.e. how long it took the learner to answer the question.",
"type": "string"
},
"description": {
"description": "A textual description of the interaction",
"type": "string"
}
}
}
},
"runtimeObjectives": {
"type": "array",
"items": {
"$schema": "http://json-schema.org/draft-03/schema",
"title": "runtimeObjectiveSchema",
"type": "object",
"javaType": "RusticiSoftware.Engine.api.model.RuntimeObjectiveSchema",
"properties": {
"id": {
"description": "The objective ID",
"type": "string"
},
"scoreScaled": {
"description": "The score the learner achieved on this objective normalized as a double between 0-1. (or null)",
"type": "string"
},
"scoreMin": {
"description": "The minimum score the learner could have achieved on this objective. (null or numeric)",
"type": "string"
},
"scoreMax": {
"description": "The maximum score the learner could have achieved on this objective. (null or numeric)",
"type": "string"
},
"scoreRaw": {
"description": "The raw score (not normalized to any range) that the learner achieved on this objective. (null or numeric)",
"type": "string"
},
"successStatus": {
"description": "Success status of this objective",
"type": "string",
"default": "Unknown",
"enum": [
"Unknown",
"Passed",
"Failed"
]
},
"completionStatus": {
"description": "Completion status of this objective",
"type": "string",
"default": "Unknown",
"enum": [
"Unknown",
"Completed",
"Incomplete",
"Not_Attempted",
"Browsed"
]
},
"progressMeasure": {
"description": "The amount of progress the learner has made towards completing the objective measured as a double from 0-1. (or null)",
"type": "string"
},
"description": {
"description": "A textual description of the objective",
"type": "string"
}
}
}
}
}
}
}
}
}
}
Example:
{
"id": "asdfsd",
"instance": 0,
"updated": "2017-04-18T16:06:36.000Z",
"registrationCompletion": "COMPLETED",
"registrationSuccess": "PASSED",
"score":{
"scaled":87
},
"totalSecondsTracked": 0,
"firstAccessDate":"2017-04-18T16:06:15.000Z",
"lastAccessDate":"2017-04-18T16:06:36.000Z",
"completedDate":"2017-04-18T16:06:36.000Z",
"createdDate":"2017-04-18T16:03:40.000Z",
"course": {
"id": "d8cf7b40-5c42-420b-a276-f5e4364a3d65",
"version": 0,
"title": "Golf Explained - Metadata Example",
"courseLearningStandard": "SCORM_2004_3_RD_EDITION",
"registrationCount":2,
"updated": "2017-04-18T16:06:36.000Z"
},
"learner": {
"id": "ConsoleLearner",
"firstName": "Console",
"lastName": "Learner"
},
"globalObjectives": [],
"additionalProperties": {}
}
HTTP status code 400
bad request
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "messageSchema",
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{ "message" : "Explanation of why the request is bad."}
HTTP status code 404
not found
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "messageSchema",
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Get detailed registration progress. Note: the data returned is the same as for /progress, except that 'activityDetails' is populated where applicable
get /{tenant}/registrations/{registrationId}/progress/detail
Get detailed registration progress. Note: the data returned is the same as for /progress, except that 'activityDetails' is populated where applicable
URI Parameters
- tenant: required (string)
- registrationId: required (string)
id for this registration
Query Parameters
- configuration: (string - default: )
External configuration. Contains custom configuration properties defined by each LMS.
- instance: (integer - default: -1)
The instance of this registration to get progress for. If not provided, the latest instance will be used. The External ID instance property should not be set.
HTTP status code 200
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "registrationSummarySchema",
"javaType": "RusticiSoftware.Engine.api.model.RegistrationSummarySchema",
"properties": {
"id": {
"description" : "Registration ID (Ignored for update)",
"type": "string"
},
"xapiRegistrationId": {
"description" : "xAPI Registration ID",
"type": "string"
},
"dispatchId": {
"description" : "Dispatch ID for this registration, if applicable",
"type": "string"
},
"instance": {
"description" : "Instance of this registration (typically used for reoccurring training), starts at 0 (Ignored for update)",
"type": "integer"
},
"updated": {
"type": "string"
},
"registrationCompletion": {
"description" : "Has this registration been completed?",
"type": "string",
"default": "UNKNOWN",
"enum": [
"UNKNOWN",
"COMPLETED",
"INCOMPLETE"
]
},
"registrationCompletionAmount": {
"description": "A decimal value between 0 and 1 representing the percentage of this course that the learner has completed so far, if known. Note: for learning standards other than SCORM 2004 4th Edition, this value is based on the percentage of activities completed/passed. This means that single-activity courses in those standards will always return either 0 or 1.",
"type": "number"
},
"registrationSuccess": {
"description" : "Has this registration been passed?",
"type": "string",
"default": "Unknown",
"enum": [
"Unknown",
"Passed",
"Failed"
]
},
"score": {
"type": "object",
"title": "scoreSchema",
"javaType": "RusticiSoftware.Engine.api.model.ScoreSchema",
"properties": {
"scaled": {
"description": "Scaled score between 0 and 100",
"type": "number"
}
}
},
"totalSecondsTracked": {
"description" : "How long the learner spent taking this registration, in seconds.",
"type": "number"
},
"firstAccessDate": {
"description" : "ISO 8601 time-stamp of the learner's first interaction with this registration.",
"type": "string"
},
"lastAccessDate": {
"description" : "ISO 8601 time-stamp of the learner's last interaction with this registration.",
"type": "string"
},
"completedDate": {
"description" : "ISO 8601 time-stamp of the learner's first completion of this registration.",
"type": "string"
},
"createdDate": {
"description" : "ISO 8601 time-stamp of the creation of this registration.",
"type": "string"
},
"course": {
"description" : "Information about the course associated with this registration. (Ignored for update)",
"$ref": "courseSummarySchema"
},
"learner": {
"description" : "Information about the learner associated with this registration. (Ignored for update)",
"$schema": "http://json-schema.org/draft-03/schema#",
"type": "object",
"javaType": "RusticiSoftware.Engine.api.model.LearnerSchema",
"title": "learnerSchema",
"properties": {
"id": {
"type": "string"
},
"firstName": {
"type": "string"
},
"lastName": {
"type": "string"
}
},
"additionalProperties": true
},
"globalObjectives": {
"description" : "Global objectives for this registration",
"type": "array",
"items": {
"$ref": "objectiveSchema"
}
},
"sharedData": {
"description" : "SCORM 2004 4th edition shared data buckets for this registration",
"type": "array",
"items": {
"$ref": "sharedDataEntrySchema"
}
},
"suspendedActivityId": {
"description" : "The SCORM activity ID of the suspended activity, if any.",
"type": "string"
},
"activityDetails": {
"type": "object",
"id": "activityDetails",
"title": "activityResultSchema",
"description": "Detailed progress on this activity for this registration",
"javaType": "RusticiSoftware.Engine.api.model.ActivityResultSchema",
"properties": {
"id": {
"description" : "SCORM activity ID",
"type": "string"
},
"title": {
"description": "Title of this activity/SCO (Ignored for update)",
"type": "string"
},
"activityProgressKnown" : {
"description": " Determines whether the data in the 'Activity' properties is known. If false then they are unknown (not initialized) and unreliable. The 'Activity' properties include: ActivityAbsoluteDuration, ActivityExperiencedDuration, and ActivityAttemptCount",
"type": "boolean",
"default": false
},
"attempts": {
"description": "The number of times that the learner attempted this activity.",
"type": "integer",
"default": 0
},
"activityCompletion": {
"description": "Represents whether the current attempt on the activity has been completed",
"type": "string",
"default": "UNKNOWN",
"enum": [
"UNKNOWN",
"COMPLETED",
"INCOMPLETE"
]
},
"previousAttemptCompletion": {
"description": "Represents whether the previous attempt on the activity has been completed",
"type": "string",
"default": "Unknown",
"enum": [
"Unknown",
"Completed",
"Incomplete"
]
},
"activitySuccess": {
"success": "Pass/fail status of primary objective for this activity (Ignored for update)",
"type": "string",
"default": "UNKNOWN",
"enum": [
"UNKNOWN",
"PASSED",
"FAILED"
]
},
"score": {
"success": "Score of primary objective for this activity (Ignored for update)",
"type": "object",
"title": "scoreSchema",
"javaType": "RusticiSoftware.Engine.api.model.ScoreSchema",
"properties": {
"scaled": {
"description": "Scaled score between 0 and 100",
"type": "number"
}
}
},
"timeTracked": {
"description": "The total time the learner spent taking this SCO during the current sequencing attempt (Ignored for update)",
"type": "string"
},
"activityAbsoluteDuration": {
"description": "The total time that the learner had access to the activity.",
"type": "string"
},
"attemptAbsoluteDuration": {
"description": "The total time that the learner had access to the activity during the current attempt.",
"type": "string"
},
"firstCompletionTime": {
"description": "ISO 8601 time-stamp of the learner's first completion of this activity.",
"type": "string"
},
"activityStartTime": {
"description": "ISO 8601 time-stamp of the learner's first launch of this activity.",
"type": "string"
},
"attemptStartTime": {
"description": "ISO 8601 time-stamp of the learner's first launch of this activity for the current attempt.",
"type": "string"
},
"attemptedDuringThisAttempt": {
"type": "boolean",
"default": false
},
"completionAmount": {
"description": "Represents how much of the current attempt on the activity has been completed as a number between 0-100",
"type": "object",
"title": "completionAmountSchema",
"javaType": "RusticiSoftware.Engine.api.model.CompletionAmountSchema",
"properties": {
"scaled": {
"description": "Scaled completion amount between 0 and 100",
"type": "number"
}
}
},
"suspended": {
"description": "Has this activity has been paused so that it can be resumed with its current state at a later time?",
"type": "boolean",
"default": false
},
"active": {
"description": "Represents whether this activity is currently on the path of activities being attempted",
"type": "boolean",
"default": false
},
"included": {
"description": "Represents whether this activity is actually included by its parent in the activities it will deliver (vs being hidden by selection controls)",
"type": "boolean",
"default": false
},
"ordinal": {
"description": "Represents the order in which this activity will be delivered in the context of its parent. Some activities have randomization controls which change the order in which this children are delivered.",
"type": "integer",
"default": 0
},
"selectedChildren": {
"description": "Specifies whether this activity has already selected which of its children it will deliver.",
"type": "boolean",
"default": false
},
"randomizedChildren": {
"description": "Specifies whether this activity has already randomized the deliver order of its children.",
"type": "boolean",
"default": false
},
"children": {
"description": "Child activities of this activity.",
"type": "array",
"items": {
"$ref": "#/properties/activityDetails"
}
},
"objectives": {
"description": "Objectives for this activity",
"type": "array",
"items": {
"$ref": "objectiveSchema"
}
},
"staticProperties": {
"description": "Properties associated with this activity that were read from the manifest and cannot be changed (Ignored for update).",
"type": "object",
"javaType": "RusticiSoftware.Engine.api.model.StaticPropertiesSchema",
"title": "staticPropertiesSchema",
"properties": {
"completionThreshold": {
"type": "string"
},
"launchData": {
"type": "string"
},
"maxTimeAllowed": {
"type": "string"
},
"scaledPassingScore": {
"type": "number"
},
"scaledPassingScoreUsed": {
"type": "boolean",
"default": false
},
"timeLimitAction": {
"type": "string"
}
}
},
"runtime": {
"description": "Runtime (vs sequencing) information for this activity.",
"type": "object",
"javaType": "RusticiSoftware.Engine.api.model.RuntimeSchema",
"title": "runtimeSchema",
"properties": {
"completionStatus": {
"type": "string"
},
"credit": {
"type": "string"
},
"entry": {
"type": "string"
},
"exit": {
"description": "Exit status for the SCO",
"type": "string",
"default": "Unknown",
"enum": [
"Unknown",
"TimeOut",
"Suspend",
"Logout",
"Normal"
]
},
"learnerPreference": {
"description": "Learner preferences. Read from the manifest and cannot be changed (Ignored for update).",
"type": "object",
"javaType": "RusticiSoftware.Engine.api.model.LearnerPreferenceSchema",
"title": "learnerPreferenceSchema",
"properties": {
"audioLevel": {
"type": "number"
},
"language": {
"type": "string"
},
"deliverySpeed": {
"type": "number"
},
"audioCaptioning": {
"type": "integer"
}
}
},
"location": {
"description": "Represents the current location of the learner within the SCO, aka the bookmark. This data is a free text field that format of which is determined by the SCO.",
"type": "string"
},
"mode": {
"description": "Last launch mode of the SCO",
"type": "string",
"default": "Normal",
"enum": [
"Normal",
"Browse",
"Review"
]
},
"progressMeasure": {
"description": "The amount of progress the learner has made towards completing the SCO measured as a double from 0-1.",
"type": "string"
},
"scoreScaled": {
"description": "The score the learner achieved on this SCO normalized as a double between 0-1.",
"type": "string"
},
"scoreRaw": {
"description": "The raw score (not normalized to any range) that the learner achieved on this SCO.",
"type": "string"
},
"scoreMin": {
"description": "The minimum score the learner could have achieved on this SCO.",
"type": "string"
},
"scoreMax": {
"description": " The maximum score the learner could have achieved on this SCO..",
"type": "string"
},
"totalTime": {
"description": "The total time the learner spent taking this SCO during the current sequencing attempt (which may last several sessions) as reported by the SCO",
"type": "string"
},
"timeTracked": {
"description": "The total time the learner spent taking this SCO during the current sequencing attempt (which may last several sessions) as tracked by the system. For AICC courses, this column will hold the time spent in the most recent session and will not track the total time spent in the course.",
"type": "string"
},
"successStatus": {
"description": "Success status of the SCO",
"type": "string",
"default": "Unknown",
"enum": [
"Unknown",
"Passed",
"Failed"
]
},
"suspendData": {
"description": "A block of free text data that the SCO has stored to persist its state.",
"type": "string"
},
"learnerComments": {
"description": "The comments that the SCO reported to the LMS.",
"type": "array",
"items": {
"$ref": "commentSchema"
}
},
"lmsComments": {
"description": "The comments that the LMS may report to the SCO",
"type": "array",
"items": {
"$ref": "commentSchema"
}
},
"runtimeInteractions": {
"description": "The interactions that the SCO reported to the LMS.",
"type": "array",
"items": {
"$schema": "http://json-schema.org/draft-03/schema",
"title": "runtimeInteractionSchema",
"type": "object",
"javaType": "RusticiSoftware.Engine.api.model.RuntimeInteractionSchema",
"properties": {
"id": {
"description": "The interaction ID",
"type": "string"
},
"type": {
"description": "The interaction type",
"type": "string",
"default": "Undefined",
"enum": [
"Undefined",
"TrueFalse",
"Choice",
"FillIn",
"LongFillIn",
"Likert",
"Matching",
"Performance",
"Sequencing",
"Numeric",
"Other"
]
},
"objectives": {
"description": "The learning objectives (ids) that this interaction addresses",
"type": "array",
"items": {
"type": "string"
}
},
"timestamp": {
"description": "The timestamp of when the interaction was reported, in the format provided by the SCO",
"type": "string"
},
"timestampUtc": {
"description": "The ISO 8601 timestamp of when the interaction was reported.",
"type": "string"
},
"correctResponses": {
"description": "The correct responses to this interaction",
"type": "array",
"items": {
"type": "string"
}
},
"weighting": {
"description": "The weight this interaction carries relative to the other interactions in the SCO",
"type": "string"
},
"learnerResponse": {
"description": "The correct responses to this interaction",
"type": "string"
},
"result": {
"description": "The result of the interaction. Did the learner answer correctly, etc. Either correct, incorrect, unanticipated, neutral, or a numeric value",
"type": "string"
},
"latency": {
"description": "Iso8601TimeSpan representing the amount of time it took for the learner to make the interaction, i.e. how long it took the learner to answer the question.",
"type": "string"
},
"description": {
"description": "A textual description of the interaction",
"type": "string"
}
}
}
},
"runtimeObjectives": {
"type": "array",
"items": {
"$schema": "http://json-schema.org/draft-03/schema",
"title": "runtimeObjectiveSchema",
"type": "object",
"javaType": "RusticiSoftware.Engine.api.model.RuntimeObjectiveSchema",
"properties": {
"id": {
"description": "The objective ID",
"type": "string"
},
"scoreScaled": {
"description": "The score the learner achieved on this objective normalized as a double between 0-1. (or null)",
"type": "string"
},
"scoreMin": {
"description": "The minimum score the learner could have achieved on this objective. (null or numeric)",
"type": "string"
},
"scoreMax": {
"description": "The maximum score the learner could have achieved on this objective. (null or numeric)",
"type": "string"
},
"scoreRaw": {
"description": "The raw score (not normalized to any range) that the learner achieved on this objective. (null or numeric)",
"type": "string"
},
"successStatus": {
"description": "Success status of this objective",
"type": "string",
"default": "Unknown",
"enum": [
"Unknown",
"Passed",
"Failed"
]
},
"completionStatus": {
"description": "Completion status of this objective",
"type": "string",
"default": "Unknown",
"enum": [
"Unknown",
"Completed",
"Incomplete",
"Not_Attempted",
"Browsed"
]
},
"progressMeasure": {
"description": "The amount of progress the learner has made towards completing the objective measured as a double from 0-1. (or null)",
"type": "string"
},
"description": {
"description": "A textual description of the objective",
"type": "string"
}
}
}
}
}
}
}
}
}
}
Example:
{
"id": "asdfsd",
"instance": 0,
"updated": "2015-11-05T21:55:20.000Z",
"registrationCompletion": "COMPLETED",
"registrationSuccess": "PASSED",
"totalSecondsTracked": 0,
"course": {
"id": "d8cf7b40-5c42-420b-a276-f5e4364a3d65",
"version": 0,
"title": "Golf Explained - Metadata Example",
"courseLearningStandard": "SCORM_2004_3_RD_EDITION",
"updated": "2015-10-28T15:00:44.000Z"
},
"learner": {
"id": "ConsoleLearner",
"firstName": "Console",
"lastName": "Learner"
},
"globalObjectives": [],
"activityDetails": {
"id": "golf_sample_default_org",
"title": "Golf Explained - Metadata Example",
"attempts": 1,
"activityCompletion": "COMPLETED",
"activitySuccess": "PASSED",
"suspended": false,
"children": [
{
"id": "item_1",
"title": "Golf Explained",
"attempts": 2,
"activityCompletion": "COMPLETED",
"activitySuccess": "PASSED",
"timeTracked": "0000:00:00",
"suspended": false,
"children": [],
"objectives": [
{
"id": "",
"primary": true,
"objectiveSuccess": "PASSED",
"additionalProperties": {}
}
],
"staticProperties": {
"completionThreshold": "",
"launchData": "",
"maxTimeAllowed": "",
"timeLimitAction": "",
"additionalProperties": {}
},
"runtime": {
"completionStatus": "unknown",
"credit": "credit",
"entry": "abinitio",
"exit": "unknown",
"learnerPreference": {
"audioLevel": 1,
"language": "",
"deliverySpeed": 1,
"audioCaptioning": 0,
"additionalProperties": {}
},
"mode": "normal",
"progressMeasure": "",
"scoreScaled": "",
"scoreRaw": "",
"scoreMin": "",
"scoreMax": "",
"totalTime": "0000:00:00",
"timeTracked": "0000:00:00",
"successStatus": "unknown",
"suspendData": "",
"learnerComments": [],
"lmsComments": [],
"runtimeInteractions": [],
"runtimeObjectives": [],
"additionalProperties": {}
},
"additionalProperties": {}
}
],
"objectives": [
{
"id": "",
"primary": true,
"objectiveSuccess": "PASSED",
"additionalProperties": {}
}
],
"staticProperties": {
"completionThreshold": "",
"launchData": "",
"maxTimeAllowed": "",
"timeLimitAction": "",
"additionalProperties": {}
},
"additionalProperties": {}
},
"additionalProperties": {}
HTTP status code 400
bad request
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "messageSchema",
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{ "message" : "Explanation of why the request is bad."}
HTTP status code 404
not found
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "messageSchema",
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Get launch history data associated with this registration
get /{tenant}/registrations/{registrationId}/launchHistory
Get launch history data associated with this registration
URI Parameters
- tenant: required (string)
- registrationId: required (string)
id for this registration
Query Parameters
- instance: (integer - default: -1)
The instance of this registration to use. If not provided, the latest instance will be used. The External ID instance property should not be set.
- configuration: (string - default: )
External configuration. Contains custom configuration properties defined by each LMS.
- includeHistoryLog: (boolean - default: false)
Whether to include the history log in the launch history
HTTP status code 200
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema#",
"title": "launchHistoryListSchema",
"type": "object",
"properties": {
"launchHistory": {
"type": "array",
"items": {
"$ref": "launchHistorySchema"
}
}
}
}
Example:
{
"launchHistory": [
{
"instanceId": 0,
"launchTime": "3/23/2018 8:25:15 AM",
"launchTimeUtc": "3/23/2018 2:25:15 PM",
"exitTime": "3/23/2018 8:42:52 AM",
"exitTimeUtc": "3/23/2018 2:42:52 PM",
"completionStatus": "incomplete",
"successStatus": "unknown",
"score":
{
"scaled": 93
},
"totalSecondsTracked": 0,
"lastRuntimeUpdate": "3/23/2018 8:42:52 AM",
"lastRuntimeUpdateUtc": "3/23/2018 2:42:52 PM"
}
]
}
HTTP status code 400
bad request
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "messageSchema",
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{ "message" : "Explanation of why the request is bad."}
HTTP status code 404
not found
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "messageSchema",
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{"message": "Registration not found" }
delete global data associated with this registration
delete /{tenant}/registrations/{registrationId}/globalData
delete global data associated with this registration
URI Parameters
- tenant: required (string)
- registrationId: required (string)
id for this registration
Query Parameters
- configuration: (string - default: )
External configuration. Contains custom configuration properties defined by each LMS.
HTTP status code 204
request succeeded
HTTP status code 400
bad request
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "messageSchema",
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{ "message" : "Explanation of why the request is bad."}
HTTP status code 404
not found
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "messageSchema",
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{"message": "Registration not found" }
PII Deletion Job
Initiate a job to delete a user's Personal Identifying Information from the system.
post /{tenant}/pii/deletionJob
Initiate a job to delete a user's Personal Identifying Information from the system.
URI Parameters
- tenant: required (string)
Query Parameters
- configuration: (string - default: )
External configuration. Contains custom configuration properties defined by each LMS.
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "PIIDeletionRequestSchema",
"properties": {
"learnerIds": {
"required": false,
"type": "array",
"items": {
"type": "string"
}
},
"agents": {
"required": false,
"type": "array",
"items": {
"type": "object"
}
}
},
"additionalProperties": false
}
Example:
{ "learnerIds" : ["learner1"] }
HTTP status code 200
The identifier for the PII deletion job
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "PIIDeletionRequestResultSchema",
"properties": {
"jobId": {
"type": "string"
}
},
"additionalProperties": false
}
Example:
{
"jobId": "bdd03abb-bca4-497b-a4c8-f17c4dc51d73"
}
HTTP status code 400
bad request
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "messageSchema",
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{"message": "Error converting value \"learner\" to type 'System.Collections.Generic.List`}
Type: text/plain
Example:
"Can not deserialize instance of java.util.ArrayList out of VALUE_STRING token"
Check the status of a PII deletion job with the provided job id.
get /{tenant}/pii/deletionJob/{jobId}
Check the status of a PII deletion job with the provided job id.
URI Parameters
- tenant: required (string)
- jobId: required (string)
Query Parameters
- configuration: (string - default: )
External configuration. Contains custom configuration properties defined by each LMS.
HTTP status code 200
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "PIIDeletionResultSchema",
"javaType": "RusticiSoftware.Engine.api.model.PIIDeletionResultSchema",
"properties": {
"jobId": {
"type": "string"
},
"message": {
"type": "string"
},
"deleteStatus": {
"type": "string",
"enum": [
"RUNNING",
"COMPLETE",
"ERROR"
]
}
}
}
Example:
{
"deleteStatus": "RUNNING",
"jobId": "bdd03abb-bca4-497b-a4c8-f17c4dc51d73"
}
HTTP status code 400
bad request
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "messageSchema",
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{ "message" : "Explanation of why the request is bad."}
HTTP status code 404
not found
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "messageSchema",
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{"message": "Cannot check deletion status for job that was never submitted for deletion."}
Destinations
The collection of all destinations. Each dispatch has a destination, which is the client LMS that will import and launch the dispatch package.
Get a list of destinations.
Create multiple destinations.
Delete multiple destinations. Deleting a destination will also delete all dispatches for that destination, and deleting all destinations will therefore delete all dispatches.
get /{tenant}/destinations
Get a list of destinations.
URI Parameters
- tenant: required (string)
Query Parameters
- configuration: (string - default: )
External configuration. Contains custom configuration properties defined by each LMS.
- more: (string - default: )
Value for this parameter will be provided in the 'more' property of destinations lists, where needed. An opaque value, construction and parsing may change without notice.
- since: (string - default: )
Only destinations updated since the specified ISO 8601 TimeStamp (inclusive) are included. If a time zone is not specified, the server's time zone will be used.
- courseId: (string - default: )
Limit the results to destinations that have dispatches of the specified course.
Example:
1000
HTTP status code 200
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema#",
"title": "destinationListSchema",
"javaType": "RusticiSoftware.Engine.api.model.DestinationListSchema",
"type": "object",
"properties": {
"destinations": {
"type": "array",
"items": {
"$ref": "destinationIdSchema"
},
"required": true
},
"more": {
"type": "string"
}
},
"additionalProperties": false
}
Example:
{
"destinations": [
{
"id": "123",
"data": {"name": "DestinationOne"}
},
{
"id": "234",
"data": {"name": "DestinationTwo"}
}
],
"more": "/RusticiEngine/api/v1/default/destinations?more=sQ2JfFEBAAAOAAAA"
}
post /{tenant}/destinations
Create multiple destinations.
URI Parameters
- tenant: required (string)
Query Parameters
- configuration: (string - default: )
External configuration. Contains custom configuration properties defined by each LMS.
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema#",
"title": "destinationListSchema",
"javaType": "RusticiSoftware.Engine.api.model.DestinationListSchema",
"type": "object",
"properties": {
"destinations": {
"type": "array",
"items": {
"$ref": "destinationIdSchema"
},
"required": true
},
"more": {
"type": "string"
}
},
"additionalProperties": false
}
Example:
{
"destinations": [
{
"id": "123",
"data": {"name": "DestinationOne"}
},
{
"id": "234",
"data": {"name": "DestinationTwo"}
}
],
"more": "/RusticiEngine/api/v1/default/destinations?more=sQ2JfFEBAAAOAAAA"
}
HTTP status code 204
HTTP status code 400
Bad request.
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "messageSchema",
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{ "message": "Explanation of why the request is bad." }
delete /{tenant}/destinations
Delete multiple destinations. Deleting a destination will also delete all dispatches for that destination, and deleting all destinations will therefore delete all dispatches.
URI Parameters
- tenant: required (string)
Query Parameters
- configuration: (string - default: )
External configuration. Contains custom configuration properties defined by each LMS.
- id: (string - default: )
Comma-separated list of destinations IDs to delete. Default is "", which means all destinations.
Example:
123,234
An individual destination.
Get the destination with destinationId = {destinationId}.
Create or update the destination with destinationId = {destinationId}.
Delete the destination with destinationId = {destinationId}.
get /{tenant}/destinations/{destinationId}
Get the destination with destinationId = {destinationId}.
URI Parameters
- tenant: required (string)
- destinationId: required (string)
Query Parameters
- configuration: (string - default: )
External configuration. Contains custom configuration properties defined by each LMS.
HTTP status code 200
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema#",
"title": "destinationSchema",
"javaType": "RusticiSoftware.Engine.api.model.DestinationSchema",
"type": "object",
"properties": {
"name": {
"type": "string",
"required": true
}
},
"required": true,
"additionalProperties": false
}
Example:
{
"name": "DestinationOne"
}
HTTP status code 404
Not found.
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "messageSchema",
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{ "message": "destination not found" }
put /{tenant}/destinations/{destinationId}
Create or update the destination with destinationId = {destinationId}.
URI Parameters
- tenant: required (string)
- destinationId: required (string)
Query Parameters
- configuration: (string - default: )
External configuration. Contains custom configuration properties defined by each LMS.
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema#",
"title": "destinationSchema",
"javaType": "RusticiSoftware.Engine.api.model.DestinationSchema",
"type": "object",
"properties": {
"name": {
"type": "string",
"required": true
}
},
"required": true,
"additionalProperties": false
}
Example:
{
"name": "NewDestinationOne"
}
delete /{tenant}/destinations/{destinationId}
Delete the destination with destinationId = {destinationId}.
URI Parameters
- tenant: required (string)
- destinationId: required (string)
Query Parameters
- configuration: (string - default: )
External configuration. Contains custom configuration properties defined by each LMS.
HTTP status code 204
A collection of related dispatches.
Get a list of related dispatches.
Delete all related dispatches.
get /{tenant}/destinations/{destinationId}/dispatches
Get a list of related dispatches.
URI Parameters
- tenant: required (string)
- destinationId: required (string)
Query Parameters
- configuration: (string - default: )
External configuration. Contains custom configuration properties defined by each LMS.
- more: (string - default: )
Value for this parameter will be provided in the 'more' property of dispatches lists, where needed. An opaque value, construction and parsing may change without notice.
- since: (string - default: )
Only dispatches updated since the specified ISO 8601 TimeStamp (inclusive) are included. If a time zone is not specified, the server's time zone will be used.
HTTP status code 200
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema#",
"title": "dispatchListSchema",
"javaType": "RusticiSoftware.Engine.api.model.DispatchListSchema",
"type": "object",
"properties": {
"dispatches": {
"type": "array",
"items": {
"$ref": "dispatchIdSchema"
},
"required": true
},
"more": {
"type": "string"
}
},
"additionalProperties": false
}
Example:
{
"dispatches": [
{
"id": "123",
"data": {
"destinationId": "234",
"courseId": "CourseId|1001",
"allowNewRegistrations": true,
"instanced": true,
"registrationCap": 100,
"expirationDate": "2017-01-01",
"externalConfig": ""
}
},
{
"id": "321",
"data": {
. . .
}
}
],
"more": "/RusticiEngine/api/v1/default/dispatches?more=sQ2JfFEBAAAOAAAA"
}
delete /{tenant}/destinations/{destinationId}/dispatches
Delete all related dispatches.
URI Parameters
- tenant: required (string)
- destinationId: required (string)
Query Parameters
- configuration: (string - default: )
External configuration. Contains custom configuration properties defined by each LMS.
Subresource that allows enabling or disabling all related dispatches.
Enable or disable all related dispatches.
post /{tenant}/destinations/{destinationId}/dispatches/enabled
Enable or disable all related dispatches.
URI Parameters
- tenant: required (string)
- destinationId: required (string)
Query Parameters
- configuration: (string - default: )
External configuration. Contains custom configuration properties defined by each LMS.
Body
Type: application/json
Schema:
{ "type": "boolean", "required": true }
Example:
true
Enable or disable registration instancing for all related dispatches.
Enable or disable registration instancing.
post /{tenant}/destinations/{destinationId}/dispatches/registrationInstancing
Enable or disable registration instancing.
URI Parameters
- tenant: required (string)
- destinationId: required (string)
Query Parameters
- configuration: (string - default: )
External configuration. Contains custom configuration properties defined by each LMS.
Body
Type: application/json
Schema:
{ "type": "boolean", "required": true }
Example:
true
Aggregate registration counts for all related dispatches.
Get an aggregate count of all related dispatch registrations.
Reset registration counts for all related dispatches.
get /{tenant}/destinations/{destinationId}/dispatches/registrationCount
Get an aggregate count of all related dispatch registrations.
URI Parameters
- tenant: required (string)
- destinationId: required (string)
Query Parameters
- configuration: (string - default: )
External configuration. Contains custom configuration properties defined by each LMS.
HTTP status code 200
Body
Type: application/json
Schema:
{ "type": "integer", "required": true }
Example:
412
delete /{tenant}/destinations/{destinationId}/dispatches/registrationCount
Reset registration counts for all related dispatches.
URI Parameters
- tenant: required (string)
- destinationId: required (string)
Query Parameters
- configuration: (string - default: )
External configuration. Contains custom configuration properties defined by each LMS.
HTTP status code 204
ZIP file containing all related dispatch packages.
Get a ZIP file containing all related dispatch packages.
get /{tenant}/destinations/{destinationId}/dispatches/zip
Get a ZIP file containing all related dispatch packages.
URI Parameters
- tenant: required (string)
- destinationId: required (string)
Query Parameters
- configuration: (string - default: )
External configuration. Contains custom configuration properties defined by each LMS.
- type: (string - default: )
The type of dispatch package to export (SCORM12, SCORM2004-3RD or AICC)
HTTP status code 200
Headers
- Content-Disposition: (string)
Example:
attachment; filename="dispatches.zip"
Body
Type: application/zip
Dispatches
The collection of all dispatches.
Get a list of dispatches.
Create multiple dispatches.
Delete multiple dispatches.
get /{tenant}/dispatches
Get a list of dispatches.
URI Parameters
- tenant: required (string)
Query Parameters
- configuration: (string - default: )
External configuration. Contains custom configuration properties defined by each LMS.
- more: (string - default: )
Value for this parameter will be provided in the 'more' property of dispatches lists, where needed. An opaque value, construction and parsing may change without notice.
- since: (string - default: )
Only dispatches updated since the specified ISO 8601 TimeStamp (inclusive) are included. If a time zone is not specified, the server's time zone will be used.
- courseId: (string - default: )
Limit the results to dispatches of the specified course.
Example:
1000
HTTP status code 200
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema#",
"title": "dispatchListSchema",
"javaType": "RusticiSoftware.Engine.api.model.DispatchListSchema",
"type": "object",
"properties": {
"dispatches": {
"type": "array",
"items": {
"$ref": "dispatchIdSchema"
},
"required": true
},
"more": {
"type": "string"
}
},
"additionalProperties": false
}
Example:
{
"dispatches": [
{
"id": "123",
"data": {
"destinationId": "234",
"courseId": "CourseId|1001",
"allowNewRegistrations": true,
"instanced": true,
"registrationCap": 100,
"expirationDate": "2017-01-01",
"externalConfig": ""
}
},
{
"id": "321",
"data": {
. . .
}
}
],
"more": "/RusticiEngine/api/v1/default/dispatches?more=sQ2JfFEBAAAOAAAA"
}
post /{tenant}/dispatches
Create multiple dispatches.
URI Parameters
- tenant: required (string)
Query Parameters
- configuration: (string - default: )
External configuration. Contains custom configuration properties defined by each LMS.
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema#",
"title": "dispatchListSchema",
"javaType": "RusticiSoftware.Engine.api.model.DispatchListSchema",
"type": "object",
"properties": {
"dispatches": {
"type": "array",
"items": {
"$ref": "dispatchIdSchema"
},
"required": true
},
"more": {
"type": "string"
}
},
"additionalProperties": false
}
Example:
{
"dispatches": [
{
"id": "123",
"data": {
"destinationId": "234",
"courseId": "CourseId|1001",
"allowNewRegistrations": true,
"instanced": true,
"registrationCap": 100,
"expirationDate": "2017-01-01",
"externalConfig": ""
}
},
{
"id": "321",
"data": {
. . .
}
}
],
"more": "/RusticiEngine/api/v1/default/dispatches?more=sQ2JfFEBAAAOAAAA"
}
HTTP status code 204
HTTP status code 400
Bad request.
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "messageSchema",
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{ "message": "Explanation of why the request is bad." }
delete /{tenant}/dispatches
Delete multiple dispatches.
URI Parameters
- tenant: required (string)
Query Parameters
- configuration: (string - default: )
External configuration. Contains custom configuration properties defined by each LMS.
- id: (string - default: )
Comma-separated list of dispatches IDs to delete. Default is "", which means all dispatches.
Example:
123,234
An individual dispatch.
Get the dispatch with dispatchId = {dispatchId}.
Create or update the dispatch with dispatchId = {dispatchId}.
Delete the dispatch with dispatchId = {dispatchId}.
get /{tenant}/dispatches/{dispatchId}
Get the dispatch with dispatchId = {dispatchId}.
URI Parameters
- tenant: required (string)
- dispatchId: required (string)
Query Parameters
- configuration: (string - default: )
External configuration. Contains custom configuration properties defined by each LMS.
HTTP status code 200
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema#",
"title": "dispatchSchema",
"javaType": "RusticiSoftware.Engine.api.model.DispatchSchema",
"type": "object",
"properties": {
"destinationId": {
"description": "Destination ID.",
"type": "string",
"required": true
},
"courseId": {
"description": "Serialized external package ID.",
"type": "string",
"required": true
},
"allowNewRegistrations": {
"description": "If true, then new registrations can be created for this dispatch.",
"type": "boolean",
"required": false,
"default": false
},
"instanced": {
"description": "If true, then a new registration instance will be created if the client LMS doesn't provide launch data for an existing one. Otherwise, the same instance will always be used for the given cmi.learner_id.",
"type": "boolean",
"required": false,
"default": false
},
"registrationCap": {
"description": "The maximum number of registrations that can be created for this dispatch, where '0' means 'unlimited registrations'.",
"type": "integer",
"required": false,
"default": 0
},
"expirationDate": {
"description": "The date after which this dispatch will be disabled as an ISO 8601 string, or \"none\" for no expiration date.",
"type": "string",
"required": false,
"default": "none"
},
"externalConfig": {
"description": "Serialized external configuration information to include when launching the dispatched package.",
"type": "string",
"required": false,
"default": ""
},
"enabled": {
"description": "If true, then this dispatch can be launched.",
"type": "boolean",
"required": false,
"default": false
},
"registrationCount": {
"description": "The number of registrations created for this dispatch.",
"type": "integer",
"required": false,
"default": 0
},
"registrationResetDate": {
"description": "The date the dispatch registration count was reset to 0 as an ISO 8601 string, or \"none\" for no reset date.",
"type": "string",
"required": false,
"default": ""
}
},
"required": true,
"additionalProperties": false
}
Example:
{
"destinationId": "234",
"courseId": "CourseId|1001",
"allowNewRegistrations": true,
"instanced": true,
"registrationCap": 100,
"expirationDate": "2017-01-01",
"externalConfig": ""
}
HTTP status code 404
Not found.
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "messageSchema",
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true
}
},
"additionalProperties": true
}
Example:
{ "message": "dispatch not found" }
put /{tenant}/dispatches/{dispatchId}
Create or update the dispatch with dispatchId = {dispatchId}.
URI Parameters
- tenant: required (string)
- dispatchId: required (string)
Query Parameters
- configuration: (string - default: )
External configuration. Contains custom configuration properties defined by each LMS.
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema#",
"title": "dispatchSchema",
"javaType": "RusticiSoftware.Engine.api.model.DispatchSchema",
"type": "object",
"properties": {
"destinationId": {
"description": "Destination ID.",
"type": "string",
"required": true
},
"courseId": {
"description": "Serialized external package ID.",
"type": "string",
"required": true
},
"allowNewRegistrations": {
"description": "If true, then new registrations can be created for this dispatch.",
"type": "boolean",
"required": false,
"default": false
},
"instanced": {
"description": "If true, then a new registration instance will be created if the client LMS doesn't provide launch data for an existing one. Otherwise, the same instance will always be used for the given cmi.learner_id.",
"type": "boolean",
"required": false,
"default": false
},
"registrationCap": {
"description": "The maximum number of registrations that can be created for this dispatch, where '0' means 'unlimited registrations'.",
"type": "integer",
"required": false,
"default": 0
},
"expirationDate": {
"description": "The date after which this dispatch will be disabled as an ISO 8601 string, or \"none\" for no expiration date.",
"type": "string",
"required": false,
"default": "none"
},
"externalConfig": {
"description": "Serialized external configuration information to include when launching the dispatched package.",
"type": "string",
"required": false,
"default": ""
},
"enabled": {
"description": "If true, then this dispatch can be launched.",
"type": "boolean",
"required": false,
"default": false
},
"registrationCount": {
"description": "The number of registrations created for this dispatch.",
"type": "integer",
"required": false,
"default": 0
},
"registrationResetDate": {
"description": "The date the dispatch registration count was reset to 0 as an ISO 8601 string, or \"none\" for no reset date.",
"type": "string",
"required": false,
"default": ""
}
},
"required": true,
"additionalProperties": false
}
Example:
{
"destinationId": "234",
"courseId": "CourseId|1001",
"allowNewRegistrations": true,
"instanced": true,
"registrationCap": 100,
"expirationDate": "2017-01-01",
"externalConfig": ""
}
delete /{tenant}/dispatches/{dispatchId}
Delete the dispatch with dispatchId = {dispatchId}.
URI Parameters
- tenant: required (string)
- dispatchId: required (string)
Query Parameters
- configuration: (string - default: )
External configuration. Contains custom configuration properties defined by each LMS.
HTTP status code 204
Dispatches may be enabled or disabled to control the ability to launch from client LMSs.
True if the dispatch is enabled, or false if it is disabled.
Enable or disabled the dispatch.
get /{tenant}/dispatches/{dispatchId}/enabled
True if the dispatch is enabled, or false if it is disabled.
URI Parameters
- tenant: required (string)
- dispatchId: required (string)
Query Parameters
- configuration: (string - default: )
External configuration. Contains custom configuration properties defined by each LMS.
put /{tenant}/dispatches/{dispatchId}/enabled
Enable or disabled the dispatch.
URI Parameters
- tenant: required (string)
- dispatchId: required (string)
Query Parameters
- configuration: (string - default: )
External configuration. Contains custom configuration properties defined by each LMS.
Body
Type: application/json
Schema:
{ "type": "boolean", "required": true }
Example:
true
The number of registrations created for this dispatch since it was created, or since the count was last reset.
Get the registration count for this dispatch, and the date and time of the last count reset, if any.
Reset the registration count for this dispatch.
get /{tenant}/dispatches/{dispatchId}/registrationCount
Get the registration count for this dispatch, and the date and time of the last count reset, if any.
URI Parameters
- tenant: required (string)
- dispatchId: required (string)
Query Parameters
- configuration: (string - default: )
External configuration. Contains custom configuration properties defined by each LMS.
HTTP status code 200
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema#",
"title": "registrationCountSchema",
"javaType": "RusticiSoftware.Engine.api.model.RegistrationCountSchema",
"type": "object",
"properties": {
"registrationCount": {
"type": "integer",
"required": true
},
"lastResetTime": {
"type": "string",
"required": false
}
},
"additionalProperties": false
}
Example:
{
"registrationCount": 2185,
"lastResetDate": "2015-10-09T04:30:08Z"
}
delete /{tenant}/dispatches/{dispatchId}/registrationCount
Reset the registration count for this dispatch.
URI Parameters
- tenant: required (string)
- dispatchId: required (string)
Query Parameters
- configuration: (string - default: )
External configuration. Contains custom configuration properties defined by each LMS.
The information necessary to launch this course using the IMS LTI specification.
Get the information necessary to launch this dispatch using the IMS LTI specification.
get /{tenant}/dispatches/{dispatchId}/lti
Get the information necessary to launch this dispatch using the IMS LTI specification.
URI Parameters
- tenant: required (string)
- dispatchId: required (string)
Query Parameters
- configuration: (string - default: )
External configuration. Contains custom configuration properties defined by each LMS.
HTTP status code 200
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema#",
"title": "ltiInfoSchema",
"javaType": "RusticiSoftware.Engine.api.model.LtiInfoSchema",
"type": "object",
"properties": {
"url": {
"description": "The LTI launch URL for this dispatch",
"type": "string",
"required": true
},
"consumerKey": {
"description": "The OAuth consumer key that identifies the tool consumer for this dispatch.",
"type": "string",
"required": true
},
"sharedSecret": {
"description": "The OAuth secret to be used for LTI authentication for this dispatch.",
"type": "string",
"required": true
}
},
"required": true,
"additionalProperties": false
}
Example:
{
"url": "http://example.org/RusticiEngine/dispatch/DispatchRequest.aspx?methodName=BltiLaunch&tenant=default",
"consumerKey": "myDispatchId",
"sharedSecret": "p4SsW0rD"
}
HTTP status code 400
HTTP status code 404
The ZIP dispatch package.
Get the ZIP dispatch package.
get /{tenant}/dispatches/{dispatchId}/zip
Get the ZIP dispatch package.
URI Parameters
- tenant: required (string)
- dispatchId: required (string)
Query Parameters
- configuration: (string - default: )
External configuration. Contains custom configuration properties defined by each LMS.
- type: (string - default: )
The type of dispatch package to export (SCORM12, SCORM2004-3RD or AICC)
HTTP status code 200
Headers
- Content-Disposition: (string)
Example:
attachment; filename="dispatch.zip"
Body
Type: application/zip