Date Issued: | 10th September, 2018 |
Latest version: | http://www.imsglobal.org/lti-rs/ |
IPR and Distribution Notices
Recipients of this document are requested to submit, with their comments, notification of any relevant patent claims or other intellectual property rights of which they may be aware that might be infringed by any implementation of the specification set forth in this document, and to provide supporting documentation.
IMS takes no position regarding the validity or scope of any intellectual property or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; neither does it represent that it has made any effort to identify any such rights. Information on IMS's procedures with respect to rights in IMS specifications can be found at the IMS Intellectual Property Rights web page: http://www.imsglobal.org/ipr/imsipr_policyFinal.pdf.
Copyright © 2018 IMS Global Learning Consortium. All Rights Reserved.
Use of this specification to develop products or services is governed by the license with IMS found on the IMS website: http://www.imsglobal.org/speclicense.html.
Permission is granted to all parties to use excerpts from this document as needed in producing requests for proposals.
The limited permissions granted above are perpetual and will not be revoked by IMS or its successors or assigns.
THIS SPECIFICATION IS BEING OFFERED WITHOUT ANY WARRANTY WHATSOEVER, AND IN PARTICULAR, ANY WARRANTY OF NONINFRINGEMENT IS EXPRESSLY DISCLAIMED. ANY USE OF THIS SPECIFICATION SHALL BE MADE ENTIRELY AT THE IMPLEMENTER'S OWN RISK, AND NEITHER THE CONSORTIUM, NOR ANY OF ITS MEMBERS OR SUBMITTERS, SHALL HAVE ANY LIABILITY WHATSOEVER TO ANY IMPLEMENTER OR THIRD PARTY FOR ANY DAMAGES OF ANY NATURE WHATSOEVER, DIRECTLY OR INDIRECTLY, ARISING FROM THE USE OF THIS SPECIFICATION.
Public contributions, comments and questions can be posted here: www.imsglobal.org/forums/ims-glc-public-forums-and-resources.
© 2018 IMS Global Learning Consortium, Inc.
All Rights Reserved.
Trademark information: http://www.imsglobal.org/copyright.html
Document Name: IMS LTI Resource Search Service OpenAPI Definition v1.0
Revision: 10th September, 2018
The Learning Tools Interoperability (LTI) Resource Search specification defines how to search digital repositories for a set of resources via a web services API. The standard addresses searching learning object repositories (LORs), and other catalogs of learning resources. The specification supports executing these search from learning tools using various attributes of resources and returning full metadata about the resources to the learning tools. Results can be launched either as URLs or LTI links. The goal of the LTI Resource Search standard is a standard way for students and teachers to be able to search resource providers, such as learning object repositories, from single sources or aggregated from multiple sources, within a learning object consumer such as a learning management system or other educational platform.
1. Introduction
2. Service OpenAPI Description
2.2 Tags Information
2.4.1 "/resources" Path
2.4.2 "/subjects" Path
2.5.1 "CCLTILink.Type" Definition
2.5.2 "CSMSet.Type" Definition
2.5.3 "CurriculumStandardsMetadata.Type" Definition
2.5.4 "LTILink.Type" Definition
2.5.5 "LTILinkResourceRef.Type" Definition
2.5.6 "LabelledGUID.Type" Definition
2.5.7 "LearningObjectives.Type" Definition
2.5.8 "Metadata.Type" Definition
2.5.9 "PlatformPropertySet.Type" Definition
2.5.10 "Property.Type" Definition
2.5.11 "PropertySet.Type" Definition
2.5.12 "Resource.Type" Definition
2.5.13 "ResourceSet.Type" Definition
2.5.14 "SetOfGUIDs.Type" Definition
2.5.15 "Subject.Type" Definition
2.5.16 "SubjectSet.Type" Definition
2.5.17 "TextComplexity.Type" Definition
2.5.18 "Vendor.Type" Definition
2.5.19 "imsx_CodeMinor.Type" Definition
Appendix A OpenAPI Modeling Terms
A1 OpenAPI Descriptions Explanations
A1.1 OpenAPI General Information Table Explanation
A1.2 OpenAPI Tags Table Explanation
A1.3 OpenAPI Security Table Explanation
Appendix B OpenAPI Listings
Table 2.1 - The Set of General Information Defined in the OpenAPI Description.
Table 2.2 - The Set of Tags Defined in the OpenAPI Description.
Table 2.4.1 - The Set of HTTP Verbs Permitted on the "/resources" Path.
Table 2.4.2 - The Set of HTTP Verbs Permitted on the "/subjects" Path.
Table 2.5.1 - OpenAPI JSON Schema description for the "CCLTILink.Type" Complex Type.
Table 2.5.2 - OpenAPI JSON Schema description for the "CSMSet.Type" Complex Type.
Table 2.5.3 - OpenAPI JSON Schema description for the "CurriculumStandardsMetadata.Type" Complex Type.
Table 2.5.4 - OpenAPI JSON Schema description for the "LTILink.Type" Complex Type.
Table 2.5.5 - OpenAPI JSON Schema description for the "LTILinkResourceRef.Type" Complex Type.
Table 2.5.6 - OpenAPI JSON Schema description for the "LabelledGUID.Type" Complex Type.
Table 2.5.7 - OpenAPI JSON Schema description for the "LearningObjectives.Type" Complex Type.
Table 2.5.8 - OpenAPI JSON Schema description for the "Metadata.Type" Complex Type.
Table 2.5.9 - OpenAPI JSON Schema description for the "PlatformPropertySet.Type" Complex Type.
Table 2.5.10 - OpenAPI JSON Schema description for the "Property.Type" Complex Type.
Table 2.5.11 - OpenAPI JSON Schema description for the "PropertySet.Type" Complex Type.
Table 2.5.12 - OpenAPI JSON Schema description for the "Resource.Type" Complex Type.
Table 2.5.13 - OpenAPI JSON Schema description for the "ResourceSet.Type" Complex Type.
Table 2.5.14 - OpenAPI JSON Schema description for the "SetOfGUIDs.Type" Complex Type.
Table 2.5.15 - OpenAPI JSON Schema description for the "Subject.Type" Complex Type.
Table 2.5.16 - OpenAPI JSON Schema description for the "SubjectSet.Type" Complex Type.
Table 2.5.17 - OpenAPI JSON Schema description for the "TextComplexity.Type" Complex Type.
Table 2.5.18 - OpenAPI JSON Schema description for the "Vendor.Type" Complex Type.
Table 2.5.19 - OpenAPI JSON Schema description for the "imsx_CodeMinor.Type" Complex Type.
Table 2.5.20 - OpenAPI JSON Schema description for the "imsx_CodeMinorField.Type" Complex Type.
Table 2.5.21 - OpenAPI JSON Schema description for the "imsx_StatusInfo.Type" Complex Type.
Table A1.1 The key to the tabular description of the OpenAPI general information
Table A1.2 The key to the tabular description of the OpenAPI tags information
Table A1.3 The key to the tabular description of the OpenAPI security information.
Table A1.4 The key to the tabular description of the OpenAPI paths information for an HTTP Verb
Table A1.5 The key to the tabular description of the OpenAPI definitions information
This document is the LTI Resources Search (RS) OpenAPI Definition v1.0 and as such it is used as the basis for implementing the RS Service Model. The key related documents are:
This service model and this REST/JSON binding is described using the Unified Modeling Language (UML) based upon the IMS Global Model Driven Specification approach and the associated modelling toolkit [I-BAT, 06]. This specification is based upon the concepts of:
The OpenAPI files are based upon the OpenAPI Specification [OAS, 14] version 2.
All sections marked as non-normative, all authoring guidelines, diagrams (with the exception of the UML diagrams), examples, and notes in this specification are non-normative. Everything else in this specification is normative.
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC 2119]. This means that from the perspective of conformance:
The Conformance and Certification Guide for this specification may introduce greater normative constraints than those defined here for specific service or implementation categories.
The SHOULD/SHOULD NOT/RECOMMENDED statements MUST NOT be used in any document, or section of a document, that is responsible for defining the information model and/or the associated bindings and/or conformance and certification.
The structure of the rest of this document is:
2. Service OpenAPI Description | A detailed explanation of the structure of the OpenAPI files that are produced as part of the specification documentation. The associated JSON and YAML files are supplied in Appendix B; |
References | The set of references cited throughout this document. |
Appendix A OpenAPI Modeling Terms | An overview of the model driven approach, the concepts and the terms used by IMS to create the service model REST/JSON binding definitions (based upon a profile of UML) and the accompanying documentation (including this OpenAPI definition); |
Appendix B OpenAPI Listings | The listings of the OpenAPI(JSON) and OpenAPI(YAML) files that have been created to define the REST/JSON binding in a machine-readable format i.e. conforming to the OpenAPI 2.0 specification. |
API | Application Programming Interface |
AfAPNP | Access for All Personal Needs and Preferences |
CASE | Competencies and Academic Standards Exchange |
HTTP | Hypertext Transfer Protocol |
I-BAT | IMS Binding Autogeneration Toolkit |
IETF | Internet Engineering Task Force |
ISO | International Standards Organization |
JSON | Java Script Object Notation |
LOR | Learning Object Repository |
LTI | Learning Tools Interoperability |
OAS | OpenAPI Specification |
PNP | Personal Needs and Preferences |
REST | Representation State Transfer |
RFC | Request for Comments |
RS | LTI Resource Search |
TLS | Transport Layer Security |
UML | Unified Modeling Language |
URI | Uniform Resource Identifier |
URL | Uniform Resource Locator |
YAML | Yet Another Markup Language |
This Section is NORMATIVE
The set of General Information defined in the OpenAPI description, and realised in both the JSON and YAML instances, is listed in Table 2.1. The syntax and semantics for this information are described in Appendix A1.1.
The set of Tags defined in the OpenAPI description, and realised in both the JSON and YAML instances, is listed in Table 2.2. The syntax and semantics for these Tags are described in Appendix A1.2.
Tag Name | Description |
---|---|
ResourceSearchManager | The set of service operations that manage searching for resources. The set of endpoints assigned to this tag are:
|
SubjectsManager | The set of service operations that manage access to the lists of subjects supported by a LOR. The set of endpoints assigned to this tag are:
|
There is no security approach defined for this specification and so there are no Security Mode features included in the OpenAPI definition.
The following Tables describe the OpenAPI information for each of the Paths. The syntax and semantics for these Paths are described in Appendix A1.4.
The following Table describes the OpenAPI information for the HTTP Verb "GET" on the "/resources" Path.
HTTP Verb: GET | |||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Operation ID | searchForResources | ||||||||||||||||||||||||||||
Summary | The REST "read" request message for the "searchForResources()" API call. | ||||||||||||||||||||||||||||
Tags | ResourceSearchManager | ||||||||||||||||||||||||||||
Description | This is the search request. The criteria for the search are passed as query parameters and the set of identified resources are returned in the payload for the response message. | ||||||||||||||||||||||||||||
Path Placeholders | Path placeholders are not permitted. | ||||||||||||||||||||||||||||
Query Parameters |
|
||||||||||||||||||||||||||||
Responses |
|
The following Table describes the OpenAPI information for the HTTP Verb "GET" on the "/subjects" Path.
HTTP Verb: GET | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Operation ID | getAllSubjects | |||||||||||||||||||||||||||
Summary | The REST "read" request message for the "getAllSubjects()" API call. | |||||||||||||||||||||||||||
Tags | SubjectsManager | |||||||||||||||||||||||||||
Description | To obtain, read, the list of subjects that are supported by a LOR. | |||||||||||||||||||||||||||
Path Placeholders | Path placeholders are not permitted. | |||||||||||||||||||||||||||
Query Parameters | Query parameters are not permitted. | |||||||||||||||||||||||||||
Responses |
|
The following Tables describe the OpenAPI information for each of the JSON Schema Definitions. The syntax and semantics for these JSON Schema Definition descriptions are described in Appendix A1.5.
The OpenAPI JSON Schema description for the "CCLTILink.Type" Complex Type is given in Table 2.5.1.
Annotations | The extended set of information used to define the presence of an LTI Link resource (this is based upon the definition for including an LTI link inside an IMS Common Cartridge or IMS Thin Common Cartridge). |
Diagram | To be supplied in a later release of this document |
Type Hierarchy | LTILink.Type ^---CCLTILink.Type |
Model | title{1..1} ! description{0..1} ! custom{0..1} ! extensions{0..1} ! launch_url{0..1} ! secure_launch_url{0..1} ! icon{0..1} ! secure_icon{0..1} ! vendor{1..1} ! cartridge_bundle{0..1} ! cartridge_icon{0..1} ! metadata{0..1} |
Source |
"CCLTILink.Type" : { "description" : "...", "type" : "object", "allOf" : [ { "$ref" : "#/definitions/LTILink.Type" }, { "type" : "object", "properties" : { "cartridge_bundle" : { "$ref" : "#/definitions/LTILinkResourceRef.Type" }, "cartridge_icon" : { "$ref" : "#/definitions/LTILinkResourceRef.Type" }, "metadata" : { "$ref" : "#/definitions/Metadata.Type" } }, "additionalProperties" : false } ] }, |
The OpenAPI JSON Schema description for the "CSMSet.Type" Complex Type is given in Table 2.5.2.
The OpenAPI JSON Schema description for the "CurriculumStandardsMetadata.Type" Complex Type is given in Table 2.5.3.
The OpenAPI JSON Schema description for the "LTILink.Type" Complex Type is given in Table 2.5.4.
The OpenAPI JSON Schema description for the "LTILinkResourceRef.Type" Complex Type is given in Table 2.5.5.
The OpenAPI JSON Schema description for the "LabelledGUID.Type" Complex Type is given in Table 2.5.6.
The OpenAPI JSON Schema description for the "LearningObjectives.Type" Complex Type is given in Table 2.5.7.
The OpenAPI JSON Schema description for the "Metadata.Type" Complex Type is given in Table 2.5.8.
The OpenAPI JSON Schema description for the "PlatformPropertySet.Type" Complex Type is given in Table 2.5.9.
The OpenAPI JSON Schema description for the "Property.Type" Complex Type is given in Table 2.5.10.
The OpenAPI JSON Schema description for the "PropertySet.Type" Complex Type is given in Table 2.5.11.
The OpenAPI JSON Schema description for the "Resource.Type" Complex Type is given in Table 2.5.12.
The OpenAPI JSON Schema description for the "ResourceSet.Type" Complex Type is given in Table 2.5.13.
The OpenAPI JSON Schema description for the "SetOfGUIDs.Type" Complex Type is given in Table 2.5.14.
The OpenAPI JSON Schema description for the "Subject.Type" Complex Type is given in Table 2.5.15.
The OpenAPI JSON Schema description for the "SubjectSet.Type" Complex Type is given in Table 2.5.16.
The OpenAPI JSON Schema description for the "TextComplexity.Type" Complex Type is given in Table 2.5.17.
The OpenAPI JSON Schema description for the "Vendor.Type" Complex Type is given in Table 2.5.18.
The OpenAPI JSON Schema description for the "imsx_CodeMinor.Type" Complex Type is given in Table 2.5.19.
The OpenAPI JSON Schema description for the "imsx_CodeMinorField.Type" Complex Type is given in Table 2.5.20.
The OpenAPI JSON Schema description for the "imsx_StatusInfo.Type" Complex Type is given in Table 2.5.21.
[CASE, 17] | Competencies and Academic Standards Exchange (CASE) Service, B.Grogan, G.Nadeau, C.Smythe and J.Hobson, IMS Global Learning Consortium Inc., July 2017, https://www.imsglobal.org/sites/default/files/CASE/casev1p0/information_model/caseservicev1p0_infomodelv1p0.html. |
[I-BAT, 06] | IMS Binding Auto-generation Toolkit (I-BAT), C.Smythe, IMS Global Learning Consortium Inc., July 2006. |
[ISO 8601] | ISO8601:2004 Data elements and interchange formats - Information interchange - Representation of dates and times, ISO, International Standards Organization (ISO), 2000. |
[OAS, 14] | OpenAPI Specification (version 2), D.Miller, J.Harmon, J.Whitlock, K.Hahn, M.Gardiner, M.Ralphson, R.Dolin, R.Ratovsky and T.Tam, OpenAPI Initiative (Linux Foundation), September 2014, https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md. |
[RFC 2119] | Key words for use in RFCs to Indicate Requirement Levels., S. Bradner, IETF (RFC 2119), March 1997, https://tools.ietf.org/html/rfc2119. |
[RFC 3066] | Tags for the Identification of Languages, H.Alvestrand, IETF (RFC 3066), January 2001, https://www.ietf.org/rfc/rfc3066.txt. |
[RS-BP, 18] | IMS LTI Resources Search Service 1.0 Best Practices and Implementation Guide Final Release, A.Blum, T.Ingram, V.Jaiswal and J.Hobson, IMS Global Learning Consortium Inc., September 2018, http://www.imsglobal.org/lti/rsv1p0/rsservicev1p0_bpigv1p0.html. |
[RS-CC, 18] | IMS LTI Resources Search Service 1.0 Conformance and Certification Final Release, A.Blum, T.Ingram, V.Jaiswal and C.Smythe, IMS Global Learning Consortium Inc., September 2018, http://www.imsglobal.org/lti/rsv1p0/rsservicev1p0_conformancev1p0.html. |
[RS-RJ, 18] | IMS LTI Resources Search Service 1.0 REST/JSON Final Release, A.Blum, T.Ingram, V.Jaiswal and C.Smythe, IMS Global Learning Consortium Inc., September 2018, http://www.imsglobal.org/lti/rsv1p0/rsservicev1p0_restbindv1p0.html. |
[RS-SM, 18] | IMS LTI Resources Search Service 1.0 Service Model Final Release, A.Blum, T.Ingram, V.Jaiswal and C.Smythe, IMS Global Learning Consortium Inc., September 2018, http://www.imsglobal.org/lti/rsv1p0/rsservicev1p0_infomodelv1p0.html. |
[RS-UC, 18] | IMS LTI Resources Search Service 1.0 Use-cases Final Release, T.Ingram, A.Blum, V.Jaiswal and J.Hobson, IMS Global Learning Consortium Inc., September 2018, http://www.imsglobal.org/lti/rsv1p0/rsservicev1p0_usecasesv1p0.html. |
[UNICODE, 16] | UNICODE Collation Algorithm Version 9.0, M.Davis, K.Whistler and M.Scheer, Unicode Technical Standard #10, May 2016. |
This Section is NON-NORMATIVE.
These definitions are with respect to the OpenAPI version 2 specification [OAS, 14].
Table A1.1 provides the key to the OpenAPI general information.
Category | Definition and Usage |
---|---|
Swagger Version | The version of the OpenAPI/Swagger specification for this OpenAPI description (this must be set as 2.0). |
Specification Title | The title of the specification being described. |
Specification Version | The version of the specification being described. |
Description | A short, human readable description of the specification being described using OpenAPI. |
Terms of Service | The Terms of Service for the API. |
Contact | The contact information for the API. For the IMS OpenAPI released files this will be set as "Lisa Mattson (IMS COO)". When used for an implementation this should be changed to the actual contact person. |
License | The URL for the associated IMS License for the use of this OpenAPI description. |
Host | The host (name or ip) serving the API. For the IMS OpenAPI released files this will be set as "www.imsglobal.org". When used for an implementation this should be changed to the actual host. |
Base Path | The base path that MUST be used in the endpoint URLs (this is relative to the host). |
Schemes | The set of transfer protocols that are supported using this API. This is a comma separated list. |
Consumes | A list of MIME types the APIs can consume. This is a comma separated list. |
Produces | A list of MIME types the APIs can produce. This is a comma separated list. |
Table A1.2 provides the key to the tabular description of the OpenAPI tags information.
Category | Definition and Usage |
---|---|
Tag Name | The title of the tag (this must be unique). The tags are derived from the set of Interfaces defined in the Behavioral Model. |
Description | A human readable description of the tag. This is the comment associated with the Interface in the Behavioral Model. The list of associated endpoints assigned to this tag are listed with links to the OpenAPI description of those endpoints. |
Table A1.3 provides the key to the tabular description of the OpenAPI security information.
Category | Definition and Usage |
---|---|
Security Label | The label by which this mode is identified within the OpenAPI file. |
Type | The security mode supported. The permitted values are:
|
Description | A human readable description of the usage of this security scheme. |
Flow | The flow used by the OAuth2 security scheme. The permitted values are:
|
Token URL | The token URL to be used for this flow. A value must be supplied for the "password", "application" and "accessMode" flows in OAuth 2 |
Scopes | The set of labels by which the global scope will be identified. |
Global Scope | The default identification of the security mode to be applied to an endpoint. |
Table A1.4 provides the key to the OpenAPI paths information for an HTTP Verb.
Category | Definition and Usage |
---|---|
Operation ID | A unique identifier for the service operation. This is the name of the operation defined in the Behavioral Model. |
Summary | A human readable summary of the objective of the service operation. |
Tags | The tag which has been assigned to this operation. The tag is determined by the Interface under which the operation is defined in the Behavioral Model. |
Description | A human readable summary of the objective of the service operation. This is derived from the associated description of the operation supplied in the Behavioral Model. |
Path Placeolders | The set of placeholders, and their meaning, in the URL path that will be replaced by the appopriate values in the request calls. |
Query Parameters | The set of query parameters that are permitted on the request calls. For each query parameter the following information is supplied:
|
Responses | The set of query responses that are permitted for the request. For each response the following information is supplied:
|
Table A1.5 provides the key to the OpenAPI definitions information.
Category | Definition and Usage |
---|---|
Annotations | The definition of the complex-type as supplied in the data model definition for the associated class. |
Diagram | A visual representation of the definition of the complex-type. These diagrams will be supplied in later versions of the specficiation. |
Type Hierachy | The identification of the superclass upon which this type is based (the superclass is shown on the top line). This indicates the source of the inherited set of JSON properties (this line is only displayed when there is a type hierarchy). |
Model | The set of child properties. This is an ordered list of properties (as per the implied or actual sequence in the object) and accompanied by their multiplicity. In the case where the type is an enumeration or primitiveType then the value is "N/A". The value may also be "Empty" to indicate that no children are permitted. In some situations the value may be "None" denoting that there are no children defined e.g. for a base class from which other classes are derived and which may have children as part of the extension. |
Source | The equivalent JSON Schema (OpenAPI dialect) code for the declaration of the complex-type. This is the full declaration. See the coresponding OpenAPI documentation [OAS, 14] for the description of the permitted contents for this declaration. |
This Section is NOT NORMATIVE.
The OpenAPI 2 (JSON) listing (based upon [OAS, 14]) is shown below (the OpenAPI JSON is available at: https://purl.imsglobal.org/rs/v1p0/schema/openapi/imsrsv1p0_openapi2_v1p0.json).
{ "swagger" : "2.0", "info" : { "version" : "1.0", "title" : "LTI Resource Search Service OpenAPI (JSON) Definition", "description" : "The IMS LTI Resource Search (RS) Service defines how to search digital respositories for a set of resources. ", "termsOfService" : "Permission is granted to all parties to use excerpts from this document as needed in producing requests for proposals. The limited permissions granted above are perpetual and will not be revoked by IMS or its successors or assigns. THIS API DEFINITION IS BEING OFFERED WITHOUT ANY WARRANTY WHATSOEVER, AND IN PARTICULAR, ANY WARRANTY OF NONINFRINGEMENT IS EXPRESSLY DISCLAIMED. ANY USE OF THIS SPECIFICATION SHALL BE MADE ENTIRELY AT THE IMPLEMENTERS OWN RISK, AND NEITHER THE CONSORTIUM, NOR ANY OF ITS MEMBERS OR SUBMITTERS, SHALL HAVE ANY LIABILITY WHATSOEVER TO ANY IMPLEMENTER OR THIRD PARTY FOR ANY DAMAGES OF ANY NATURE WHATSOEVER, DIRECTLY OR INDIRECTLY, ARISING FROM THE USE OF THIS API DEFINITION.", "contact" : { "name" : "Lisa Mattson (COO), IMS Global ", "url" : "http://www.imsglobal.org", "email" : "lmattson@imsglobal.org" }, "license" : { "name" : "IMS Global", "url" : "https://www.imsglobal.org/license.html" } }, "host" : "www.imsglobal.org", "basePath" : "/ims/rs/v1p0", "schemes" : [ "http","https" ], "tags" : [ { "name" : "ResourceSearchManager", "description" : "The set of service operations that manage searching for resources." }, { "name" : "SubjectsManager", "description" : "The set of service operations that manage access to the lists of subjects supported by a LOR." } ], "paths" : { "/resources" : { "get" : { "operationId" : "searchForResources", "summary" : "The REST read request message for the searchForResources() API call.", "tags" : [ "ResourceSearchManager" ], "description" : "This is the search request. The criteria for the search are passed as query parameters and the set of identified resources are returned in the payload for the response message.", "parameters" : [ { "name" : "limit", "in" : "query", "description" : "This is used as part of the data pagination mechanism to control the number of records returned in any one response message. The 'limit' defines the download segmentation value i.e. the maximum number of records to be contained in the response. The form of implementation is described in the corresponding binding document(s).", "required" : false, "type" : "integer", "format" : "int32", "allowEmptyValue" : false, "default" : 100, "minimum" : 1 }, { "name" : "offset", "in" : "query", "description" : "This is used as part of the data pagination mechanism to control the download rate of data. The 'offset' is the number of the first record to be supplied in the segmented response message. The form of implementation is described in the corresponding binding document(s).", "required" : false, "type" : "integer", "format" : "int32", "allowEmptyValue" : false, "default" : 0, "minimum" : 0 }, { "name" : "filter", "in" : "query", "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message. Filtering defines the search criteria to be applied at the service provider for the identification and selection of the resources to be returned. A strict vocabulary is used for the permitted search terms (see the RS REST/JSON binding document 'Keyword Searching' in Sub-section 3.1 [RS-RJ, 18]).", "required" : false, "type" : "string", "allowEmptyValue" : false }, { "name" : "sort", "in" : "query", "description" : "This is used as part of the sorting mechanism to be use by the service provider. The 'sort' identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The form of implementation is described in the corresponding binding document(s).", "required" : false, "type" : "string", "allowEmptyValue" : false }, { "name" : "orderBy", "in" : "query", "description" : "This is used as part of the sorting mechanism to be use by the service provider. This defines the form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The form of implementation is described in the corresponding binding document(s).", "required" : false, "type" : "string", "enum" : [ "asc","desc" ], "allowEmptyValue" : false }, { "name" : "fields", "in" : "query", "description" : "To identify the range of fields, and only those fields, that should be supplied in the response message. The permitted vocabulary for these fields is determined by the payloads that are returned in the corresponding response messages.", "required" : false, "type" : "array", "items" : { "type" : "string" }, "collectionFormat" : "csv", "allowEmptyValue" : false } ], "responses" : { "200" : { "description" : "The response code for when the query request has been successfully completed and the set of identified resources returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status'", "schema" : { "$ref" : "#/definitions/ResourceSet.Type" } }, "400" : { "description" : "The request has been declared as 'bad'. This will be due to the provision of bad data in the request query parameters. This is accompanied by the 'codeMajor/severity' values of 'failure/error'.", "schema" : { "$ref" : "#/definitions/imsx_StatusInfo.Type" } }, "401" : { "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ", "schema" : { "$ref" : "#/definitions/imsx_StatusInfo.Type" } }, "403" : { "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.", "schema" : { "$ref" : "#/definitions/imsx_StatusInfo.Type" } }, "500" : { "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ", "schema" : { "$ref" : "#/definitions/imsx_StatusInfo.Type" } }, "default" : { "description" : "This is the response data payload to be supplied when the HTTP code is NOT explicitly defined. This would be accompanied by the 'codeMajor/severity' values of 'failure/error' and the appropriate 'codeMinor' value. The associated HTTP code will also be supplied.", "schema" : { "$ref" : "#/definitions/imsx_StatusInfo.Type" } }, "422" : { "description" : "This error condition may occur if a JSON request body contains well-formed i.e. syntactically correct, but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ", "schema" : { "$ref" : "#/definitions/imsx_StatusInfo.Type" } }, "429" : { "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.", "schema" : { "$ref" : "#/definitions/imsx_StatusInfo.Type" } } } } }, "/subjects" : { "get" : { "operationId" : "getAllSubjects", "summary" : "The REST read request message for the getAllSubjects() API call.", "tags" : [ "SubjectsManager" ], "description" : "To obtain, read, the list of subjects that are supported by a LOR.", "responses" : { "200" : { "description" : "The response code for when the query request has been successfully completed and the set of subjects returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status'", "schema" : { "$ref" : "#/definitions/SubjectSet.Type" } }, "400" : { "description" : "The request has been declared as 'bad'. This will be due to the provision of bad data in the request query parameters. This is accompanied by the 'codeMajor/severity' values of 'failure/error'.", "schema" : { "$ref" : "#/definitions/imsx_StatusInfo.Type" } }, "401" : { "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ", "schema" : { "$ref" : "#/definitions/imsx_StatusInfo.Type" } }, "403" : { "description" : "This is used to indicate that the server can be reached and process the request but refuses to take any further action. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.", "schema" : { "$ref" : "#/definitions/imsx_StatusInfo.Type" } }, "422" : { "description" : "This error condition may occur if a JSON request body contains well-formed i.e. syntactically correct, but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ", "schema" : { "$ref" : "#/definitions/imsx_StatusInfo.Type" } }, "429" : { "description" : "The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.", "schema" : { "$ref" : "#/definitions/imsx_StatusInfo.Type" } }, "500" : { "description" : "This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. ", "schema" : { "$ref" : "#/definitions/imsx_StatusInfo.Type" } }, "default" : { "description" : "This is the response data payload to be supplied when the HTTP code is NOT explicitly defined. This would be accompanied by the 'codeMajor/severity' values of 'failure/error' and the appropriate 'codeMinor' value. The associated HTTP code will also be supplied.", "schema" : { "$ref" : "#/definitions/imsx_StatusInfo.Type" } } } } } }, "definitions" : { "CCLTILink.Type" : { "description" : "The extended set of information used to define the presence of an LTI Link resource (this is based upon the definition for including an LTI link inside an IMS Common Cartridge or IMS Thin Common Cartridge).", "type" : "object", "allOf" : [ { "$ref" : "#/definitions/LTILink.Type" }, { "type" : "object", "properties" : { "cartridge_bundle" : { "$ref" : "#/definitions/LTILinkResourceRef.Type" }, "cartridge_icon" : { "$ref" : "#/definitions/LTILinkResourceRef.Type" }, "metadata" : { "$ref" : "#/definitions/Metadata.Type" } }, "additionalProperties" : false } ] }, "CSMSet.Type" : { "description" : "This is the is the container for the set of curriculum standards metadata. Each member of the set contains the curriculum standards metadata for a specific source of the GUIDs.", "type" : "object", "properties" : { "resourceLabel" : { "description" : "Model Primitive Datatype = NormalizedString. This is a human readable label used to identify the type of resource, or part of resource, to which the enclosed metadata refers.", "type" : "string" }, "resourcePartId" : { "description" : "Model Primitive Datatype = NormalizedString. This is used to contain the appropriate identifier that is used to identify the resource part.", "type" : "string" }, "curriculumStandardsMetadata" : { "description" : "The curriculum standards associated from a single source of the curriculum standards definition.", "type" : "array", "minItems" : 1, "items" : { "$ref" : "#/definitions/CurriculumStandardsMetadata.Type" } } }, "required" : [ "curriculumStandardsMetadata" ], "additionalProperties" : false }, "CurriculumStandardsMetadata.Type" : { "description" : "This is the container for the special metadata for curriculum standards for a particular domain of GUID provider.", "type" : "object", "properties" : { "providerId" : { "description" : "Model Primitive Datatype = NormalizedString. This is used to denote the originator of the GUID scheme.", "type" : "string" }, "setOfGUIDs" : { "description" : "The set of curriculum standards GUIDs that apply to the learning associated resource.", "type" : "array", "minItems" : 1, "items" : { "$ref" : "#/definitions/SetOfGUIDs.Type" } } }, "required" : [ "setOfGUIDs" ], "additionalProperties" : false }, "LTILink.Type" : { "description" : "The container for all of the core information about an LTI Link. ", "type" : "object", "properties" : { "title" : { "description" : "Model Primitive Datatype = NormalizedString. The human readable title/label for the activity being addressed by the content available through the LTI link.", "type" : "string" }, "description" : { "description" : "Model Primitive Datatype = String. A human readable description of the activity addressed by the content supplied via the LTI link.", "type" : "string" }, "custom" : { "$ref" : "#/definitions/PropertySet.Type" }, "extensions" : { "$ref" : "#/definitions/PlatformPropertySet.Type" }, "launch_url" : { "description" : "Model Primitive Datatype = AnyURI. The URL for the LTI launch. One of either the launch_url or the secure_launch_url must be specified. It is acceptable to specify both and if both are specified, the Tool Consumer (TC) decides which to use. Typically, the TC will use a secure_launch_url when embedding the Tool in a secure page and the launch_url when embedding the tool in a non-secure page. So, it is important that the Tool Provider (TP) provides the same functionality whether the launch_url or secure_launch_url is used.", "type" : "string", "format" : "uri" }, "secure_launch_url" : { "description" : "Model Primitive Datatype = AnyURI. A secure URL for the LTI launch. One of either the launch_url or the secure_launch_url must be specified. It is acceptable to specify both and if both are specified, the Tool Consumer (TC) decides which to use. Typically, the TC will use a secure_launch_url when embedding the Tool in a secure page and the launch_url when embedding the tool in a non-secure page. So, it is important that the Tool Provider (TP) provides the same functionality whether the launch_url or secure_launch_url is used.", "type" : "string", "format" : "uri" }, "icon" : { "description" : "Model Primitive Datatype = AnyURI. A URL to an icon for this tool.", "type" : "string", "format" : "uri" }, "secure_icon" : { "description" : "Model Primitive Datatype = AnyURI. A secure URL to an icon for this tool.", "type" : "string", "format" : "uri" }, "vendor" : { "$ref" : "#/definitions/Vendor.Type" } }, "required" : [ "title","vendor" ], "additionalProperties" : false }, "LTILinkResourceRef.Type" : { "description" : "The container for the link information.", "type" : "object", "properties" : { "name" : { "description" : "Model Primitive Datatype = NormalizedString. The name of the type of content supplied by the link.", "type" : "string" }, "resourceUri" : { "description" : "Model Primitive Datatype = AnyURI. The URI for the link.", "type" : "string", "format" : "uri" } }, "required" : [ "name","resourceUri" ], "additionalProperties" : false }, "LabelledGUID.Type" : { "description" : "The labelled curriculum standard GUID.", "type" : "object", "properties" : { "label" : { "description" : "Model Primitive Datatype = NormalizedString. A human readable string to provide a clue about the nature of the curriculum standard.", "type" : "string" }, "caseItemURI" : { "description" : "Model Primitive Datatype = AnyURI. The corresponding Competency and Academic Standards (CASE) URI. This is the URI used for alignment with the IMS CASE Service 1.0 specification [CASE, 17].", "type" : "string", "format" : "uri" }, "GUID" : { "description" : "Model Primitive Datatype = NormalizedString. The GUID itself.", "type" : "string" } }, "required" : [ "GUID" ], "additionalProperties" : false }, "LearningObjectives.Type" : { "description" : "The container for the learning objectives which are addressed by the resource.", "type" : "object", "properties" : { "alignmentType" : { "description" : "A category of alignment between the learning resource and the framework node.", "type" : "string", "enum" : [ "assesses","teaches","requires","textComplexity","readingLevel","educationalSubject","educationLevel" ] }, "educationalFramework" : { "description" : "Model Primitive Datatype = NormalizedString. The framework to which the resource being described is aligned.", "type" : "string" }, "targetDescription" : { "description" : "Model Primitive Datatype = NormalizedString. The description of a node in an established educational framework.", "type" : "string" }, "targetName" : { "description" : "Model Primitive Datatype = NormalizedString. The name of a node in an established educational framework.", "type" : "string" }, "targetURL" : { "description" : "Model Primitive Datatype = AnyURI. The URL of a node in an established educational framework.", "type" : "string", "format" : "uri" }, "caseItemUri" : { "description" : "Model Primitive Datatype = AnyURI. Reference to a CASE CFItem for a standard or skill [CASE, 17].", "type" : "string", "format" : "uri" }, "caseItemGUID" : { "description" : "Model Primitive Datatype = NormalizedString. Reference to CASE CFItem as a GUID [CASE, 17].", "type" : "string" } }, "required" : [ "alignmentType" ], "additionalProperties" : false }, "Metadata.Type" : { "description" : "The container for all of the metadata associated with the LTI link. Currently this metadata is restricted to the set of curriculum standards annotations.", "type" : "object", "properties" : { "curriculumStandardsMetadataSet" : { "$ref" : "#/definitions/CSMSet.Type" } }, "additionalProperties" : false }, "PlatformPropertySet.Type" : { "description" : "The container for the collection of properties that are available for a specific platform.", "type" : "object", "properties" : { "platform" : { "description" : "Model Primitive Datatype = NormalizedString. The identifier for the authoring environment.", "type" : "string" }, "properties" : { "description" : "The set of extension properties for the identified platform.", "type" : "array", "minItems" : 1, "items" : { "$ref" : "#/definitions/Property.Type" } } }, "required" : [ "platform","properties" ], "additionalProperties" : false }, "Property.Type" : { "description" : "The container for the name/value pair for a specific property.", "type" : "object", "properties" : { "name" : { "description" : "Model Primitive Datatype = NormalizedString. The name of the key for the property.", "type" : "string" }, "value" : { "description" : "Model Primitive Datatype = NormalizedString. The value for the property.", "type" : "string" } }, "required" : [ "name","value" ], "additionalProperties" : false }, "PropertySet.Type" : { "description" : "The container for the collection of properties that have been specified.", "type" : "object", "properties" : { "properties" : { "description" : "The set of properties for the identified platform or orginal authoring platform.", "type" : "array", "minItems" : 1, "items" : { "$ref" : "#/definitions/Property.Type" } } }, "required" : [ "properties" ], "additionalProperties" : false }, "Resource.Type" : { "description" : "The container for the information about a resource that is supported by a LOR.", "type" : "object", "properties" : { "name" : { "description" : "Model Primitive Datatype = NormalizedString. The name/title of resource.", "type" : "string" }, "description" : { "description" : "Model Primitive Datatype = NormalizedString. A human readable description of the contents of the resource.", "type" : "string" }, "subject" : { "description" : "Model Primitive Datatype = NormalizedString. The subject(s) of the resource. May have multiple subjects tagged.", "type" : "array", "minItems" : 0, "items" : { "type" : "string" } }, "url" : { "description" : "Model Primitive Datatype = AnyURI. How to access resource over Internet e.g. HTTP, FTP, etc. A resource must have either a URL or or a LTI Link.", "type" : "string", "format" : "uri" }, "ltiLink" : { "$ref" : "#/definitions/CCLTILink.Type" }, "learningResourceType" : { "description" : "The type of the resource. There may be multiple types.", "type" : "array", "minItems" : 1, "items" : { "enum" : [ "Assessment/Item","Assessment/Formative","Assessment/Interim","Assessment/Rubric","Assessment/Preparation","Collection/Course","Collection/Unit","Collection/Curriculum Guide","Collection/Lesson","Game","Interactive/Simulation","Interactive/Animation","Interactive/Whiteboard","Activity/Worksheet","Activity/Learning","Activity/Experiment","Lecture","Text/Book","Text/Chapter","Text/Document","Text/Article","Text/Passage","Text/Textbook","Text/Reference","Text/Website","Media/Audio","Media/Images/Visuals","Media/Video","Other" ] } }, "language" : { "description" : "Model Primitive Datatype = Language. The languages used in the resource. International two digit code for language e.g. 'en' for English. Use the [RFC 3066] annotation.", "type" : "array", "minItems" : 0, "items" : { "type" : "string" } }, "thumbnailUrl" : { "description" : "Model Primitive Datatype = AnyURI. Link to a thumbnail representing resource.", "type" : "string", "format" : "uri" }, "typicalAgeRange" : { "description" : "Model Primitive Datatype = NormalizedString. Age of the typical intended user. This is described as EITHER the minimum-maximum age range (the format is '11-12', '5-7', etc. with ONLY integers permitted) OR the age as a single integer e.g. '9'.", "type" : "string" }, "textComplexity" : { "description" : "A number indicating text complexity based on number of established measures.", "type" : "array", "minItems" : 0, "items" : { "$ref" : "#/definitions/TextComplexity.Type" } }, "learningObjectives" : { "description" : "The set of learning objectives addressed by the resource.", "type" : "array", "minItems" : 0, "items" : { "$ref" : "#/definitions/LearningObjectives.Type" } }, "author" : { "description" : "Model Primitive Datatype = NormalizedString. Author or creator of the resource.", "type" : "array", "minItems" : 0, "items" : { "type" : "string" } }, "publisher" : { "description" : "Model Primitive Datatype = NormalizedString. Owner of the rights to the resource or who made it available (company or person).", "type" : "string" }, "useRightsURL" : { "description" : "Model Primitive Datatype = AnyURI. URL describing how resource can be licensed. Could be Creative Commons license link or link to other specific open or proprietary license.", "type" : "string", "format" : "uri" }, "timeRequired" : { "description" : "Model Primitive Datatype = Duration. Time that the resource takes to consume. Use the [ISO 8601] format for a duration.", "type" : "string" }, "technicalFormat" : { "description" : "Model Primitive Datatype = NormalizedString. A valid MIME type format for the resource e.g. text, HTML, PDF, MPEG, MP3, etc. See https://www.iana.org/assignments/media-types/media-types.xhtml.", "type" : "string" }, "educationalAudience" : { "description" : "For whom the resource is intended.", "type" : "array", "minItems" : 0, "items" : { "enum" : [ "student","teacher","administrator","parent","aide","proctor","guardian","relative" ] } }, "accessibilityAPI" : { "description" : "Which (if any) accessibility API is supported by the resource.", "type" : "array", "minItems" : 0, "items" : { "enum" : [ "MSAA","UIAutomation","ARIAv1","IAccessible2","AndroidAccessibility","ATK","AT-SPI","BlackberryAccessibility","JavaAccessibility","MacOSXAccessibility" ] } }, "accessibilityInputMethods" : { "description" : "How the resource can be controlled by the user, which includes full keyboard controllability, mouse controllability, and voice controllability.", "type" : "array", "minItems" : 0, "items" : { "enum" : [ "fullKeyboardControl","fullMouseControl","fullVoiceControl" ] } }, "accessibilityFeatures" : { "description" : "Model Primitive Datatype = NormalizedString. These include alternatives and listed enhancements for the resource. These can be transformation features, navigation features, control features or augmentation features.", "type" : "array", "minItems" : 0, "items" : { "type" : "string" } }, "accessibilityHazards" : { "description" : "The set of accessibility hazards which are encountered when using this resource.", "type" : "array", "minItems" : 0, "items" : { "enum" : [ "flashing","sound","olfactoryHazard","motionSimulation" ] } }, "accessMode" : { "description" : "The human sensory perceptual system or cognitive faculty through which a person may process or perceive information.", "type" : "array", "minItems" : 0, "items" : { "enum" : [ "auditory","color","itemSize","olfactory","orientation","position","tactile","textOnImage","textual","visual" ] } }, "publishDate" : { "description" : "Model Primitive Datatype = Date. Date the resource was published by the publisher. The 'date' using the [ISO 8601] format.", "type" : "string", "format" : "date" }, "rating" : { "description" : "A rating of the quality of the resource determined by the Search Provider. Often derived from crowdsource ratings.", "type" : "string", "enum" : [ "1","2","3","4","5" ] }, "relevance" : { "description" : "Model Primitive Datatype = Float. This is a floating point value based on relevance to the specific search. Higher relevance has a higher number.", "type" : "number", "format" : "float" } }, "required" : [ "name","learningResourceType","publisher" ], "additionalProperties" : true }, "ResourceSet.Type" : { "description" : "The container for the set of resources that have been supplied by the service provider. This may be empty if none of the resources fulfill the search criteria. The order of resources is not significant.", "type" : "object", "properties" : { "resources" : { "description" : "The actual resources supplied by the service provider. The order of resources is not significant.", "type" : "array", "minItems" : 0, "items" : { "$ref" : "#/definitions/Resource.Type" } } }, "additionalProperties" : false }, "SetOfGUIDs.Type" : { "description" : "The container for the set of GUIDs that annotate a resource for a particular geographical/socio-political/etc. region.", "type" : "object", "properties" : { "region" : { "description" : "Model Primitive Datatype = NormalizedString. The region responsible for the definition. ", "type" : "string" }, "version" : { "description" : "Model Primitive Datatype = NormalizedString. This is used to denote any relevant versioning information.", "type" : "string" }, "labelledGUID" : { "description" : "The actual GUID plus the corresponding labelling information.", "type" : "array", "minItems" : 1, "items" : { "$ref" : "#/definitions/LabelledGUID.Type" } } }, "required" : [ "labelledGUID" ], "additionalProperties" : false }, "Subject.Type" : { "description" : "This is the container for the details of a subject that is covered by the content within a LOR.", "type" : "object", "properties" : { "identifier" : { "description" : "Model Primitive Datatype = PositiveInteger. The unique identifier, an integer, of the subject node. For the root node the value will be 'null'. ", "type" : "integer", "format" : "int32", "minimum" : 1 }, "name" : { "description" : "Model Primitive Datatype = NormalizedString. The name of the subject node, which may have any character and need not be unique with the returned taxonomy. ", "type" : "string" }, "parent" : { "description" : "Model Primitive Datatype = PositiveInteger. An integer (the identifier of that subject node) that references the single parent of this node. The returned data must be a true rooted tree, where each node returned has a single parent. ", "type" : "integer", "format" : "int32", "minimum" : 1 } }, "required" : [ "identifier","name","parent" ], "additionalProperties" : false }, "SubjectSet.Type" : { "description" : "The container for the set of subjects that have been supplied by the service provider. This may be empty if none of the subjects fulfill the search criteria. The order of subjects is not significant.", "type" : "object", "properties" : { "subjects" : { "description" : "The actual list of subject supplied by the service provider. The order of subjects is not significant.", "type" : "array", "minItems" : 0, "items" : { "$ref" : "#/definitions/Subject.Type" } } }, "additionalProperties" : false }, "TextComplexity.Type" : { "description" : "The name/pair value container for a text complexity annotation.", "type" : "object", "properties" : { "name" : { "description" : "The name of the complexity measure. This is taken from an enumerated vocabulary.", "type" : "string", "enum" : [ "Lexile","Flesch-Kincaid","Dale-Schall","DRA","Fountas-Pinnell" ] }, "value" : { "description" : "Model Primitive Datatype = NormalizedString. The text complexity measure in terms of the named measuring scale.", "type" : "string" } }, "required" : [ "name","value" ], "additionalProperties" : false }, "Vendor.Type" : { "description" : "The container for the information about the vendor who created the resource.", "type" : "object", "properties" : { "code" : { "description" : "Model Primitive Datatype = NormalizedString. An identification code for the vendor.", "type" : "string" }, "name" : { "description" : "Model Primitive Datatype = NormalizedString. The name of the vendor.", "type" : "string" }, "description" : { "description" : "Model Primitive Datatype = String. A human readable description of the vendor.", "type" : "string" }, "url" : { "description" : "Model Primitive Datatype = AnyURI. A URL for the vendor.", "type" : "string", "format" : "uri" }, "emailContact" : { "description" : "Model Primitive Datatype = NormalizedString. Contact email for the vendor.", "type" : "string" } }, "required" : [ "code","name" ], "additionalProperties" : false }, "imsx_CodeMinor.Type" : { "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.", "type" : "object", "properties" : { "imsx_codeMinorField" : { "description" : "Each reported code minor status code.", "type" : "array", "minItems" : 1, "items" : { "$ref" : "#/definitions/imsx_CodeMinorField.Type" } } }, "required" : [ "imsx_codeMinorField" ], "additionalProperties" : false }, "imsx_CodeMinorField.Type" : { "description" : "This is the container for a single code minor status code.", "type" : "object", "properties" : { "imsx_codeMinorFieldName" : { "description" : "Model Primitive Datatype = NormalizedString. This should contain the identity of the system that has produced the code minor status code report.", "type" : "string" }, "imsx_codeMinorFieldValue" : { "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).", "type" : "string", "enum" : [ "fullsuccess","forbidden","invalid_query_parameter","unauthorisedrequest","internal_server_error","server_busy","invalid_data" ] } }, "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ], "additionalProperties" : false }, "imsx_StatusInfo.Type" : { "description" : "This is the container for the status code and associated information returned within the HTTP messages received from the Service Provider.", "type" : "object", "properties" : { "imsx_codeMajor" : { "description" : "The code major value (from the corresponding enumerated vocabulary).", "type" : "string", "enum" : [ "success","processing","failure","unsupported" ] }, "imsx_severity" : { "description" : "The severity value (from the corresponding enumerated vocabulary).", "type" : "string", "enum" : [ "status","warning","error" ] }, "imsx_description" : { "description" : "Model Primitive Datatype = String. A human readable description supplied by the entity creating the status code information.", "type" : "string" }, "imsx_codeMinor" : { "$ref" : "#/definitions/imsx_CodeMinor.Type" } }, "required" : [ "imsx_codeMajor","imsx_severity" ], "additionalProperties" : false } }, "consumes" : [ "application/json" ], "produces" : [ "application/json" ] }
The OpenAPI 2 (YAML) listing (based upon [OAS, 14]) is shown below (the OpenAPI YAML is available at: https://purl.imsglobal.org/rs/v1p0/schema/openapi/imsrsv1p0_openapi2_v1p0.yaml).
swagger: '2.0' ##################################################################################### # API Information # ##################################################################################### info: version: '1.0' title: LTI Resource Search Service OpenAPI (YAML) Definition description: The IMS LTI Resource Search (RS) Service defines how to search digital respositories for a set of resources. termsOfService: Permission is granted to all parties to use excerpts from this document as needed in producing requests for proposals. The limited permissions granted above are perpetual and will not be revoked by IMS or its successors or assigns. THIS API DEFINITION IS BEING OFFERED WITHOUT ANY WARRANTY WHATSOEVER, AND IN PARTICULAR, ANY WARRANTY OF NONINFRINGEMENT IS EXPRESSLY DISCLAIMED. ANY USE OF THIS SPECIFICATION SHALL BE MADE ENTIRELY AT THE IMPLEMENTERS OWN RISK, AND NEITHER THE CONSORTIUM, NOR ANY OF ITS MEMBERS OR SUBMITTERS, SHALL HAVE ANY LIABILITY WHATSOEVER TO ANY IMPLEMENTER OR THIRD PARTY FOR ANY DAMAGES OF ANY NATURE WHATSOEVER, DIRECTLY OR INDIRECTLY, ARISING FROM THE USE OF THIS API DEFINITION. contact: name: Lisa Mattson (COO), IMS Global url: http://www.imsglobal.org email: lmattson@imsglobal.org license: name: IMS Global url: https://www.imsglobal.org/license.html ##################################################################################### # Host, Base Path, Schemes and Content Types # ##################################################################################### host: www.imsglobal.org basePath: /ims/rs/v1p0 schemes: - http - https consumes: - application/json produces: - application/json ##################################################################################### # Tags # ##################################################################################### tags: - name: ResourceSearchManager description: | The set of service operations that manage searching for resources. - name: SubjectsManager description: | The set of service operations that manage access to the lists of subjects supported by a LOR. ##################################################################################### # Security # ##################################################################################### ##################################################################################### # Paths # ##################################################################################### paths: /resources: get: operationId: searchForResources summary: The REST read request message for the searchForResources() API call. tags: - ResourceSearchManager description: | This is the search request. The criteria for the search are passed as query parameters and the set of identified resources are returned in the payload for the response message. parameters: - name: limit in: query description: | This is used as part of the data pagination mechanism to control the number of records returned in any one response message. The 'limit' defines the download segmentation value i.e. the maximum number of records to be contained in the response. The form of implementation is described in the corresponding binding document(s). required: false type: integer format: int32 allowEmptyValue: false default: 100 minimum: 1 - name: offset in: query description: | This is used as part of the data pagination mechanism to control the download rate of data. The 'offset' is the number of the first record to be supplied in the segmented response message. The form of implementation is described in the corresponding binding document(s). required: false type: integer format: int32 allowEmptyValue: false default: 0 minimum: 0 - name: filter in: query description: | The filtering rules to be applied when identifying the records to be supplied in the response message. Filtering defines the search criteria to be applied at the service provider for the identification and selection of the resources to be returned. A strict vocabulary is used for the permitted search terms (see the RS REST/JSON binding document 'Keyword Searching' in Sub-section 3.1 [RS-RJ, 18]). required: false type: string allowEmptyValue: false - name: sort in: query description: | This is used as part of the sorting mechanism to be use by the service provider. The 'sort' identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The form of implementation is described in the corresponding binding document(s). required: false type: string allowEmptyValue: false - name: orderBy in: query description: | This is used as part of the sorting mechanism to be use by the service provider. This defines the form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The form of implementation is described in the corresponding binding document(s). required: false type: string enum: - asc - desc allowEmptyValue: false - name: fields in: query description: | To identify the range of fields, and only those fields, that should be supplied in the response message. The permitted vocabulary for these fields is determined by the payloads that are returned in the corresponding response messages. required: false type: array items: type: string collectionFormat: csv allowEmptyValue: false responses: "200" : description: | The response code for when the query request has been successfully completed and the set of identified resources returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' schema: $ref: "#/definitions/ResourceSet.Type" "400" : description: | The request has been declared as 'bad'. This will be due to the provision of bad data in the request query parameters. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. schema: $ref: "#/definitions/imsx_StatusInfo.Type" "401" : description: | The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. schema: $ref: "#/definitions/imsx_StatusInfo.Type" "403" : description: | This is used to indicate that the server can be reached and process the request but refuses to take any further action. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. schema: $ref: "#/definitions/imsx_StatusInfo.Type" "500" : description: | This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. schema: $ref: "#/definitions/imsx_StatusInfo.Type" "default" : description: | This is the response data payload to be supplied when the HTTP code is NOT explicitly defined. This would be accompanied by the 'codeMajor/severity' values of 'failure/error' and the appropriate 'codeMinor' value. The associated HTTP code will also be supplied. schema: $ref: "#/definitions/imsx_StatusInfo.Type" "422" : description: | This error condition may occur if a JSON request body contains well-formed i.e. syntactically correct, but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. schema: $ref: "#/definitions/imsx_StatusInfo.Type" "429" : description: | The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. schema: $ref: "#/definitions/imsx_StatusInfo.Type" /subjects: get: operationId: getAllSubjects summary: The REST read request message for the getAllSubjects() API call. tags: - SubjectsManager description: | To obtain, read, the list of subjects that are supported by a LOR. responses: "200" : description: | The response code for when the query request has been successfully completed and the set of subjects returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' schema: $ref: "#/definitions/SubjectSet.Type" "400" : description: | The request has been declared as 'bad'. This will be due to the provision of bad data in the request query parameters. This is accompanied by the 'codeMajor/severity' values of 'failure/error'. schema: $ref: "#/definitions/imsx_StatusInfo.Type" "401" : description: | The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. schema: $ref: "#/definitions/imsx_StatusInfo.Type" "403" : description: | This is used to indicate that the server can be reached and process the request but refuses to take any further action. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. schema: $ref: "#/definitions/imsx_StatusInfo.Type" "422" : description: | This error condition may occur if a JSON request body contains well-formed i.e. syntactically correct, but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. schema: $ref: "#/definitions/imsx_StatusInfo.Type" "429" : description: | The server is receiving too many requests i.e. 'server_busy'. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. schema: $ref: "#/definitions/imsx_StatusInfo.Type" "500" : description: | This code should be used only if there is catastrophic error and there is not a more appropriate code i.e. 'internal_server_error'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. schema: $ref: "#/definitions/imsx_StatusInfo.Type" "default" : description: | This is the response data payload to be supplied when the HTTP code is NOT explicitly defined. This would be accompanied by the 'codeMajor/severity' values of 'failure/error' and the appropriate 'codeMinor' value. The associated HTTP code will also be supplied. schema: $ref: "#/definitions/imsx_StatusInfo.Type" ##################################################################################### # Definitions # ##################################################################################### definitions: CCLTILink.Type: description: | The extended set of information used to define the presence of an LTI Link resource (this is based upon the definition for including an LTI link inside an IMS Common Cartridge or IMS Thin Common Cartridge). type: object allOf: - $ref: "#/definitions/LTILink.Type" - type: object properties: cartridge_bundle: $ref: "#/definitions/LTILinkResourceRef.Type" cartridge_icon: $ref: "#/definitions/LTILinkResourceRef.Type" metadata: $ref: "#/definitions/Metadata.Type" additionalProperties: false CSMSet.Type: description: | This is the is the container for the set of curriculum standards metadata. Each member of the set contains the curriculum standards metadata for a specific source of the GUIDs. type: object required: - curriculumStandardsMetadata properties: resourceLabel: description: This is a human readable label used to identify the type of resource, or part of resource, to which the enclosed metadata refers. Model Primitive Datatype = NormalizedString. type: string resourcePartId: description: This is used to contain the appropriate identifier that is used to identify the resource part. Model Primitive Datatype = NormalizedString. type: string curriculumStandardsMetadata: description: | The curriculum standards associated from a single source of the curriculum standards definition. type: array minItems: 1 items: $ref: "#/definitions/CurriculumStandardsMetadata.Type" additionalProperties: false CurriculumStandardsMetadata.Type: description: | This is the container for the special metadata for curriculum standards for a particular domain of GUID provider. type: object required: - setOfGUIDs properties: providerId: description: This is used to denote the originator of the GUID scheme. Model Primitive Datatype = NormalizedString. type: string setOfGUIDs: description: | The set of curriculum standards GUIDs that apply to the learning associated resource. type: array minItems: 1 items: $ref: "#/definitions/SetOfGUIDs.Type" additionalProperties: false LTILink.Type: description: | The container for all of the core information about an LTI Link. type: object required: - title - vendor properties: title: description: The human readable title/label for the activity being addressed by the content available through the LTI link. Model Primitive Datatype = NormalizedString. type: string description: description: A human readable description of the activity addressed by the content supplied via the LTI link. Model Primitive Datatype = String. type: string custom: $ref: "#/definitions/PropertySet.Type" extensions: $ref: "#/definitions/PlatformPropertySet.Type" launch_url: description: The URL for the LTI launch. One of either the launch_url or the secure_launch_url must be specified. It is acceptable to specify both and if both are specified, the Tool Consumer (TC) decides which to use. Typically, the TC will use a secure_launch_url when embedding the Tool in a secure page and the launch_url when embedding the tool in a non-secure page. So, it is important that the Tool Provider (TP) provides the same functionality whether the launch_url or secure_launch_url is used. Model Primitive Datatype = AnyURI. type: string format: uri secure_launch_url: description: A secure URL for the LTI launch. One of either the launch_url or the secure_launch_url must be specified. It is acceptable to specify both and if both are specified, the Tool Consumer (TC) decides which to use. Typically, the TC will use a secure_launch_url when embedding the Tool in a secure page and the launch_url when embedding the tool in a non-secure page. So, it is important that the Tool Provider (TP) provides the same functionality whether the launch_url or secure_launch_url is used. Model Primitive Datatype = AnyURI. type: string format: uri icon: description: A URL to an icon for this tool. Model Primitive Datatype = AnyURI. type: string format: uri secure_icon: description: A secure URL to an icon for this tool. Model Primitive Datatype = AnyURI. type: string format: uri vendor: $ref: "#/definitions/Vendor.Type" additionalProperties: false LTILinkResourceRef.Type: description: | The container for the link information. type: object required: - name - resourceUri properties: name: description: The name of the type of content supplied by the link. Model Primitive Datatype = NormalizedString. type: string resourceUri: description: The URI for the link. Model Primitive Datatype = AnyURI. type: string format: uri additionalProperties: false LabelledGUID.Type: description: | The labelled curriculum standard GUID. type: object required: - GUID properties: label: description: A human readable string to provide a clue about the nature of the curriculum standard. Model Primitive Datatype = NormalizedString. type: string caseItemURI: description: The corresponding Competency and Academic Standards (CASE) URI. This is the URI used for alignment with the IMS CASE Service 1.0 specification [CASE, 17]. Model Primitive Datatype = AnyURI. type: string format: uri GUID: description: The GUID itself. Model Primitive Datatype = NormalizedString. type: string additionalProperties: false LearningObjectives.Type: description: | The container for the learning objectives which are addressed by the resource. type: object required: - alignmentType properties: alignmentType: description: | A category of alignment between the learning resource and the framework node. type: string enum: - assesses - teaches - requires - textComplexity - readingLevel - educationalSubject - educationLevel educationalFramework: description: The framework to which the resource being described is aligned. Model Primitive Datatype = NormalizedString. type: string targetDescription: description: The description of a node in an established educational framework. Model Primitive Datatype = NormalizedString. type: string targetName: description: The name of a node in an established educational framework. Model Primitive Datatype = NormalizedString. type: string targetURL: description: The URL of a node in an established educational framework. Model Primitive Datatype = AnyURI. type: string format: uri caseItemUri: description: Reference to a CASE CFItem for a standard or skill [CASE, 17]. Model Primitive Datatype = AnyURI. type: string format: uri caseItemGUID: description: Reference to CASE CFItem as a GUID [CASE, 17]. Model Primitive Datatype = NormalizedString. type: string additionalProperties: false Metadata.Type: description: | The container for all of the metadata associated with the LTI link. Currently this metadata is restricted to the set of curriculum standards annotations. type: object properties: curriculumStandardsMetadataSet: $ref: "#/definitions/CSMSet.Type" additionalProperties: false PlatformPropertySet.Type: description: | The container for the collection of properties that are available for a specific platform. type: object required: - platform - properties properties: platform: description: The identifier for the authoring environment. Model Primitive Datatype = NormalizedString. type: string properties: description: | The set of extension properties for the identified platform. type: array minItems: 1 items: $ref: "#/definitions/Property.Type" additionalProperties: false Property.Type: description: | The container for the name/value pair for a specific property. type: object required: - name - value properties: name: description: The name of the key for the property. Model Primitive Datatype = NormalizedString. type: string value: description: The value for the property. Model Primitive Datatype = NormalizedString. type: string additionalProperties: false PropertySet.Type: description: | The container for the collection of properties that have been specified. type: object required: - properties properties: properties: description: | The set of properties for the identified platform or orginal authoring platform. type: array minItems: 1 items: $ref: "#/definitions/Property.Type" additionalProperties: false Resource.Type: description: | The container for the information about a resource that is supported by a LOR. type: object required: - name - learningResourceType - publisher properties: name: description: The name/title of resource. Model Primitive Datatype = NormalizedString. type: string description: description: A human readable description of the contents of the resource. Model Primitive Datatype = NormalizedString. type: string subject: description: | The subject(s) of the resource. May have multiple subjects tagged. Model Primitive Datatype = NormalizedString. type: array minItems: 0 items: type: string url: description: How to access resource over Internet e.g. HTTP, FTP, etc. A resource must have either a URL or or a LTI Link. Model Primitive Datatype = AnyURI. type: string format: uri ltiLink: $ref: "#/definitions/CCLTILink.Type" learningResourceType: description: | The type of the resource. There may be multiple types. type: array minItems: 1 items: enum: - Assessment/Item - Assessment/Formative - Assessment/Interim - Assessment/Rubric - Assessment/Preparation - Collection/Course - Collection/Unit - Collection/Curriculum Guide - Collection/Lesson - Game - Interactive/Simulation - Interactive/Animation - Interactive/Whiteboard - Activity/Worksheet - Activity/Learning - Activity/Experiment - Lecture - Text/Book - Text/Chapter - Text/Document - Text/Article - Text/Passage - Text/Textbook - Text/Reference - Text/Website - Media/Audio - Media/Images/Visuals - Media/Video - Other language: description: The languages used in the resource. International two digit code for language e.g. 'en' for English. Use the [RFC 3066] annotation. Model Primitive Datatype = Language. type: array minItems: 0 items: type: string thumbnailUrl: description: Link to a thumbnail representing resource. Model Primitive Datatype = AnyURI. type: string format: uri typicalAgeRange: description: Age of the typical intended user. This is described as EITHER the minimum-maximum age range (the format is '11-12', '5-7', etc. with ONLY integers permitted) OR the age as a single integer e.g. '9'. Model Primitive Datatype = NormalizedString. type: string textComplexity: description: | A number indicating text complexity based on number of established measures. type: array minItems: 0 items: $ref: "#/definitions/TextComplexity.Type" learningObjectives: description: | The set of learning objectives addressed by the resource. type: array minItems: 0 items: $ref: "#/definitions/LearningObjectives.Type" author: description: | Author or creator of the resource. Model Primitive Datatype = NormalizedString. type: array minItems: 0 items: type: string publisher: description: Owner of the rights to the resource or who made it available (company or person). Model Primitive Datatype = NormalizedString. type: string useRightsURL: description: URL describing how resource can be licensed. Could be Creative Commons license link or link to other specific open or proprietary license. Model Primitive Datatype = AnyURI. type: string format: uri timeRequired: description: Time that the resource takes to consume. Use the [ISO 8601] format for a duration. Model Primitive Datatype = Duration. type: string technicalFormat: description: A valid MIME type format for the resource e.g. text, HTML, PDF, MPEG, MP3, etc. See https://www.iana.org/assignments/media-types/media-types.xhtml. Model Primitive Datatype = NormalizedString. type: string educationalAudience: description: | For whom the resource is intended. type: array minItems: 0 items: enum: - student - teacher - administrator - parent - aide - proctor - guardian - relative accessibilityAPI: description: | Which (if any) accessibility API is supported by the resource. type: array minItems: 0 items: enum: - MSAA - UIAutomation - ARIAv1 - IAccessible2 - AndroidAccessibility - ATK - AT-SPI - BlackberryAccessibility - JavaAccessibility - MacOSXAccessibility accessibilityInputMethods: description: | How the resource can be controlled by the user, which includes full keyboard controllability, mouse controllability, and voice controllability. type: array minItems: 0 items: enum: - fullKeyboardControl - fullMouseControl - fullVoiceControl accessibilityFeatures: description: These include alternatives and listed enhancements for the resource. These can be transformation features, navigation features, control features or augmentation features. Model Primitive Datatype = NormalizedString. type: array minItems: 0 items: type: string accessibilityHazards: description: | The set of accessibility hazards which are encountered when using this resource. type: array minItems: 0 items: enum: - flashing - sound - olfactoryHazard - motionSimulation accessMode: description: | The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. type: array minItems: 0 items: enum: - auditory - color - itemSize - olfactory - orientation - position - tactile - textOnImage - textual - visual publishDate: description: Date the resource was published by the publisher. The 'date' using the [ISO 8601] format. Model Primitive Datatype = Date. type: string format: date rating: description: | A rating of the quality of the resource determined by the Search Provider. Often derived from crowdsource ratings. type: string enum: - 1 - 2 - 3 - 4 - 5 relevance: description: This is a floating point value based on relevance to the specific search. Higher relevance has a higher number. Model Primitive Datatype = Float. type: number format: float additionalProperties: true ResourceSet.Type: description: | The container for the set of resources that have been supplied by the service provider. This may be empty if none of the resources fulfill the search criteria. The order of resources is not significant. type: object properties: resources: description: | The actual resources supplied by the service provider. The order of resources is not significant. type: array minItems: 0 items: $ref: "#/definitions/Resource.Type" additionalProperties: false SetOfGUIDs.Type: description: | The container for the set of GUIDs that annotate a resource for a particular geographical/socio-political/etc. region. type: object required: - labelledGUID properties: region: description: The region responsible for the definition. Model Primitive Datatype = NormalizedString. type: string version: description: This is used to denote any relevant versioning information. Model Primitive Datatype = NormalizedString. type: string labelledGUID: description: | The actual GUID plus the corresponding labelling information. type: array minItems: 1 items: $ref: "#/definitions/LabelledGUID.Type" additionalProperties: false Subject.Type: description: | This is the container for the details of a subject that is covered by the content within a LOR. type: object required: - identifier - name - parent properties: identifier: description: The unique identifier, an integer, of the subject node. For the root node the value will be 'null'. Model Primitive Datatype = PositiveInteger. type: integer format: int32 minimum: 1 name: description: The name of the subject node, which may have any character and need not be unique with the returned taxonomy. Model Primitive Datatype = NormalizedString. type: string parent: description: An integer (the identifier of that subject node) that references the single parent of this node. The returned data must be a true rooted tree, where each node returned has a single parent. Model Primitive Datatype = PositiveInteger. type: integer format: int32 minimum: 1 additionalProperties: false SubjectSet.Type: description: | The container for the set of subjects that have been supplied by the service provider. This may be empty if none of the subjects fulfill the search criteria. The order of subjects is not significant. type: object properties: subjects: description: | The actual list of subject supplied by the service provider. The order of subjects is not significant. type: array minItems: 0 items: $ref: "#/definitions/Subject.Type" additionalProperties: false TextComplexity.Type: description: | The name/pair value container for a text complexity annotation. type: object required: - name - value properties: name: description: | The name of the complexity measure. This is taken from an enumerated vocabulary. type: string enum: - Lexile - Flesch-Kincaid - Dale-Schall - DRA - Fountas-Pinnell value: description: The text complexity measure in terms of the named measuring scale. Model Primitive Datatype = NormalizedString. type: string additionalProperties: false Vendor.Type: description: | The container for the information about the vendor who created the resource. type: object required: - code - name properties: code: description: An identification code for the vendor. Model Primitive Datatype = NormalizedString. type: string name: description: The name of the vendor. Model Primitive Datatype = NormalizedString. type: string description: description: A human readable description of the vendor. Model Primitive Datatype = String. type: string url: description: A URL for the vendor. Model Primitive Datatype = AnyURI. type: string format: uri emailContact: description: Contact email for the vendor. Model Primitive Datatype = NormalizedString. type: string additionalProperties: false imsx_CodeMinor.Type: description: | This is the container for the set of code minor status codes reported in the responses from the Service Provider. type: object required: - imsx_codeMinorField properties: imsx_codeMinorField: description: | Each reported code minor status code. type: array minItems: 1 items: $ref: "#/definitions/imsx_CodeMinorField.Type" additionalProperties: false imsx_CodeMinorField.Type: description: | This is the container for a single code minor status code. type: object required: - imsx_codeMinorFieldName - imsx_codeMinorFieldValue properties: imsx_codeMinorFieldName: description: This should contain the identity of the system that has produced the code minor status code report. Model Primitive Datatype = NormalizedString. type: string imsx_codeMinorFieldValue: description: | The code minor status code (this is a value from the corresponding enumerated vocabulary). type: string enum: - fullsuccess - forbidden - invalid_query_parameter - unauthorisedrequest - internal_server_error - server_busy - invalid_data additionalProperties: false imsx_StatusInfo.Type: description: | This is the container for the status code and associated information returned within the HTTP messages received from the Service Provider. type: object required: - imsx_codeMajor - imsx_severity properties: imsx_codeMajor: description: | The code major value (from the corresponding enumerated vocabulary). type: string enum: - success - processing - failure - unsupported imsx_severity: description: | The severity value (from the corresponding enumerated vocabulary). type: string enum: - status - warning - error imsx_description: description: A human readable description supplied by the entity creating the status code information. Model Primitive Datatype = String. type: string imsx_codeMinor: $ref: "#/definitions/imsx_CodeMinor.Type" additionalProperties: false
Title: | IMS LTI Resource Search Service OpenAPI Definition v1.0 |
Editors: | Colin Smythe, IMS Global (UK) Jill Hobson, IMS Global (USA) |
Co-chairs: | Adam Blum, OpenEd (USA) Tom Ingram, Escambia County School District (USA) |
Version: | 1.0 |
Version Date: | 10th September, 2018 |
Status: | IMS Final Release |
Summary: | The IMS LTI Resource Search (RS) Service defines how to search digital repositories for a set of resources. The standard addresses searching learning object repositories (LORs), and other catalogs of learning resources, from learning tools using various attributes of resources and returning full metadata about the resources to the learning tools. Results include resource access specification as either URLs or LTI links. The benefit for an educator or student using the learning tool (such as a Learning Management System) is seamless ability to search resource libraries for appropriate resources and transparent launching of those resources. This document contains the OpenAPI definition for the RS service. |
Revision Information: | First release of this specification. |
Purpose: | For public adoption. |
Document Location: | IMS Public Website (Specifications Download): https://www.imsglobal.org/specifications.html |
The following individuals contributed to the development of this document:
Ray Baranoski | Safari Montage (USA) |
Adam Blum | Open Ed (USA) |
Stacy Cohen | Framingham State University (USA) |
Paul DeVey | Pearson (USA) |
Viktor Haag | Desire2learn (Canada) |
Mark Hannah | Knovation (USA) |
Jill Hobson | IMS Global (USA) |
Tom Ingram | Escambia County School District (USA) |
Vikash Jaiswal | Knovation (USA) |
Joshua Marks | PCG (USA) |
Justin Mason | University of Wisconsin Extension (USA) |
Elizabeth Neuman | State of Wisconsin Dept. of Public Instruction (USA) |
Colin Smythe | IMS Global (UK) |
Version No. | Release Date | Comments |
---|---|---|
Final Release 1.0 | 10th September, 2018 | The first formal release for the specification. This specification is made available for public adoption. |
IMS Global Learning Consortium, Inc. ("IMS Global") is publishing the information contained in this document ("Specification") for purposes of scientific, experimental, and scholarly collaboration only.
IMS Global makes no warranty or representation regarding the accuracy or completeness of the Specification.
This material is provided on an "As Is" and "As Available" basis.
The Specification is at all times subject to change and revision without notice.
It is your sole responsibility to evaluate the usefulness, accuracy, and completeness of the Specification as it relates to you.
IMS Global would appreciate receiving your comments and suggestions.
Please contact IMS Global through our website at http://www.imsglobal.org.
Please refer to Document Name: IMS LTI Resource Search Service OpenAPI Definition v1.0
Date: 10th September, 2018