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",
"LTI_11",
"LTI_13"
]
},
"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.
Create a registration. The application/json format should be used, the application/x-www-form-urlencoded is available for compatibiliy with older systems.
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
post /{tenant}/registrations
Create a registration. The application/json format should be used, the application/x-www-form-urlencoded is available for compatibiliy with older systems.
URI Parameters
- tenant: required (string)
Query Parameters
- configuration: (string - default: )
External configuration. Contains custom configuration properties defined by each LMS.
- courseVersion: (integer - default: -1)
The version of the course you want to create the registration for. Unless you have a reason for using this you probably do not need to.
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "registrationSchema",
"properties": {
"courseId": {
"type": "string"
},
"learner": {
"$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,
"required": true
},
"registrationId": {
"type": "string",
"required": true
},
"forCredit": {
"type": "boolean",
"default": true
},
"xapiRegistrationId": {
"description": "The xapiRegistrationId to be associated with this registration. If not specified, the system will assign an xapiRegistrationId",
"type": "string",
"default": "",
"required": false
},
"postBack": {
"type": "object",
"title": "postBack",
"required": false,
"description": "Specifies an optional override URL for which to post activity and status data in real time as the course is completed. By default all of these settings are read from your configuration, so only specify this if you need to control it on a per-registration basis.",
"properties": {
"url": {
"type": "string",
"required": false
},
"authType": {
"type": "string",
"enum": [
"FORM",
"HTTPBASIC",
"UNDEFINED"
],
"default": "UNDEFINED",
"description": "Optional parameter to specify how to authorize against the given postbackurl, can be 'form' or 'httpbasic'. If form authentication, the username and password for authentication are submitted as form fields 'username' and 'password', and the registration data as the form field 'data'. If HTTP Basic Authentication is used, the username and password are placed in the standard Authorization HTTP header, and the registration data is the body of the message (sent as application/json content type). If property is not set, then will default to value of configuration item ApiRollupRegistrationAuthType."
},
"userName": {
"type": "string",
"description": "The user name to be used in authorizing the postback of data to the URL specified by postback url.",
"required": false
},
"password": {
"type": "string",
"description": "The password to be used in authorizing the postback of data to the URL specified by postback url.",
"required": false
},
"resultsFormat": {
"type": "string",
"enum": [
"COURSE",
"ACTIVITY",
"FULL",
"UNDEFINED"
],
"description": "This parameter allows you to specify a level of detail in the information that is posted back while the course is being taken. It may be one of three values: 'course' (course summary), 'activity' (activity summary), or 'full' (full detail). The information will be posted as JSON using the same schema as what is returned in the /progress and /progress/detail endpoints. If property is not set, then will default to value of configuration item ApiRollupRegistrationFormat.",
"default": "UNDEFINED"
}
},
"additionalProperties": true
},
"initialRegistrationState" : {
"description": "Registration import: populate the new registration with the progress details included in this property.",
"$ref": "registrationSummarySchema"
}
},
"additionalProperties": true
}
Example:
{
"courseId": "2",
"learner": {
"id": "testLearnerId",
"firstName": "Last",
"lastName": "First"
},
"registrationId": "testRegistrationId",
"forCredit": true
}
Type: application/x-www-form-urlencoded
Form Parameters- registration: required (string)
Id for the registration to be created.
- packageId: required (string)
Id of the package (course) for which the registration should be created.
- forCredit: (boolean - default: true)
Indicates whether the course is being taken for credit.
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
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" }
Increment the instance of this registration
Get all the instances of this the registration specified by the registration ID
post /{tenant}/registrations/{registrationId}/instances
Increment the instance of 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.
- forCredit: (boolean - default: true)
Indicates whether the course is being taken for credit.
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."}
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}/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" }
Returns the link to use to launch this registration
get /{tenant}/registrations/{registrationId}/launchLink
Returns the link to use to launch this registration
URI Parameters
- tenant: required (string)
- registrationId: required (string)
id for this registration
Query Parameters
- 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.
- tracking: (boolean - default: true)
When set to false, the link returned will launch the course without updating the registration's progress
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
}
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."}
xAPI credentials
Create, list, or delete xAPI credentials.
Create an xAPI credentials.
Get the list of xapiCredentials
post /{tenant}/xapiCredentials
Create an xAPI credentials.
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": "xapiCredentialsPostSchema",
"javaType": "RusticiSoftware.Engine.api.model.XapiCredentialsPostSchema",
"type": "object",
"properties": {
"name": {
"type": "string"
},
"info": {
"type": "string",
"required": false
},
"secret": {
"type": "string",
"required": false
},
"isEnabled": {
"type": "boolean"
},
"auth": {
"$ref": "xapiCredentialsAuthTypeSchema"
},
"permissionsLevel": {
"$ref": "xapiCredentialsPermissionsLevelSchema"
}
}
}
Example:
{
"name": "MyCredentials",
"info": "http://example.localhost",
"auth": {
"xapiCredentialsAuthType": "BASICAUTH"
},
"isEnabled": true,
"permissionsLevel": {
"xapiCredentialsPermissionsLevel": "USER"
},
"secret": "fIQ9i1N4yU8iIYbgQuo"
}
HTTP status code 200
Request succeeded
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "stringResultSchema",
"properties": {
"result": {
"type": "string",
"required": true
}
},
"additionalProperties": 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."}
get /{tenant}/xapiCredentials
Get the list of xapiCredentials
URI Parameters
- tenant: required (string)
Query Parameters
- more: (string - default: )
Value for this parameter will be provided in the 'more' property of xapiCredentials lists, where needed. An opaque value, construction and parsing may change without notice.
- since: (string - default: )
Only xapiCredentials 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": "xapiCredentialsListSchema",
"type": "object",
"properties": {
"xapiCredentials": {
"type": "array",
"items": {
"$ref": "xapiCredentialsSchema"
},
"required": true
},
"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": "xapiCredentials not found" }
Edit an existing xAPI credential or create a new one, specified by the xAPI credentials id
Deletes the xAPI credentials specified by the xAPI credentials id
Retrieves the xAPI credentials specified by the xAPI credentials id
put /{tenant}/xapiCredentials/{xapiCredentialsId}
Edit an existing xAPI credential or create a new one, specified by the xAPI credentials id
URI Parameters
- tenant: required (string)
- xapiCredentialsId: required (string)
id for this xAPI credentials
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": "xapiCredentialsSchema",
"javaType": "RusticiSoftware.Engine.api.model.XapiCredentialsSchema",
"type": "object",
"properties": {
"id": {
"type": "string",
"required": false
},
"name": {
"type": "string"
},
"info": {
"type": "string",
"required": false
},
"secret": {
"type": "string"
},
"isEnabled": {
"type": "boolean"
},
"auth": {
"$ref": "xapiCredentialsAuthTypeSchema"
},
"permissionsLevel": {
"$ref": "xapiCredentialsPermissionsLevelSchema"
}
}
}
Example:
{
"name": "MyCredentials",
"info": "http://example.localhost",
"auth": {
"xapiCredentialsAuthType": "BASICAUTH"
},
"isEnabled": true,
"permissionsLevel": {
"xapiCredentialsPermissionsLevel": "USER"
},
"secret": "fIQ9i1N4yU8iIYbgQuo"
}
HTTP status code 201
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."}
delete /{tenant}/xapiCredentials/{xapiCredentialsId}
Deletes the xAPI credentials specified by the xAPI credentials id
URI Parameters
- tenant: required (string)
- xapiCredentialsId: required (string)
id for this xAPI credentials
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
}
get /{tenant}/xapiCredentials/{xapiCredentialsId}
Retrieves the xAPI credentials specified by the xAPI credentials id
URI Parameters
- tenant: required (string)
- xapiCredentialsId: required (string)
id for this xAPI credentials
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": "xapiCredentialsSchema",
"javaType": "RusticiSoftware.Engine.api.model.XapiCredentialsSchema",
"type": "object",
"properties": {
"id": {
"type": "string",
"required": false
},
"name": {
"type": "string"
},
"info": {
"type": "string",
"required": false
},
"secret": {
"type": "string"
},
"isEnabled": {
"type": "boolean"
},
"auth": {
"$ref": "xapiCredentialsAuthTypeSchema"
},
"permissionsLevel": {
"$ref": "xapiCredentialsPermissionsLevelSchema"
}
}
}
Example:
{
"id": "id",
"name": "MyCredentials",
"info": "<url>",
"auth": "BASICAUTH",
"isEnabled": true,
"permissionsLevel": "READWRITE",
"secret": "2848tjf94nd83"
}
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
}
xapiPipes
Create, list, or delete xAPI pipes.
Create an xAPI pipe.
Get the list of xapiPipes
post /{tenant}/xapiPipes
Create an xAPI pipe.
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": "xapiPipePostSchema",
"javaType": "RusticiSoftware.Engine.api.model.XapiPipePostSchema",
"type": "object",
"properties": {
"source": {
"$ref": "xapiEndpointSchema"
},
"target": {
"$ref": "xapiEndpointSchema"
}
},
"additionalProperties": false
}
Example:
{
"source": {
"url": "http://example.org/TCAPI/default/statements",
"userName": "user",
"password": "password"
},
"target": {
"url": "http://example.org/TCAPI/default",
"userName": "user",
"password": "password"
}
}
HTTP status code 200
Request succeeded
Body
Type: application/json
Schema:
{
"$schema": "http://json-schema.org/draft-03/schema",
"title": "stringResultSchema",
"properties": {
"result": {
"type": "string",
"required": true
}
},
"additionalProperties": 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."}
get /{tenant}/xapiPipes
Get the list of xapiPipes
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": "xapiPipeListSchema",
"type": "object",
"properties": {
"xapiPipes": {
"type": "array",
"items": {
"$ref": "xapiPipeSchema"
},
"required": true
}
}
}
Example:
{
"xapiPipes": [{
"id": "b18733fb-23ad-41a3-8d87-a869e816eba2",
"lastForwardedStatementDate": "1900-01-01T05:00:00.000Z",
"attempts": 12.0,
"visibleAfter": "2016-12-19T14:36:03.309Z",
"source": {
"url": "http://example.org/TCAPI/default/statements",
"userName": "user",
"password": "password"
},
"target": {
"url": "http://example.org/TCAPI/default",
"userName": "user",
"password": "password"
}
}, {
"id": "testId",
"lastForwardedStatementDate": "1900-01-01T05:00:00.000Z",
"attempts": 12.0,
"visibleAfter": "2016-12-19T14:36:03.200Z",
"source": {
"url": "http://example.org/TCAPI/default/statements",
"userName": "user",
"password": "password"
},
"target": {
"url": "http://example.org/TCAPI/default",
"userName": "user",
"password": "password"
}
}]
}
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": "xapiPipes not found" }
Edit an existing xAPI pipe or create a new one. Editing a pipe will cause it to start over and forward any statements it finds, even if the prior version of the pipe had already forwarded those statements. Note: if the pipe being edited is currently being processed, the this request will fail with a status code of 409.
Deletes this xAPI pipe. Caution: avoid re-creating a pipe with the same ID quickly after a delete. The old version could still be processing, in which case the new pipe could be updated improperly by the processor.
Retrieves this xAPI pipe
put /{tenant}/xapiPipes/{xapiPipeId}
Edit an existing xAPI pipe or create a new one. Editing a pipe will cause it to start over and forward any statements it finds, even if the prior version of the pipe had already forwarded those statements. Note: if the pipe being edited is currently being processed, the this request will fail with a status code of 409.
URI Parameters
- tenant: required (string)
- xapiPipeId: required (string)
id for this xAPI pipe
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": "xapiPipeSchema",
"javaType": "RusticiSoftware.Engine.api.model.XapiPipeSchema",
"type": "object",
"properties": {
"id": {
"type": "string",
"required": false
},
"lastForwardedStatementDate": {
"type": "string"
},
"moreUrl": {
"type": "string",
"required": false
},
"attempts": {
"type": "integer"
},
"visibleAfter": {
"type": "string"
},
"source": {
"$ref": "xapiEndpointSchema"
},
"target": {
"$ref": "xapiEndpointSchema"
}
}
}
Example:
{
"id": "mustBeLeftOutOrEqualUriParameter",
"source": {
"url": "http://example.org/TCAPI/default/statements",
"userName": "user",
"password": "password"
},
"target": {
"url": "http://example.org/TCAPI/default",
"userName": "user",
"password": "password"
}
}
HTTP status code 201
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 409
conflict
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" : "Unable to lock xAPI pipe with ID '{0}'. Try again later."}
delete /{tenant}/xapiPipes/{xapiPipeId}
Deletes this xAPI pipe. Caution: avoid re-creating a pipe with the same ID quickly after a delete. The old version could still be processing, in which case the new pipe could be updated improperly by the processor.
URI Parameters
- tenant: required (string)
- xapiPipeId: required (string)
id for this xAPI pipe
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
}
get /{tenant}/xapiPipes/{xapiPipeId}
Retrieves this xAPI pipe
URI Parameters
- tenant: required (string)
- xapiPipeId: required (string)
id for this xAPI pipe
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": "xapiPipeSchema",
"javaType": "RusticiSoftware.Engine.api.model.XapiPipeSchema",
"type": "object",
"properties": {
"id": {
"type": "string",
"required": false
},
"lastForwardedStatementDate": {
"type": "string"
},
"moreUrl": {
"type": "string",
"required": false
},
"attempts": {
"type": "integer"
},
"visibleAfter": {
"type": "string"
},
"source": {
"$ref": "xapiEndpointSchema"
},
"target": {
"$ref": "xapiEndpointSchema"
}
}
}
Example:
{
"id": "testId",
"lastForwardedStatementDate": "1900-01-01T05:00:00.000Z",
"attempts": 12.0,
"visibleAfter": "2016-12-19T14:36:03.200Z",
"source": {
"url": "http://example.org/TCAPI/default/statements",
"userName": "user",
"password": "password"
},
"target": {
"url": "http://example.org/TCAPI/default",
"userName": "user",
"password": "password"
}
}
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
}