Date Issued: | 7th July, 2017 |
Latest version: | http://www.imsglobal.org/case/ |
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 © 2017 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.
© 2017 IMS Global Learning Consortium, Inc.
All Rights Reserved.
Trademark information: http://www.imsglobal.org/copyright.html
Document Name: IMS Competencies and Academic Standards Exchange (CASE) Service REST/JSON Binding v1.0
Revision: 7th July, 2017
1. Introduction
1.1. Overview of the Competency Service
1.2. Scope and Context
1.3. Structure of this Document
1.4. Nomenclature
1.5. References
2.1 Mapping of the Service Operations to the REST Endpoints
2.2 API Root URL and Versioning
2.3 Predefined Endpoint Query Parameters
2.3.1 "getAllCFDocuments" Endpoint Query Parameters
2.3.1.1 "limit" Query Parameter
2.3.1.2 "offset" Query Parameter
2.3.1.3 "sort" Query Parameter
2.3.1.4 "orderBy" Query Parameter
2.3.1.5 "filter" Query Parameter
2.3.1.6 "fields" Query Parameter
2.3.2 "getCFAssociation" Endpoint Query Parameters
2.3.3 "getCFAssociationGrouping" Endpoint Query Parameters
2.3.4 "getCFConcept" Endpoint Query Parameters
2.3.5 "getCFDocument" Endpoint Query Parameters
2.3.6 "getCFItem" Endpoint Query Parameters
2.3.7 "getCFItemAssociations" Endpoint Query Parameters
2.3.8 "getCFItemType" Endpoint Query Parameters
2.3.9 "getCFLicense" Endpoint Query Parameters
2.3.10 "getCFPackage" Endpoint Query Parameters
2.3.11 "getCFRubric" Endpoint Query Parameters
2.3.12 "getCFSubject" Endpoint Query Parameters
2.4 Error Handling
3. Using the Endpoint Parameters
3.1. Pagination
3.2. Sorting
3.3. Filtering
3.4. Field Selection
5.1. "getAllCFDocuments" Request Payload
5.2. "getAllCFDocuments" Response Payload
5.2.1. Response Payloads for the HTTP Codes (200)
5.2.2. Response Payloads for the HTTP Codes (400, 401, 403, 404, 429, 500, default)
5.3. "getCFAssociation" Request Payload
5.4. "getCFAssociation" Response Payload
5.4.1. Response Payloads for the HTTP Codes (200)
5.4.2. Response Payloads for the HTTP Codes (400, 401, 403, 404, 429, 500, default)
5.5. "getCFAssociationGrouping" Request Payload
5.6. "getCFAssociationGrouping" Response Payload
5.6.1. Response Payloads for the HTTP Codes (200)
5.6.2. Response Payloads for the HTTP Codes (400, 401, 403, 404, 429, 500, default)
5.7. "getCFConcept" Request Payload
5.8. "getCFConcept" Response Payload
5.8.1. Response Payloads for the HTTP Codes (200)
5.8.2. Response Payloads for the HTTP Codes (400, 401, 403, 404, 429, 500, default)
5.9. "getCFDocument" Request Payload
5.10. "getCFDocument" Response Payload
5.10.1. Response Payloads for the HTTP Codes (200)
5.10.2. Response Payloads for the HTTP Codes (400, 401, 403, 404, 429, 500, default)
5.11. "getCFItem" Request Payload
5.12. "getCFItem" Response Payload
5.12.1. Response Payloads for the HTTP Codes (200)
5.12.2. Response Payloads for the HTTP Codes (400, 401, 403, 404, 429, 500, default)
5.13. "getCFItemAssociations" Request Payload
5.14. "getCFItemAssociations" Response Payload
5.14.1. Response Payloads for the HTTP Codes (200)
5.14.2. Response Payloads for the HTTP Codes (400, 401, 403, 404, 429, 500, default)
5.15. "getCFItemType" Request Payload
5.16. "getCFItemType" Response Payload
5.16.1. Response Payloads for the HTTP Codes (200)
5.16.2. Response Payloads for the HTTP Codes (400, 401, 403, 404, 429, 500, default)
5.17. "getCFLicense" Request Payload
5.18. "getCFLicense" Response Payload
5.18.1. Response Payloads for the HTTP Codes (200)
5.18.2. Response Payloads for the HTTP Codes (400, 401, 403, 404, 429, 500, default)
5.19. "getCFPackage" Request Payload
5.20. "getCFPackage" Response Payload
5.20.1. Response Payloads for the HTTP Codes (200)
5.20.2. Response Payloads for the HTTP Codes (400, 401, 403, 404, 429, 500, default)
5.21. "getCFRubric" Request Payload
5.22. "getCFRubric" Response Payload
5.22.1. Response Payloads for the HTTP Codes (200)
5.22.2. Response Payloads for the HTTP Codes (400, 401, 403, 404, 429, 500, default)
5.23. "getCFSubject" Request Payload
5.24. "getCFSubject" Response Payload
5.24.1. Response Payloads for the HTTP Codes (200)
5.24.2. Response Payloads for the HTTP Codes (400, 401, 403, 404, 429, 500, default)
6. Service OpenAPI Description
6.2 Tags Information
6.4.1 "/CFAssociationGroupings/{sourcedId}" Path
6.4.2 "/CFAssociations/{sourcedId}" Path
6.4.3 "/CFConcepts/{sourcedId}" Path
6.4.4 "/CFDocuments" Path
6.4.5 "/CFDocuments/{sourcedId}" Path
6.4.6 "/CFItemAssociations/{sourcedId}" Path
6.4.7 "/CFItemTypes/{sourcedId}" Path
6.4.8 "/CFItems/{sourcedId}" Path
6.4.9 "/CFLicenses/{sourcedId}" Path
6.4.10 "/CFPackages/{sourcedId}" Path
6.4.11 "/CFRubrics/{sourcedId}" Path
6.4.12 "/CFSubjects/{sourcedId}" Path
6.5.1 "CFAssociation.Type" Definition
6.5.2 "CFAssociationGrouping.Type" Definition
6.5.3 "CFAssociationSet.Type" Definition
6.5.4 "CFConcept.Type" Definition
6.5.5 "CFConceptSet.Type" Definition
6.5.6 "CFDefinition.Type" Definition
6.5.7 "CFDocument.Type" Definition
6.5.8 "CFDocumentSet.Type" Definition
6.5.9 "CFItem.Type" Definition
6.5.10 "CFItemType.Type" Definition
6.5.11 "CFItemTypeSet.Type" Definition
6.5.12 "CFLicense.Type" Definition
6.5.13 "CFPackage.Type" Definition
6.5.14 "CFPckgAssociation.Type" Definition
6.5.15 "CFPckgDocument.Type" Definition
6.5.16 "CFPckgItem.Type" Definition
6.5.17 "CFRubric.Type" Definition
6.5.18 "CFRubricCriterion.Type" Definition
6.5.19 "CFRubricCriterionLevel.Type" Definition
6.5.20 "CFSubject.Type" Definition
6.5.21 "CFSubjectSet.Type" Definition
6.5.22 "LinkGenURI.Type" Definition
6.5.23 "LinkURI.Type" Definition
6.5.24 "URL.Type" Definition
6.5.25 "UUID.Type" Definition
6.5.26 "imsx_CodeMinor.Type" Definition
6.5.27 "imsx_CodeMinorField.Type" Definition
6.5.28 "imsx_StatusInfo.Type" Definition
7. Extending and Profiling the Service
7.1.1. Proprietary Operations
7.1.2. Proprietary Data Elements
Appendix A REST/JSON Modelling Terms
A1 REST Endpoint Description Explanations
A1.1 REST Endpoint Mapping Table Explanation
A1.2 Query Parameter Table Explanation
A1.3 Error Codes and Handling for each Endpoint Table Explanation
A2 OpenAPI Descriptions Explanations
A2.1 OpenAPI General Information Table Explanation
A2.2 OpenAPI Tags Table Explanation
A2.3 OpenAPI Security Table Explanation
A2.4 OpenAPI Paths Table Explanation
A2.5 OpenAPI Definitions Table Explanation
Appendix B OpenAPI Listings
B1 CASE Service OpenAPI JSON Definition Listing
B2 CASE Service OpenAPI YAML Definition Listing
Table 2.1 - The Set of REST Endpoint URL-leaf Values.
Table 2.3.1.1 - The definition of the "limit" query parameter for the "getAllCFDocuments" operation.
Table 2.3.1.2 - The definition of the "offset" query parameter for the "getAllCFDocuments" operation.
Table 2.3.1.3 - The definition of the "sort" query parameter for the "getAllCFDocuments" operation.
Table 2.3.1.4 - The definition of the "orderBy" query parameter for the "getAllCFDocuments" operation.
Table 2.3.1.5 - The definition of the "filter" query parameter for the "getAllCFDocuments" operation.
Table 2.3.1.6 - The definition of the "fields" query parameter for the "getAllCFDocuments" operation.
Table 2.4 - The List of Error Codes and Handling for each Endpoint.
Table 6.1 - The Set of General Information Defined in the OpenAPI Description.
Table 6.2 - The Set of Tags Defined in the OpenAPI Description.
Table 6.4.1 - The Set of HTTP Verbs Permitted on the "/CFAssociationGroupings/{sourcedId}" Path.
Table 6.4.2 - The Set of HTTP Verbs Permitted on the "/CFAssociations/{sourcedId}" Path.
Table 6.4.3 - The Set of HTTP Verbs Permitted on the "/CFConcepts/{sourcedId}" Path.
Table 6.4.4 - The Set of HTTP Verbs Permitted on the "/CFDocuments" Path.
Table 6.4.5 - The Set of HTTP Verbs Permitted on the "/CFDocuments/{sourcedId}" Path.
Table 6.4.6 - The Set of HTTP Verbs Permitted on the "/CFItemAssociations/{sourcedId}" Path.
Table 6.4.7 - The Set of HTTP Verbs Permitted on the "/CFItemTypes/{sourcedId}" Path.
Table 6.4.8 - The Set of HTTP Verbs Permitted on the "/CFItems/{sourcedId}" Path.
Table 6.4.9 - The Set of HTTP Verbs Permitted on the "/CFLicenses/{sourcedId}" Path.
Table 6.4.10 - The Set of HTTP Verbs Permitted on the "/CFPackages/{sourcedId}" Path.
Table 6.4.11 - The Set of HTTP Verbs Permitted on the "/CFRubrics/{sourcedId}" Path.
Table 6.4.12 - The Set of HTTP Verbs Permitted on the "/CFSubjects/{sourcedId}" Path.
Table 6.5.1 - OpenAPI JSON Schema description for the 'CFAssociation.Type' Complex Type.
Table 6.5.2 - OpenAPI JSON Schema description for the 'CFAssociationGrouping.Type' Complex Type.
Table 6.5.3 - OpenAPI JSON Schema description for the 'CFAssociationSet.Type' Complex Type.
Table 6.5.4 - OpenAPI JSON Schema description for the 'CFConcept.Type' Complex Type.
Table 6.5.5 - OpenAPI JSON Schema description for the 'CFConceptSet.Type' Complex Type.
Table 6.5.6 - OpenAPI JSON Schema description for the 'CFDefinition.Type' Complex Type.
Table 6.5.7 - OpenAPI JSON Schema description for the 'CFDocument.Type' Complex Type.
Table 6.5.8 - OpenAPI JSON Schema description for the 'CFDocumentSet.Type' Complex Type.
Table 6.5.9 - OpenAPI JSON Schema description for the 'CFItem.Type' Complex Type.
Table 6.5.10 - OpenAPI JSON Schema description for the 'CFItemType.Type' Complex Type.
Table 6.5.11 - OpenAPI JSON Schema description for the 'CFItemTypeSet.Type' Complex Type.
Table 6.5.12 - OpenAPI JSON Schema description for the 'CFLicense.Type' Complex Type.
Table 6.5.13 - OpenAPI JSON Schema description for the 'CFPackage.Type' Complex Type.
Table 6.5.14 - OpenAPI JSON Schema description for the 'CFPckgAssociation.Type' Complex Type.
Table 6.5.15 - OpenAPI JSON Schema description for the 'CFPckgDocument.Type' Complex Type.
Table 6.5.16 - OpenAPI JSON Schema description for the 'CFPckgItem.Type' Complex Type.
Table 6.5.17 - OpenAPI JSON Schema description for the 'CFRubric.Type' Complex Type.
Table 6.5.18 - OpenAPI JSON Schema description for the 'CFRubricCriterion.Type' Complex Type.
Table 6.5.19 - OpenAPI JSON Schema description for the 'CFRubricCriterionLevel.Type' Complex Type.
Table 6.5.20 - OpenAPI JSON Schema description for the 'CFSubject.Type' Complex Type.
Table 6.5.21 - OpenAPI JSON Schema description for the 'CFSubjectSet.Type' Complex Type.
Table 6.5.22 - OpenAPI JSON Schema description for the 'LinkGenURI.Type' Complex Type.
Table 6.5.23 - OpenAPI JSON Schema description for the 'LinkURI.Type' Complex Type.
Table 6.5.24 - OpenAPI JSON Schema description for the 'URL.Type' Complex Type.
Table 6.5.25 - OpenAPI JSON Schema description for the 'UUID.Type' Complex Type.
Table 6.5.26 - OpenAPI JSON Schema description for the 'imsx_CodeMinor.Type' Complex Type.
Table 6.5.27 - OpenAPI JSON Schema description for the 'imsx_CodeMinorField.Type' Complex Type.
Table 6.5.28 - OpenAPI JSON Schema description for the 'imsx_StatusInfo.Type' Complex Type.
Table A1.1 The key to the descriptions of the mapping between a service calls and its REST endpoint URL-leaf
Table A1.2 The key to the descriptions of the data attribute/characteristic tables
Table A1.3 The key to the descriptions of the list of error codes and handling for each endpoint
Table A2.1 The key to the tabular description of the OpenAPI general information
Table A2.2 The key to the tabular description of the OpenAPI tags information
Table A2.3 The key to the tabular description of the OpenAPI security information.
Table A2.4 The key to the tabular description of the OpenAPI paths information for an HTTP Verb
Table A2.5 The key to the tabular description of the OpenAPI definitions information
Code 5.2.1 - JSON payload example for "200" response messages for a "getAllCFDocuments" operation.
Code 5.4.1 - JSON payload example for "200" response messages for a "getCFAssociation" operation.
Code 5.6.1 - JSON payload example for "200" response messages for a "getCFAssociationGrouping" operation.
Code 5.8.1 - JSON payload example for "200" response messages for a "getCFConcept" operation.
Code 5.8.2 - JSON payload example for "400, 401, 403, 404, 429, 500, default" response messages for a "getCFConcept" operation.
Code 5.10.1 - JSON payload example for "200" response messages for a "getCFDocument" operation.
Code 5.10.2 - JSON payload example for "400, 401, 403, 404, 429, 500, default" response messages for a "getCFDocument" operation.
Code 5.12.1 - JSON payload example for "200" response messages for a "getCFItem" operation.
Code 5.12.2 - JSON payload example for "400, 401, 403, 404, 429, 500, default" response messages for a "getCFItem" operation.
Code 5.14.1 - JSON payload example for "200" response messages for a "getCFItemAssociations" operation.
Code 5.14.2 - JSON payload example for "400, 401, 403, 404, 429, 500, default" response messages for a "getCFItemAssociations" operation.
Code 5.16.1 - JSON payload example for "200" response messages for a "getCFItemType" operation.
Code 5.16.2 - JSON payload example for "400, 401, 403, 404, 429, 500, default" response messages for a "getCFItemType" operation.
Code 5.18.1 - JSON payload example for "200" response messages for a "getCFLicense" operation.
Code 5.18.2 - JSON payload example for "400, 401, 403, 404, 429, 500, default" response messages for a "getCFLicense" operation.
Code 5.20.1 - JSON payload example for "200" response messages for a "getCFPackage" operation.
Code 5.20.2 - JSON payload example for "400, 401, 403, 404, 429, 500, default" response messages for a "getCFPackage" operation.
Code 5.22.1 - JSON payload example for "200" response messages for a "getCFRubric" operation.
Code 5.22.2 - JSON payload example for "400, 401, 403, 404, 429, 500, default" response messages for a "getCFRubric" operation.
Code 5.24.1 - JSON payload example for "200" response messages for a "getCFSubject" operation.
Code 5.24.2 - JSON payload example for "400, 401, 403, 404, 429, 500, default" response messages for a "getCFSubject" operation.
The Competencies and Academic Standards Exchange (CASE) Service specification is the definition of how systems achieve the exchange of information about learning standards and/or competencies. The key aim is to replace the current ways of documenting a learning standard and competency, typically a PDF or HTML document, by one which is machine readable both syntactically and semantically. Further, using this new specification it will be possible to electronically exchange these definitions so that applications, systems and tools can readily access this data
This document is the Competencies and Academic Standards Exchange (CASE) REST/JSON Binding v1.0 and as such it is used as the basis for the implementing the CASE 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 structure of the rest of this document is:
2. The REST Endpoints | An explanation of the relationship between the logical service operations (as defined in the CASE Service Model [CASE, 17a]) and how these are realised as the corresponding set of REST endpoints (including the set of query parameters that are permitted); |
3. Using the Endpoint Parameters | A detailed explanation of how the permitted set of query parameters should be used to control the volume and type of information that will be supplied by the service provider; |
4. Security Framework | The underlying security framework within which this REST/JSON binding is designed to operate. This includes the details about authentication and how the payload integrity may be protected; |
5. JSON Payloads | Examples of the set of JSON payloads that are sent by the consumer (the request) and returned by the service provider (response). These examples are focused on the expected structure of a request/response and do not include actual payloads; |
6. 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; |
7. Extending and Profiling the Service | An explanation of how the service can be extended, using the permitted points of extension and/or profiled. Profiling is the process by which the specification is tailored to a specific set of market/domain requirements; |
Appendix A REST/JSON Modelling 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 binding); |
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 |
CASE | Competencies and Academic Standards Exchange |
HTML | Hypertext Markup Language |
HTTP | Hypertext Transport Protocol |
JSON | JavaScript Object Notation |
REST | Representation State Transfer |
UML | Unified Modelling Language |
URI | Uniform Resource Identifier |
URL | Uniform Resource Locator |
UUID | Universally Unique Identifier |
YAML | Yet Another Markup Language |
[CASE, 17a] | IMS Competencies and Academic Standards Exchange (CASE) 1.0 Information Model Final Release Document, G.Nadeau, R.Grogan, J.Hobson and C.Smythe, IMS Global Learning Consortium Inc., July 2017, http://www.imsglobal.org/case/casev1p0/caseservicev1p0_infomodelv1p0.html. |
[CASE, 17b] | IMS Competencies and Academic Standards Exchange (CASE) 1.0 Conformance and Certification Final Release Document, G.Nadeau, R.Grogan, J.Hobson and C.Smythe, IMS Global Learning Consortium Inc., July 2017, http://www.imsglobal.org/case/casev1p0/caseservicev1p0_conformancev1p0.html. |
[CASE, 17c] | IMS Competencies and Academic Standards Exchange (CASE) 1.0 Best Practices and Implementation Guide Final Release Document, G.Nadeau, R.Grogan, J.Hobson and C.Smythe, IMS Global Learning Consortium Inc., July 2017, http://www.imsglobal.org/case/casev1p0/caseservicev1p0_bpigv1p0.html. |
[I-BAT, 06] | IMS Binding Auto-generation Toolkit (I-BAT), C.Smythe, IMS Global Learning Consortium Inc., July 2006. |
[UNICODE, 16] | UNICODE Collation Algorithm Version 9.0, M.Davis, K.Whistler and M.Scheer, Unicode Technical Standard #10, May 2016. |
The mapping between the service operations and the REST Endpoint URL-leaf values are listed in Table 2.1. The syntax and semantics for this mapping are described in Appendix A1.1.
All of the paths MUST also contain, as the base of the path, excluding the host name, the string: "/ims/case/v1p0".
The definition of the permitted set of query parameters are defined in the following Tables. The syntax and semantics for this Tables are described in Appendix A1.2.
The description of the "limit" query parameter is presented in Table 2.3.1.1
Descriptor | Definition |
---|---|
Parameter Name | limit |
Data Type | PositiveInteger (Primitive-type) |
Value Space | See Appendix A1.2. Default = "100". |
Multiplicity | [0..1] |
Description | This is used as part of the data pagination mechanism to control the download rate of data. 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). |
The description of the "offset" query parameter is presented in Table 2.3.1.2
Descriptor | Definition |
---|---|
Parameter Name | offset |
Data Type | NonNegativeInteger (Primitive-type) |
Value Space | See Appendix A1.2. Default = "0". |
Multiplicity | [0..1] |
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). |
The description of the "sort" query parameter is presented in Table 2.3.1.3
Descriptor | Definition |
---|---|
Parameter Name | sort |
Data Type | String (Primitive-type) |
Value Space | See Appendix A1.2. |
Multiplicity | [0..1] |
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). |
The description of the "orderBy" query parameter is presented in Table 2.3.1.4
Descriptor | Definition |
---|---|
Parameter Name | orderBy |
Data Type | Enumeration |
Value Space | Enumerated value set of: { asc | desc } |
Multiplicity | [0..1] |
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). |
The description of the "filter" query parameter is presented in Table 2.3.1.5
Descriptor | Definition |
---|---|
Parameter Name | filter |
Data Type | String (Primitive-type) |
Value Space | See Appendix A1.2. |
Multiplicity | [0..1] |
Description | This is used for the data filtering mechanism to be applied by the service provider. It defines the filtering rules to be applied when identifying the records to be supplied in the response message. The form of implementation is described in the corresponding binding document(s). |
The description of the "fields" query parameter is presented in Table 2.3.1.6
Descriptor | Definition |
---|---|
Parameter Name | fields |
Data Type | String (Primitive-type) |
Value Space | See Appendix A1.2. |
Multiplicity | [0..*] |
Description | This is used as part of the field selection mechanism to be applied by the service provider. This identifies the range of fields that should be supplied in the response message. The form of implementation is described in the corresponding binding document(s). |
There are no pre-defined query parameters for this endpoint.
There are no pre-defined query parameters for this endpoint.
There are no pre-defined query parameters for this endpoint.
There are no pre-defined query parameters for this endpoint.
There are no pre-defined query parameters for this endpoint.
There are no pre-defined query parameters for this endpoint.
There are no pre-defined query parameters for this endpoint.
There are no pre-defined query parameters for this endpoint.
There are no pre-defined query parameters for this endpoint.
There are no pre-defined query parameters for this endpoint.
There are no pre-defined query parameters for this endpoint.
In the cases where a request cannot be serviced as expected the service provider will return a payload that indicates the cause of the failure. The list of error codes and handling for each endpoint is shown in Table 2.4. The syntax and semantics for this tabular description are described in Appendix A1.3.
REST Endpoint | HTTP Verb | Error Codes and Handling |
---|---|---|
/CFDocuments | GET |
|
/CFAssociations/{sourcedId} | GET |
|
/CFAssociationGroupings/{sourcedId} | GET |
|
/CFConcepts/{sourcedId} | GET |
|
/CFDocuments/{sourcedId} | GET |
|
/CFItems/{sourcedId} | GET |
|
/CFItemAssociations/{sourcedId} | GET |
|
/CFItemTypes/{sourcedId} | GET |
|
/CFLicenses/{sourcedId} | GET |
|
/CFPackages/{sourcedId} | GET |
|
/CFRubrics/{sourcedId} | GET |
|
/CFSubjects/{sourcedId} | GET |
|
For requests of collections i.e. the response for the 'getAllCFDocuments()' call, there is a danger of data overload. To avoid this, implementations should adopt a pagination mechanism. Pagination is controlled via two parameters that are appended to the request:
An example of a request to return the first 10 resources in a collection of students:
GET https://imsglobal.org/ims/case/v1p0/CFDocuments?limit=10
An example of a request to return the second 10 resources in a collection of students:
GET https://imsglobal.org/ims/case/v1p0/CFDocuments?limit=10&offset=10
It is RECOMMENDED that implementations pass the total resource count in collection back to the requester. This MUST be provided in the custom HTTP header: X-Total-Count.
It is RECOMMENDED that implementers pass back next, previous, first and last links in the HTTP Link Header.
Consider the requests for the example where 503 student resources exist in the collection. The pagination is in units of 10.
Link:
<https://imsglobal.org/ims/case/v1p0/CFDocuments?limit=10&offset=20>; rel="next",
<https://imsglobal.org/ims/case/v1p0/CFDocuments?limit=3&offset=500>; rel="last",
<https://imsglobal.org/ims/case/v1p0/CFDocuments?limit=10&offset=0>; rel="first",
<https://imsglobal.org/ims/case/v1p0/CFDocuments?limit=10&offset=0>; rel="prev"
It should be possible for collections, i.e. the response for the 'getAllCFDocuments()' call, to be returned in a sorted order. It should be possible to sort the collection based on any single data element in the core description of the resource. Sort requests MUST make use of the reserved word "sort" (?sort= data_field), and optionally the reserved word orderBy for which:
An example of a request to ask for a list of students sorted into ascending familyName order:
GET https://imsglobal.org/ims/case/v1p0/CFDocuments?sort=subject&orderBy=asc
Sorting should conform to the use of the Unicode Collation Algorithm [UNICODE, 16] when using the relevant comparisons.
If the consumer requests that the data is to be sorted by a non-existent field, the data is returned in the service provider's default sort order.
For the 'getAllCFDocuments()' call, it should be possible to filter collections for elements matching a certain criteria. It should be possible to filter collections based on any data element in the core description of the resource.Filter requests MUST take the form:
?filter=<data_field><predicate><value>
or
?filter=<data_field><predicate><value><logical><data_field><predicate><value>
The data fields that can be used are those present in the class definition being filtered. So for example in 'CFDocuments', it MUST be possible to filter on: 'identifier', 'creator', title', 'subject', 'statusStartDate', etc.
Predicates MUST be chosen from those listed below:
Values MUST be enclosed within single quotes and they MUST be handled as case insensitive. When the response is returned it is the receiving system that should consider whether or not case-sensitivity is important.
The <logical> parameters allow more complex queries to be created. For version 1.0, it is RECOMMENDED that logical operations are limited to " AND " and " OR " (note the surrounding white space at each side) and that there is only one such operator used in any filter i.e. a single 'AND' or a single 'OR' in the filter. A single white space must occur before and after the parameter.
To query on the properties of nested objects, (for example, with metadata properties), a dot-notation approach MUST be used. The format for this is:
?filter=<Nested_Object>.<Property>
Note then when querying on metadata, the property is loosely typed. An example or a request to find CFDocuments with a 'version' of 1.0 is:
GET https://imsglobal.org/ims/case/v1p0/CFDocuments?filter=version='1.0'
URL encoded as:
GET https://imsglobal.org/ims/case/v1p0/CFDocuments?filter=version%3D%271.0%27
Filter queries MUST be URL encoded.
An example of a complex query for all CFDocuments with a version=1.0' AND lastChangeDateTime>'2016-12-12T00:00:00Z' is:
GET https://imsglobal.org/ims/case/v1p0/CFDocuments?filter=version%3D%271.0%27%20AND%20lastChangeDateTime%3E%272016%3D12%3D12T00%3A00%3A00Z%27
When filtering on objects that are arrays the application of the filter depends on the nature of the comparison. So in the case of filtering on the 'subject' field when the value of the field is "subject1,subject2,subject3" the following filters would return:
This means filtering using the '=' has 'AND' semantics and for '~' has 'OR' semantics. Filtering rules should conform to the use of the Unicode Collation Algorithm [UNICODE, 16] when using the relevant comparisons.
If the consumer requests that data be filtered by a non-existent field, NO data is returned and the server must provide the associated transaction status code information of:
For the 'getAllCFDocuments()' call, it should be possible for requesters to select the range of fields to be returned. By default, all mandatory and optional fields from the core description of the resource MUST be returned. If any fields are specified in the request then the implementation should return those fields AND ONLY those fields i.e. the multiplicity rules for an element are overridden. Any field or fields from the Data Model MAY be requested.
Field selection request MUST make use of the reserved word 'fields'. The value of fields is a comma delimited list of the fields to return. An example of a request message to ask for a list of CFDocuments returning only the 'identifier' and 'subject':
GET https://imsglobal.org/ims/case/v1p0/CFDocuments?fields=identifier,subject
If the consumer requests that data be selected using non-existent field, ALL data for the record is returned. If the consumer requests that data be selected using a blank field the request will be treated as an invalid request. The server must provide the associated transaction status code information of:
There is no security architecture support required by the specification. Therefore, there are no security conformance requirements. It is recommended that suitable security mechanisms are used as required by the particlar deployment environment.
There is no payload for this request.
An example of the response payload is shown in the code block below.
An example of the response payload is shown in the code block below.
There is no payload for this request.
An example of the response payload is shown in the code block below.
An example of the response payload is shown in the code block below.
There is no payload for this request.
An example of the response payload is shown in the code block below.
An example of the response payload is shown in the code block below.
There is no payload for this request.
An example of the response payload is shown in the code block below.
An example of the response payload is shown in the code block below.
There is no payload for this request.
An example of the response payload is shown in the code block below.
An example of the response payload is shown in the code block below.
There is no payload for this request.
An example of the response payload is shown in the code block below.
An example of the response payload is shown in the code block below.
There is no payload for this request.
An example of the response payload is shown in the code block below.
An example of the response payload is shown in the code block below.
There is no payload for this request.
An example of the response payload is shown in the code block below.
An example of the response payload is shown in the code block below.
There is no payload for this request.
An example of the response payload is shown in the code block below.
An example of the response payload is shown in the code block below.
There is no payload for this request.
An example of the response payload is shown in the code block below.
An example of the response payload is shown in the code block below.
There is no payload for this request.
An example of the response payload is shown in the code block below.
An example of the response payload is shown in the code block below.
There is no payload for this request.
An example of the response payload is shown in the code block below.
An example of the response payload is shown in the code block below.
The set of General Information defined in the OpenAPI description, and realised in both the JSON and YAML instances, is listed in Table 6.1. The syntax and semantics for this information are described in Appendix A2.1.
The set of Tags defined in the OpenAPI description, and realised in both the JSON and YAML instances, is listed in Table 6.2. The syntax and semantics for these Tags are described in Appendix A2.2.
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 A2.4.
The following Table describes the OpenAPI information for the HTTP Verb "GET" on the "/CFAssociationGroupings/{sourcedId}" Path.
HTTP Verb: GET | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Operation ID | getCFAssociationGrouping | |||||||||||||||||||||||||||
Summary | The REST "read" request message for the "getCFAssociationGrouping()" API call. | |||||||||||||||||||||||||||
Tags | DefinitionsManager | |||||||||||||||||||||||||||
Description | This is a request to the Service Provider to provide the specified Competency Framework Association Grouping. If the identified record cannot be found then the 'unknownobject' status code must be reported. | |||||||||||||||||||||||||||
Path Placeholders |
|
|||||||||||||||||||||||||||
Query Parameters | Query parameters are not permitted. | |||||||||||||||||||||||||||
Responses |
|
The following Table describes the OpenAPI information for the HTTP Verb "GET" on the "/CFAssociations/{sourcedId}" Path.
HTTP Verb: GET | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Operation ID | getCFAssociation | |||||||||||||||||||||||||||
Summary | The REST "read" request message for the "getCFAssociation()" API call. | |||||||||||||||||||||||||||
Tags | AssociationsManager | |||||||||||||||||||||||||||
Description | This is a request to the service provider to provide the information for the specific Competency Framework Association. If the identified record cannot be found then the 'unknownobject' status code must be reported. | |||||||||||||||||||||||||||
Path Placeholders |
|
|||||||||||||||||||||||||||
Query Parameters | Query parameters are not permitted. | |||||||||||||||||||||||||||
Responses |
|
The following Table describes the OpenAPI information for the HTTP Verb "GET" on the "/CFConcepts/{sourcedId}" Path.
HTTP Verb: GET | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Operation ID | getCFConcept | |||||||||||||||||||||||||||
Summary | The REST "read" request message for the "getCFConcept()" API call. | |||||||||||||||||||||||||||
Tags | DefinitionsManager | |||||||||||||||||||||||||||
Description | This is a request to the Service Provider to provide the specified Competency Framework Concept and the set of children CFConcepts as identified by the hierarchy codes. If the identified record cannot be found then the 'unknownobject' status code must be reported. | |||||||||||||||||||||||||||
Path Placeholders |
|
|||||||||||||||||||||||||||
Query Parameters | Query parameters are not permitted. | |||||||||||||||||||||||||||
Responses |
|
The following Table describes the OpenAPI information for the HTTP Verb "GET" on the "/CFDocuments" Path.
HTTP Verb: GET | |||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Operation ID | getAllCFDocuments | ||||||||||||||||||||||||||||
Summary | The REST "read" request message for the "getAllCFDocuments()" API call. | ||||||||||||||||||||||||||||
Tags | DocumentsManager | ||||||||||||||||||||||||||||
Description | This is a request to the Service Provider to provide all of the Competency Framework Documents. | ||||||||||||||||||||||||||||
Path Placeholders | Path placeholders are not permitted. | ||||||||||||||||||||||||||||
Query Parameters |
|
||||||||||||||||||||||||||||
Responses |
|
The following Table describes the OpenAPI information for the HTTP Verb "GET" on the "/CFDocuments/{sourcedId}" Path.
HTTP Verb: GET | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Operation ID | getCFDocument | |||||||||||||||||||||||||||
Summary | The REST "read" request message for the "getCFDocument()" API call. | |||||||||||||||||||||||||||
Tags | DocumentsManager | |||||||||||||||||||||||||||
Description | This is a request to the service provider to provide the information for the specific Competency Framework Document. If the identified record cannot be found then the 'unknownobject' status code must be reported. | |||||||||||||||||||||||||||
Path Placeholders |
|
|||||||||||||||||||||||||||
Query Parameters | Query parameters are not permitted. | |||||||||||||||||||||||||||
Responses |
|
The following Table describes the OpenAPI information for the HTTP Verb "GET" on the "/CFItemAssociations/{sourcedId}" Path.
HTTP Verb: GET | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Operation ID | getCFItemAssociations | |||||||||||||||||||||||||||
Summary | The REST "read" request message for the "getCFItemAssociations()" API call. | |||||||||||||||||||||||||||
Tags | AssociationsManager | |||||||||||||||||||||||||||
Description | This is a request to the Service Provider to provide the all of the Competency Associations for the specified CFItem and the information about the CFItem itself. If the identified record cannot be found then the 'unknownobject' status code must be reported. | |||||||||||||||||||||||||||
Path Placeholders |
|
|||||||||||||||||||||||||||
Query Parameters | Query parameters are not permitted. | |||||||||||||||||||||||||||
Responses |
|
The following Table describes the OpenAPI information for the HTTP Verb "GET" on the "/CFItemTypes/{sourcedId}" Path.
HTTP Verb: GET | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Operation ID | getCFItemType | |||||||||||||||||||||||||||
Summary | The REST "read" request message for the "getCFItemType()" API call. | |||||||||||||||||||||||||||
Tags | DefinitionsManager | |||||||||||||||||||||||||||
Description | This is a request to the Service Provider to provide the specified Competency Framework Item Type and the set of children CFItemTypes as identified by the hierarchy codes. If the identified record cannot be found then the 'unknownobject' status code must be reported. | |||||||||||||||||||||||||||
Path Placeholders |
|
|||||||||||||||||||||||||||
Query Parameters | Query parameters are not permitted. | |||||||||||||||||||||||||||
Responses |
|
The following Table describes the OpenAPI information for the HTTP Verb "GET" on the "/CFItems/{sourcedId}" Path.
HTTP Verb: GET | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Operation ID | getCFItem | |||||||||||||||||||||||||||
Summary | The REST "read" request message for the "getCFItem()" API call. | |||||||||||||||||||||||||||
Tags | ItemsManager | |||||||||||||||||||||||||||
Description | This is a request to the Service Provider to provide the specified Competency Framework Item. If the identified record cannot be found then the 'unknownobject' status code must be reported. | |||||||||||||||||||||||||||
Path Placeholders |
|
|||||||||||||||||||||||||||
Query Parameters | Query parameters are not permitted. | |||||||||||||||||||||||||||
Responses |
|
The following Table describes the OpenAPI information for the HTTP Verb "GET" on the "/CFLicenses/{sourcedId}" Path.
HTTP Verb: GET | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Operation ID | getCFLicense | |||||||||||||||||||||||||||
Summary | The REST "read" request message for the "getCFLicense()" API call. | |||||||||||||||||||||||||||
Tags | DefinitionsManager | |||||||||||||||||||||||||||
Description | This is a request to the Service Provider to provide the specified Competency Framework License. If the identified record cannot be found then the 'unknownobject' status code must be reported. | |||||||||||||||||||||||||||
Path Placeholders |
|
|||||||||||||||||||||||||||
Query Parameters | Query parameters are not permitted. | |||||||||||||||||||||||||||
Responses |
|
The following Table describes the OpenAPI information for the HTTP Verb "GET" on the "/CFPackages/{sourcedId}" Path.
HTTP Verb: GET | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Operation ID | getCFPackage | |||||||||||||||||||||||||||
Summary | The REST "read" request message for the "getCFPackage()" API call. | |||||||||||||||||||||||||||
Tags | PackagesManager | |||||||||||||||||||||||||||
Description | This is a request to the service provider to provide the information for the specific Competency Framework Package. If the identified record cannot be found then the 'unknownobject' status code must be reported. | |||||||||||||||||||||||||||
Path Placeholders |
|
|||||||||||||||||||||||||||
Query Parameters | Query parameters are not permitted. | |||||||||||||||||||||||||||
Responses |
|
The following Table describes the OpenAPI information for the HTTP Verb "GET" on the "/CFRubrics/{sourcedId}" Path.
HTTP Verb: GET | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Operation ID | getCFRubric | |||||||||||||||||||||||||||
Summary | The REST "read" request message for the "getCFRubric()" API call. | |||||||||||||||||||||||||||
Tags | RubricsManager | |||||||||||||||||||||||||||
Description | This is a request to the service provider to provide the information for the specific Competency Framework Rubric. If the identified record cannot be found then the 'unknownobject' status code must be reported. | |||||||||||||||||||||||||||
Path Placeholders |
|
|||||||||||||||||||||||||||
Query Parameters | Query parameters are not permitted. | |||||||||||||||||||||||||||
Responses |
|
The following Table describes the OpenAPI information for the HTTP Verb "GET" on the "/CFSubjects/{sourcedId}" Path.
HTTP Verb: GET | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Operation ID | getCFSubject | |||||||||||||||||||||||||||
Summary | The REST "read" request message for the "getCFSubject()" API call. | |||||||||||||||||||||||||||
Tags | DefinitionsManager | |||||||||||||||||||||||||||
Description | This is a request to the Service Provider to provide the specified Competency Framework Subject and the set of children CFSubjects as identified by the hierarchy codes. If the identified record cannot be found then the 'unknownobject' status code must be reported. | |||||||||||||||||||||||||||
Path Placeholders |
|
|||||||||||||||||||||||||||
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 A2.5.
The OpenAPI JSON Schema description for the "CFAssociation.Type" Complex Type is given in Table 6.5.1.
The OpenAPI JSON Schema description for the "CFAssociationGrouping.Type" Complex Type is given in Table 6.5.2.
The OpenAPI JSON Schema description for the "CFAssociationSet.Type" Complex Type is given in Table 6.5.3.
The OpenAPI JSON Schema description for the "CFConcept.Type" Complex Type is given in Table 6.5.4.
The OpenAPI JSON Schema description for the "CFConceptSet.Type" Complex Type is given in Table 6.5.5.
The OpenAPI JSON Schema description for the "CFDefinition.Type" Complex Type is given in Table 6.5.6.
The OpenAPI JSON Schema description for the "CFDocument.Type" Complex Type is given in Table 6.5.7.
The OpenAPI JSON Schema description for the "CFDocumentSet.Type" Complex Type is given in Table 6.5.8.
The OpenAPI JSON Schema description for the "CFItem.Type" Complex Type is given in Table 6.5.9.
The OpenAPI JSON Schema description for the "CFItemType.Type" Complex Type is given in Table 6.5.10.
The OpenAPI JSON Schema description for the "CFItemTypeSet.Type" Complex Type is given in Table 6.5.11.
The OpenAPI JSON Schema description for the "CFLicense.Type" Complex Type is given in Table 6.5.12.
The OpenAPI JSON Schema description for the "CFPackage.Type" Complex Type is given in Table 6.5.13.
The OpenAPI JSON Schema description for the "CFPckgAssociation.Type" Complex Type is given in Table 6.5.14.
The OpenAPI JSON Schema description for the "CFPckgDocument.Type" Complex Type is given in Table 6.5.15.
The OpenAPI JSON Schema description for the "CFPckgItem.Type" Complex Type is given in Table 6.5.16.
The OpenAPI JSON Schema description for the "CFRubric.Type" Complex Type is given in Table 6.5.17.
The OpenAPI JSON Schema description for the "CFRubricCriterion.Type" Complex Type is given in Table 6.5.18.
The OpenAPI JSON Schema description for the "CFRubricCriterionLevel.Type" Complex Type is given in Table 6.5.19.
The OpenAPI JSON Schema description for the "CFSubject.Type" Complex Type is given in Table 6.5.20.
The OpenAPI JSON Schema description for the "CFSubjectSet.Type" Complex Type is given in Table 6.5.21.
The OpenAPI JSON Schema description for the "LinkGenURI.Type" Complex Type is given in Table 6.5.22.
The OpenAPI JSON Schema description for the "LinkURI.Type" Complex Type is given in Table 6.5.23.
The OpenAPI JSON Schema description for the "URL.Type" Complex Type is given in Table 6.5.24.
The OpenAPI JSON Schema description for the "UUID.Type" Complex Type is given in Table 6.5.25.
The OpenAPI JSON Schema description for the "imsx_CodeMinor.Type" Complex Type is given in Table 6.5.26.
The OpenAPI JSON Schema description for the "imsx_CodeMinorField.Type" Complex Type is given in Table 6.5.27.
The OpenAPI JSON Schema description for the "imsx_StatusInfo.Type" Complex Type is given in Table 6.5.28.
Proprietary extensions of the service are based upon two approaches:
It is NOT permitted to change the behavior of the current set of operations. Such changes MUST be supported by the creation of new operations.
The definition of new operations should follow the same format as adopted herein. The new operations should be defined using a new interface type. Every operation must result in the return of a status code that describes the final state of the request on the target end system. A new version of the OpenAPI files should also be generated with the new operation definitions.
An example of creating such an extension is given in the accompanying Best Practices document [CASE, 17c].
Currently, data extensions are NOT permitted. Within the OpenAPI files, data extensions are explicitly prohibited by the JSON Schema definition.
This Service can be profiled. In general, Profiling is used to:
Valid Profiles must be restrictive i.e. optional features can be removed or constraints increased but new features must not be added. A Profile of this service is made by annotating the UML supplied with the documentation for the specification.
It is strongly recommended that a profile of this specification is undertaken either by, or with the close support, of IMS Global. However, no matter who is responsible for creating the profile artefacts (documents, OpenAPI files, XSDs, etc.), it is strongly recommended that the IMS specification tools are used. This will ensure that the artefacts are consistent with the base specifications and that useful support documentation is automatically produced e.g. creation of a document that summarises the differences between the base specification and the profile. Organizations wishing to produce a profile of this specification should contact Lisa Mattson (IMS Global Chief Operations Officer) at: lmattson@imsglobal.org.
Table A1.1 provides the key to the descriptions of the mapping between a service calls and its REST endpoint URL-leaf.
Category | Definition and Usage |
---|---|
Service Call | The name of the service call as defined in the associated Behavioral Model. |
REST Endpoint | The REST endpoint URL leaf that is used to complete the request URL. This value must be appended to the host server (defined by the implementation) and API Root URL and version (defined in the specification). |
HTTP Verb | The HTTP verb that must be used for the request message. This is enumerated as: GET, PUT, POST and DELETE. The rules of mapping are:
|
Table A1.2 provides the key to the descriptions of the query parameters that are permitted for an endpoint.
Category | Definition and Usage |
---|---|
Parameter Name | The name given to the query parameter being described. |
Data Type | This is the data-type of the parameter. The data-type can take many forms:
|
Value Space | The range of valid values for this parameter (including any default value). If the value space is unspecified, it is not known or is not important. This value space must be defined in terms of the associated data-type. |
Multiplicity | A property of the parameter indicating the number of values that may be assigned to the parameter (this occurs as a comma separated list). The values of this property are expressed as a range or shorthand for a range using the notation:
|
Description | Contains descriptions relating to the query parameter and its values space. |
Table A1.3 provides the key to the descriptions of the list of error codes and handling for each endpoint.
Category | Definition and Usage |
---|---|
REST Endpoint | The REST endpoint URL leaf that is used to complete the request URL. This value must be appended to the host server (defined by the implementation) and API Root URL and version (defined in the specification). |
HTTP Verb | The HTTP verb that must be used for the request message. This is enumerated as: GET, PUT, POST and DELETE. The rules of mapping are:
|
Error Codes and Handling | The list of error codes that may be returned by the service provider. A description of the cause of the error code is supplied along with a link to the definition of the associated JSON payload structure that contains the detailed error information. |
Table A2.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 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 A2.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 A2.3 provides the key to the tabular description of the OpenAPI security information.
Category | Definition and Usage |
---|---|
...tbc... | ...tbc... |
To be completed in a later version of this document.
Table A2.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 A2.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. |
Model | The set of child elements. This is an ordered list of elements (as per the sequence in the complexType) 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 OpenAPI documentation for the description of the permitted contents for this declaration. |
The OpenAPI (JSON) listing is shown below (the OpenAPI JSON is available at: http://www.imsglobal.org/openapi/case/casev1p0/imscasev1p0_openapiv1p0.json).
{ "swagger" : "2.0", "info" : { "version" : "1.0", "title" : "Competencies and Academic Standards Exchange (CASE) Service OpenAPI (JSON) Definition", "description" : "The Competencies and Academic Standards Exchange (CASE) Service enables the exchange of data between a Competency Records Service Provider and the consumers of the associated data. This service has been described using the IMS Model Driven Specification development approach: this being the Platform Specific Model (PSM) of the service.", "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/case/v1p0", "schemes" : [ "http","https" ], "tags" : [ { "name" : "AssociationsManager", "description" : "The set of service operations that manage access to the Competency Framework Associations. Associations are to establish relationships between definitions from different sources. This interface manages the associations between CFDocuments and between CFItems." }, { "name" : "DefinitionsManager", "description" : "The set of service operations that manage access to the Competency Framework Definitions. This interface manages the definitions of the: Competency Framework Concepts, Competency Framework Subjects, Competency Framework Licenses, Competency Framework Item Types and Competency Framework Association Groupings." }, { "name" : "DocumentsManager", "description" : "The set of service operations that manage access to the Competency Framework Documents. Documents are the root entry point for the definition of an academic standard/competency. This interface manages the document descriptions only i.e. it does not support the management of Items, Associations, etc." }, { "name" : "ItemsManager", "description" : "The set of service operations that manage access to the Competency Framework Items. Items are the containers for the definitions in an academic standard/competency. This interface manages the Item descriptions only i.e. it does not support the management of Associations, etc." }, { "name" : "PackagesManager", "description" : "The set of service operations that manage access to the Competency Framework Packages as a whole. A Competency Framework Package is a package that contains all of the arefacts that are used for the definition of a Competency Framework Document." }, { "name" : "RubricsManager", "description" : "The set of service operations that manage access to the Competency Framework Rubrics. Rubrics associate the set of rubric criteria being defined for a specific academic standard/competency (defined as either a CFItem or a CFDocument)." } ], "paths" : { "/CFAssociationGroupings/{sourcedId}" : { "get" : { "operationId" : "getCFAssociationGrouping", "summary" : "The REST read request message for the getCFAssociationGrouping() API call.", "tags" : [ "DefinitionsManager" ], "description" : "This is a request to the Service Provider to provide the specified Competency Framework Association Grouping. If the identified record cannot be found then the 'unknownobject' status code must be reported.", "parameters" : [ { "name" : "sourcedId", "in" : "path", "description" : "The UUID that identifies the Competency Framework AssociationGrouping that is to be read from the service provider.", "required" : true, "type" : "string" } ], "responses" : { "200" : { "description" : "This is the response when the request has been completed successfully. It is the CFAssociationGrouping from the service provider.", "schema" : { "$ref" : "#/definitions/CFAssociationGrouping.Type" } }, "400" : { "description" : "An invalid selection field was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field'. 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 i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.", "schema" : { "$ref" : "#/definitions/imsx_StatusInfo.Type" } }, "404" : { "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid UUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' of 'Invalid UUID' should also be presented.", "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" } } } } }, "/CFAssociations/{sourcedId}" : { "get" : { "operationId" : "getCFAssociation", "summary" : "The REST read request message for the getCFAssociation() API call.", "tags" : [ "AssociationsManager" ], "description" : "This is a request to the service provider to provide the information for the specific Competency Framework Association. If the identified record cannot be found then the 'unknownobject' status code must be reported.", "parameters" : [ { "name" : "sourcedId", "in" : "path", "description" : "The UUID that identifies the CFAssociation to be supplied.", "required" : true, "type" : "string" } ], "responses" : { "200" : { "description" : "This is the response when the request has been completed successfully. It is the CFAssociation from the service provider.", "schema" : { "$ref" : "#/definitions/CFAssociation.Type" } }, "400" : { "description" : "An invalid selection field was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field'. 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 i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.", "schema" : { "$ref" : "#/definitions/imsx_StatusInfo.Type" } }, "404" : { "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid UUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' of 'Invalid UUID' should also be presented.", "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" } } } } }, "/CFConcepts/{sourcedId}" : { "get" : { "operationId" : "getCFConcept", "summary" : "The REST read request message for the getCFConcept() API call.", "tags" : [ "DefinitionsManager" ], "description" : "This is a request to the Service Provider to provide the specified Competency Framework Concept and the set of children CFConcepts as identified by the hierarchy codes. If the identified record cannot be found then the 'unknownobject' status code must be reported.", "parameters" : [ { "name" : "sourcedId", "in" : "path", "description" : "The UUID that identifies the Competency Framework Concept that is to be read from the service provider.", "required" : true, "type" : "string" } ], "responses" : { "200" : { "description" : "This is the response when the request has been completed successfully. It is the CFConcept and child CFSConcepts from the service provider.", "schema" : { "$ref" : "#/definitions/CFConceptSet.Type" } }, "400" : { "description" : "An invalid selection field was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field'. 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 i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.", "schema" : { "$ref" : "#/definitions/imsx_StatusInfo.Type" } }, "404" : { "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid UUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' of 'Invalid UUID' should also be presented.", "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" } } } } }, "/CFDocuments" : { "get" : { "operationId" : "getAllCFDocuments", "summary" : "The REST read request message for the getAllCFDocuments() API call.", "tags" : [ "DocumentsManager" ], "description" : "This is a request to the Service Provider to provide all of the Competency Framework Documents. ", "parameters" : [ { "name" : "limit", "in" : "query", "description" : "This is used as part of the data pagination mechanism to control the download rate of data. 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" : "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" : "filter", "in" : "query", "description" : "This is used for the data filtering mechanism to be applied by the service provider. It defines the filtering rules to be applied when identifying the records to be supplied in the response message. The form of implementation is described in the corresponding binding document(s).", "required" : false, "type" : "string", "allowEmptyValue" : false }, { "name" : "fields", "in" : "query", "description" : "This is used as part of the field selection mechanism to be applied by the service provider. This identifies the range of fields that should be supplied in the response message. The form of implementation is described in the corresponding binding document(s).", "required" : false, "type" : "array", "items" : { "type" : "string" }, "collectionFormat" : "csv", "allowEmptyValue" : false } ], "responses" : { "200" : { "description" : "This is the response when the request has been completed successfully. It is the set of CFDocuments from the service provider.", "schema" : { "$ref" : "#/definitions/CFDocumentSet.Type" } }, "400" : { "description" : "An invalid selection field was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field'. 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 i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.", "schema" : { "$ref" : "#/definitions/imsx_StatusInfo.Type" } }, "404" : { "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid UUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' of 'Invalid UUID' should also be presented.", "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" } } } } }, "/CFDocuments/{sourcedId}" : { "get" : { "operationId" : "getCFDocument", "summary" : "The REST read request message for the getCFDocument() API call.", "tags" : [ "DocumentsManager" ], "description" : "This is a request to the service provider to provide the information for the specific Competency Framework Document. If the identified record cannot be found then the 'unknownobject' status code must be reported.", "parameters" : [ { "name" : "sourcedId", "in" : "path", "description" : "The UUID that identifies the Competency Framework Document that is to be read from the service provider.", "required" : true, "type" : "string" } ], "responses" : { "200" : { "description" : "This is the response when the request has been completed successfully. It is the CFDocument from the service provider.", "schema" : { "$ref" : "#/definitions/CFDocument.Type" } }, "400" : { "description" : "An invalid selection field was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field'. 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 i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.", "schema" : { "$ref" : "#/definitions/imsx_StatusInfo.Type" } }, "404" : { "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid UUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' of 'Invalid UUID' should also be presented.", "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" } } } } }, "/CFItemAssociations/{sourcedId}" : { "get" : { "operationId" : "getCFItemAssociations", "summary" : "The REST read request message for the getCFItemAssociations() API call.", "tags" : [ "AssociationsManager" ], "description" : "This is a request to the Service Provider to provide the all of the Competency Associations for the specified CFItem and the information about the CFItem itself. If the identified record cannot be found then the 'unknownobject' status code must be reported.", "parameters" : [ { "name" : "sourcedId", "in" : "path", "description" : "The UUID that identifies the CFItem for which ALL associations are to be supplied.", "required" : true, "type" : "string" } ], "responses" : { "200" : { "description" : "This is the response when the request has been completed successfully. It is the CFItem and set of CFAssociations from the service provider.", "schema" : { "$ref" : "#/definitions/CFAssociationSet.Type" } }, "400" : { "description" : "An invalid selection field was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field'. 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 i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.", "schema" : { "$ref" : "#/definitions/imsx_StatusInfo.Type" } }, "404" : { "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid UUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' of 'Invalid UUID' should also be presented.", "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" } } } } }, "/CFItemTypes/{sourcedId}" : { "get" : { "operationId" : "getCFItemType", "summary" : "The REST read request message for the getCFItemType() API call.", "tags" : [ "DefinitionsManager" ], "description" : "This is a request to the Service Provider to provide the specified Competency Framework Item Type and the set of children CFItemTypes as identified by the hierarchy codes. If the identified record cannot be found then the 'unknownobject' status code must be reported.", "parameters" : [ { "name" : "sourcedId", "in" : "path", "description" : "The UUID that identifies the Competency Framework ItemType that is to be read from the service provider.", "required" : true, "type" : "string" } ], "responses" : { "200" : { "description" : "This is the response when the request has been completed successfully. It is the CFItemType and child CFItemTypes from the service provider.", "schema" : { "$ref" : "#/definitions/CFItemTypeSet.Type" } }, "400" : { "description" : "An invalid selection field was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field'. 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 i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.", "schema" : { "$ref" : "#/definitions/imsx_StatusInfo.Type" } }, "404" : { "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid UUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' of 'Invalid UUID' should also be presented.", "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" } } } } }, "/CFItems/{sourcedId}" : { "get" : { "operationId" : "getCFItem", "summary" : "The REST read request message for the getCFItem() API call.", "tags" : [ "ItemsManager" ], "description" : "This is a request to the Service Provider to provide the specified Competency Framework Item. If the identified record cannot be found then the 'unknownobject' status code must be reported.", "parameters" : [ { "name" : "sourcedId", "in" : "path", "description" : "The UUID that identifies the Competency Framework Item that is to be read from the service provider.", "required" : true, "type" : "string" } ], "responses" : { "200" : { "description" : "This is the response when the request has been completed successfully. It is the CFItem from the service provider.", "schema" : { "$ref" : "#/definitions/CFItem.Type" } }, "400" : { "description" : "An invalid selection field was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field'. 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 i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.", "schema" : { "$ref" : "#/definitions/imsx_StatusInfo.Type" } }, "404" : { "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid UUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' of 'Invalid UUID' should also be presented.", "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" } } } } }, "/CFLicenses/{sourcedId}" : { "get" : { "operationId" : "getCFLicense", "summary" : "The REST read request message for the getCFLicense() API call.", "tags" : [ "DefinitionsManager" ], "description" : "This is a request to the Service Provider to provide the specified Competency Framework License. If the identified record cannot be found then the 'unknownobject' status code must be reported.", "parameters" : [ { "name" : "sourcedId", "in" : "path", "description" : "The UUID that identifies the Competency Framework License that is to be read from the service provider.", "required" : true, "type" : "string" } ], "responses" : { "200" : { "description" : "This is the response when the request has been completed successfully. It is the CFLicense from the service provider.", "schema" : { "$ref" : "#/definitions/CFLicense.Type" } }, "400" : { "description" : "An invalid selection field was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field'. 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 i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.", "schema" : { "$ref" : "#/definitions/imsx_StatusInfo.Type" } }, "404" : { "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid UUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' of 'Invalid UUID' should also be presented.", "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" } } } } }, "/CFPackages/{sourcedId}" : { "get" : { "operationId" : "getCFPackage", "summary" : "The REST read request message for the getCFPackage() API call.", "tags" : [ "PackagesManager" ], "description" : "This is a request to the service provider to provide the information for the specific Competency Framework Package. If the identified record cannot be found then the 'unknownobject' status code must be reported.", "parameters" : [ { "name" : "sourcedId", "in" : "path", "description" : "The UUID that identifies the Competency Framework Document that is to be read from the service provider and supplied with all of its component artefacts.", "required" : true, "type" : "string" } ], "responses" : { "200" : { "description" : "This is the response when the request has been completed successfully. It is the CFPackage from the service provider.", "schema" : { "$ref" : "#/definitions/CFPackage.Type" } }, "400" : { "description" : "An invalid selection field was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field'. 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 i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.", "schema" : { "$ref" : "#/definitions/imsx_StatusInfo.Type" } }, "404" : { "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid UUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' of 'Invalid UUID' should also be presented.", "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" } } } } }, "/CFRubrics/{sourcedId}" : { "get" : { "operationId" : "getCFRubric", "summary" : "The REST read request message for the getCFRubric() API call.", "tags" : [ "RubricsManager" ], "description" : "This is a request to the service provider to provide the information for the specific Competency Framework Rubric. If the identified record cannot be found then the 'unknownobject' status code must be reported.", "parameters" : [ { "name" : "sourcedId", "in" : "path", "description" : "The UUID that identifies the Competency Framework Rubric that is to be read from the service provider.", "required" : true, "type" : "string" } ], "responses" : { "200" : { "description" : "This is the response when the request has been completed successfully. It is the CFRubric from the service provider.", "schema" : { "$ref" : "#/definitions/CFRubric.Type" } }, "400" : { "description" : "An invalid selection field was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field'. 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 i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.", "schema" : { "$ref" : "#/definitions/imsx_StatusInfo.Type" } }, "404" : { "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid UUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' of 'Invalid UUID' should also be presented.", "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" } } } } }, "/CFSubjects/{sourcedId}" : { "get" : { "operationId" : "getCFSubject", "summary" : "The REST read request message for the getCFSubject() API call.", "tags" : [ "DefinitionsManager" ], "description" : "This is a request to the Service Provider to provide the specified Competency Framework Subject and the set of children CFSubjects as identified by the hierarchy codes. If the identified record cannot be found then the 'unknownobject' status code must be reported.", "parameters" : [ { "name" : "sourcedId", "in" : "path", "description" : "The UUID that identifies the Competency Framework Subject that is to be read from the service provider.", "required" : true, "type" : "string" } ], "responses" : { "200" : { "description" : "This is the response when the request has been completed successfully. It is the CFSubject and child CFSubjects from the service provider.", "schema" : { "$ref" : "#/definitions/CFSubjectSet.Type" } }, "400" : { "description" : "An invalid selection field was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field'. 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 i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.", "schema" : { "$ref" : "#/definitions/imsx_StatusInfo.Type" } }, "404" : { "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid UUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' of 'Invalid UUID' should also be presented.", "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" : { "CFAssociation.Type" : { "description" : "This is the container for the data about the relationship between two CFDocuments or between two CFItems outside of the context of a CFPackage or CFItem.", "type" : "object", "allOf" : [ { "$ref" : "#/definitions/CFPckgAssociation.Type" }, { "type" : "object", "properties" : { "CFDocumentURI" : { "$ref" : "#/definitions/LinkURI.Type" } }, "additionalProperties" : false } ] }, "CFAssociationGrouping.Type" : { "description" : "This is the container for information about a set of associations that have been labelled as a group (the nature of the group being defined by this container).", "type" : "object", "properties" : { "identifier" : { "$ref" : "#/definitions/UUID.Type" }, "uri" : { "description" : "Model Primitive Datatype = AnyURI", "type" : "string", "format" : "uri" }, "title" : { "description" : "Model Primitive Datatype = NormalizedString", "type" : "string" }, "description" : { "description" : "Model Primitive Datatype = String", "type" : "string" }, "lastChangeDateTime" : { "description" : "Model Primitive Datatype = DateTime", "type" : "string", "format" : "date-time" } }, "required" : [ "identifier","uri","title","lastChangeDateTime" ], "additionalProperties" : false }, "CFAssociationSet.Type" : { "description" : "This is the container for a collection of CFAssociations. There must be at least one CFAssociation. Note that the association can be between CFDocuments or between CFItems.", "type" : "object", "properties" : { "CFItem" : { "$ref" : "#/definitions/CFItem.Type" }, "CFAssociations" : { "type" : "array", "minItems" : 1, "items" : { "$ref" : "#/definitions/CFPckgAssociation.Type" } } }, "required" : [ "CFItem","CFAssociations" ], "additionalProperties" : false }, "CFConcept.Type" : { "description" : "The container for the definition of a concept which is addressed by the competency framework.", "type" : "object", "properties" : { "identifier" : { "$ref" : "#/definitions/UUID.Type" }, "uri" : { "description" : "Model Primitive Datatype = AnyURI", "type" : "string", "format" : "uri" }, "title" : { "description" : "Model Primitive Datatype = NormalizedString", "type" : "string" }, "keywords" : { "description" : "Model Primitive Datatype = NormalizedString", "type" : "string" }, "hierarchyCode" : { "description" : "Model Primitive Datatype = NormalizedString", "type" : "string" }, "description" : { "description" : "Model Primitive Datatype = String", "type" : "string" }, "lastChangeDateTime" : { "description" : "Model Primitive Datatype = DateTime", "type" : "string", "format" : "date-time" } }, "required" : [ "identifier","uri","title","hierarchyCode","lastChangeDateTime" ], "additionalProperties" : false }, "CFConceptSet.Type" : { "description" : "The container for the set of CFConcepts supplied in the response payload. The relationship between the CFConcepts is determined by the 'hierarchyCode'. The first CFConcept is that which has been specified in the call. The other CFConcepts are the set of children as determined by their place in the 'hierarchyCode' of the CFConcept.", "type" : "object", "properties" : { "CFConcepts" : { "type" : "array", "minItems" : 1, "items" : { "$ref" : "#/definitions/CFConcept.Type" } } }, "required" : [ "CFConcepts" ], "additionalProperties" : false }, "CFDefinition.Type" : { "description" : "The container for the set of definitions used for the competency framework i.e. the set of CFSubjects, CFConcepts, CFItemTypes, CFAssociationGroupings and CFLicenses.", "type" : "object", "properties" : { "CFConcepts" : { "type" : "array", "minItems" : 0, "items" : { "$ref" : "#/definitions/CFConcept.Type" } }, "CFSubjects" : { "type" : "array", "minItems" : 0, "items" : { "$ref" : "#/definitions/CFSubject.Type" } }, "CFLicenses" : { "type" : "array", "minItems" : 0, "items" : { "$ref" : "#/definitions/CFLicense.Type" } }, "CFItemTypes" : { "type" : "array", "minItems" : 0, "items" : { "$ref" : "#/definitions/CFItemType.Type" } }, "CFAssociationGroupings" : { "type" : "array", "minItems" : 0, "items" : { "$ref" : "#/definitions/CFAssociationGrouping.Type" } } }, "additionalProperties" : false }, "CFDocument.Type" : { "description" : "The container for the data about a competency framework document (CFDocument) when exchanged outside of the context of a CFPackage. A CFDocument is the root for the creation of a learning standard/competency.", "type" : "object", "allOf" : [ { "$ref" : "#/definitions/CFPckgDocument.Type" }, { "type" : "object", "properties" : { "CFPackageURI" : { "$ref" : "#/definitions/LinkURI.Type" } }, "required" : [ "CFPackageURI" ], "additionalProperties" : false } ] }, "CFDocumentSet.Type" : { "description" : "This is the container for a collection of CFDocuments. There must be at least one CFDocument.", "type" : "object", "properties" : { "CFDocuments" : { "type" : "array", "minItems" : 1, "items" : { "$ref" : "#/definitions/CFDocument.Type" } } }, "required" : [ "CFDocuments" ], "additionalProperties" : false }, "CFItem.Type" : { "description" : "This is the container for the CFItem data outside of the context of a CFPackage. This is the content that either describes a specific competency (learning objective) or describes a grouping of competencies within the taxonomy of a Competency Framework Document. ", "type" : "object", "allOf" : [ { "$ref" : "#/definitions/CFPckgItem.Type" }, { "type" : "object", "properties" : { "CFDocumentURI" : { "$ref" : "#/definitions/LinkURI.Type" } }, "required" : [ "CFDocumentURI" ], "additionalProperties" : false } ] }, "CFItemType.Type" : { "description" : "The container for the ItemType information use within the competency framework.", "type" : "object", "properties" : { "identifier" : { "$ref" : "#/definitions/UUID.Type" }, "uri" : { "description" : "Model Primitive Datatype = AnyURI", "type" : "string", "format" : "uri" }, "title" : { "description" : "Model Primitive Datatype = NormalizedString", "type" : "string" }, "description" : { "description" : "Model Primitive Datatype = String", "type" : "string" }, "hierarchyCode" : { "description" : "Model Primitive Datatype = NormalizedString", "type" : "string" }, "typeCode" : { "description" : "Model Primitive Datatype = NormalizedString", "type" : "string" }, "lastChangeDateTime" : { "description" : "Model Primitive Datatype = DateTime", "type" : "string", "format" : "date-time" } }, "required" : [ "identifier","uri","title","description","hierarchyCode","lastChangeDateTime" ], "additionalProperties" : false }, "CFItemTypeSet.Type" : { "description" : "The container for the set of CFItemTypes supplied in the response payload. The relationship between the CFItemTypes is determined by the 'hierarchyCode'. The first CFItemType is that which has been specified in the call. The other CFItemTypes are the set of children as determined by their place in the 'hierarchyCode' of the CFItemType.", "type" : "object", "properties" : { "CFItemTypes" : { "type" : "array", "minItems" : 1, "items" : { "$ref" : "#/definitions/CFItemType.Type" } } }, "required" : [ "CFItemTypes" ], "additionalProperties" : false }, "CFLicense.Type" : { "description" : "The container for the information about a license used within the competency framework.", "type" : "object", "properties" : { "identifier" : { "$ref" : "#/definitions/UUID.Type" }, "uri" : { "description" : "Model Primitive Datatype = AnyURI", "type" : "string", "format" : "uri" }, "title" : { "description" : "Model Primitive Datatype = NormalizedString", "type" : "string" }, "description" : { "description" : "Model Primitive Datatype = String", "type" : "string" }, "licenseText" : { "description" : "Model Primitive Datatype = String", "type" : "string" }, "lastChangeDateTime" : { "description" : "Model Primitive Datatype = DateTime", "type" : "string", "format" : "date-time" } }, "required" : [ "identifier","uri","title","licenseText","lastChangeDateTime" ], "additionalProperties" : false }, "CFPackage.Type" : { "description" : "This is the container for all of the data for a Competency Framework Package i.e. the root CFDocument and ALL of the corresponding components i.e. the CFItems, CFAssociations and CFDefinitions.", "type" : "object", "properties" : { "CFDocument" : { "$ref" : "#/definitions/CFPckgDocument.Type" }, "CFItems" : { "type" : "array", "minItems" : 0, "items" : { "$ref" : "#/definitions/CFPckgItem.Type" } }, "CFAssociations" : { "type" : "array", "minItems" : 0, "items" : { "$ref" : "#/definitions/CFPckgAssociation.Type" } }, "CFDefinitions" : { "$ref" : "#/definitions/CFDefinition.Type" }, "CFRubrics" : { "type" : "array", "minItems" : 0, "items" : { "$ref" : "#/definitions/CFRubric.Type" } } }, "required" : [ "CFDocument" ], "additionalProperties" : false }, "CFPckgAssociation.Type" : { "description" : "This is the container for the data about the relationship between two CFDocuments or between two CFItems within the context of a CFPackage.", "type" : "object", "properties" : { "identifier" : { "$ref" : "#/definitions/UUID.Type" }, "associationType" : { "type" : "string", "enum" : [ "isChildOf","isPeerOf","isPartOf","exactMatchOf","precedes","isRelatedTo","replacedBy","exemplar","hasSkillLevel" ] }, "sequenceNumber" : { "description" : "Model Primitive Datatype = Integer", "type" : "integer", "format" : "int32" }, "uri" : { "description" : "Model Primitive Datatype = AnyURI", "type" : "string", "format" : "uri" }, "originNodeURI" : { "$ref" : "#/definitions/LinkGenURI.Type" }, "destinationNodeURI" : { "$ref" : "#/definitions/LinkGenURI.Type" }, "CFAssociationGroupingURI" : { "$ref" : "#/definitions/LinkURI.Type" }, "lastChangeDateTime" : { "description" : "Model Primitive Datatype = DateTime", "type" : "string", "format" : "date-time" } }, "required" : [ "identifier","associationType","uri","originNodeURI","destinationNodeURI","lastChangeDateTime" ], "additionalProperties" : false }, "CFPckgDocument.Type" : { "description" : "The container for the data about a competency framework document (CFDocument) within a CFPackage. A CFDocument is the root for the creation of a learning standard/competency.", "type" : "object", "properties" : { "identifier" : { "$ref" : "#/definitions/UUID.Type" }, "uri" : { "description" : "Model Primitive Datatype = AnyURI", "type" : "string", "format" : "uri" }, "creator" : { "description" : "Model Primitive Datatype = NormalizedString", "type" : "string" }, "title" : { "description" : "Model Primitive Datatype = NormalizedString", "type" : "string" }, "lastChangeDateTime" : { "description" : "Model Primitive Datatype = DateTime", "type" : "string", "format" : "date-time" }, "officialSourceURL" : { "$ref" : "#/definitions/URL.Type" }, "publisher" : { "description" : "Model Primitive Datatype = NormalizedString", "type" : "string" }, "description" : { "description" : "Model Primitive Datatype = NormalizedString", "type" : "string" }, "subject" : { "description" : "Model Primitive Datatype = NormalizedString", "type" : "array", "minItems" : 0, "items" : { "type" : "string" } }, "subjectURI" : { "type" : "array", "minItems" : 0, "items" : { "$ref" : "#/definitions/LinkURI.Type" } }, "language" : { "description" : "Model Primitive Datatype = Language", "type" : "string" }, "version" : { "description" : "Model Primitive Datatype = NormalizedString", "type" : "string" }, "adoptionStatus" : { "description" : "Model Primitive Datatype = NormalizedString", "type" : "string" }, "statusStartDate" : { "description" : "Model Primitive Datatype = Date", "type" : "string", "format" : "date" }, "statusEndDate" : { "description" : "Model Primitive Datatype = Date", "type" : "string", "format" : "date" }, "licenseURI" : { "$ref" : "#/definitions/LinkURI.Type" }, "notes" : { "description" : "Model Primitive Datatype = String", "type" : "string" } }, "required" : [ "identifier","uri","creator","title","lastChangeDateTime" ], "additionalProperties" : false }, "CFPckgItem.Type" : { "description" : "This is the container for the CFItem data within the context of a CFPackage. This is the content that either describes a specific competency (learning objective) or describes a grouping of competencies within the taxonomy of a Competency Framework Document. ", "type" : "object", "properties" : { "identifier" : { "$ref" : "#/definitions/UUID.Type" }, "fullStatement" : { "description" : "Model Primitive Datatype = NormalizedString", "type" : "string" }, "alternativeLabel" : { "description" : "Model Primitive Datatype = NormalizedString", "type" : "string" }, "CFItemType" : { "description" : "Model Primitive Datatype = NormalizedString", "type" : "string" }, "uri" : { "description" : "Model Primitive Datatype = AnyURI", "type" : "string", "format" : "uri" }, "humanCodingScheme" : { "description" : "Model Primitive Datatype = NormalizedString", "type" : "string" }, "listEnumeration" : { "description" : "Model Primitive Datatype = NormalizedString", "type" : "string" }, "abbreviatedStatement" : { "description" : "Model Primitive Datatype = NormalizedString", "type" : "string" }, "conceptKeywords" : { "description" : "Model Primitive Datatype = NormalizedString", "type" : "array", "minItems" : 0, "items" : { "type" : "string" } }, "conceptKeywordsURI" : { "$ref" : "#/definitions/LinkURI.Type" }, "notes" : { "description" : "Model Primitive Datatype = String", "type" : "string" }, "language" : { "description" : "Model Primitive Datatype = Language", "type" : "string" }, "educationLevel" : { "description" : "Model Primitive Datatype = NormalizedString", "type" : "array", "minItems" : 0, "items" : { "type" : "string" } }, "CFItemTypeURI" : { "$ref" : "#/definitions/LinkURI.Type" }, "licenseURI" : { "$ref" : "#/definitions/LinkURI.Type" }, "statusStartDate" : { "description" : "Model Primitive Datatype = Date", "type" : "string", "format" : "date" }, "statusEndDate" : { "description" : "Model Primitive Datatype = Date", "type" : "string", "format" : "date" }, "lastChangeDateTime" : { "description" : "Model Primitive Datatype = DateTime", "type" : "string", "format" : "date-time" } }, "required" : [ "identifier","fullStatement","uri","lastChangeDateTime" ], "additionalProperties" : false }, "CFRubric.Type" : { "description" : "The container for the definition of a rubric which is addressed by the competency framework. This includes the set of associated CFRubricCriteria and CFRubricCriterionLevels.", "type" : "object", "properties" : { "identifier" : { "$ref" : "#/definitions/UUID.Type" }, "uri" : { "description" : "Model Primitive Datatype = AnyURI", "type" : "string", "format" : "uri" }, "title" : { "description" : "Model Primitive Datatype = NormalizedString", "type" : "string" }, "description" : { "description" : "Model Primitive Datatype = NormalizedString", "type" : "string" }, "lastChangeDateTime" : { "description" : "Model Primitive Datatype = DateTime", "type" : "string", "format" : "date-time" }, "CFRubricCriteria" : { "type" : "array", "minItems" : 0, "items" : { "$ref" : "#/definitions/CFRubricCriterion.Type" } } }, "required" : [ "identifier","uri","lastChangeDateTime" ], "additionalProperties" : false }, "CFRubricCriterion.Type" : { "description" : "The container for the definition of a rubric criterion which is addressed by the competency framework.", "type" : "object", "properties" : { "identifier" : { "$ref" : "#/definitions/UUID.Type" }, "uri" : { "description" : "Model Primitive Datatype = AnyURI", "type" : "string", "format" : "uri" }, "category" : { "description" : "Model Primitive Datatype = NormalizedString", "type" : "string" }, "description" : { "description" : "Model Primitive Datatype = String", "type" : "string" }, "CFItemURI" : { "$ref" : "#/definitions/LinkURI.Type" }, "weight" : { "description" : "Model Primitive Datatype = Float", "type" : "number", "format" : "float" }, "position" : { "description" : "Model Primitive Datatype = Integer", "type" : "integer", "format" : "int32" }, "rubricId" : { "$ref" : "#/definitions/UUID.Type" }, "lastChangeDateTime" : { "description" : "Model Primitive Datatype = DateTime", "type" : "string", "format" : "date-time" }, "CFRubricCriterionLevels" : { "type" : "array", "minItems" : 0, "items" : { "$ref" : "#/definitions/CFRubricCriterionLevel.Type" } } }, "required" : [ "identifier","uri","lastChangeDateTime" ], "additionalProperties" : false }, "CFRubricCriterionLevel.Type" : { "description" : "The container for the definition of a criterion level which is addressed by the competency framework.", "type" : "object", "properties" : { "identifier" : { "$ref" : "#/definitions/UUID.Type" }, "uri" : { "description" : "Model Primitive Datatype = AnyURI", "type" : "string", "format" : "uri" }, "description" : { "description" : "Model Primitive Datatype = String", "type" : "string" }, "quality" : { "description" : "Model Primitive Datatype = NormalizedString", "type" : "string" }, "score" : { "description" : "Model Primitive Datatype = Float", "type" : "number", "format" : "float" }, "feedback" : { "description" : "Model Primitive Datatype = String", "type" : "string" }, "position" : { "description" : "Model Primitive Datatype = Integer", "type" : "integer", "format" : "int32" }, "rubricCriterionId" : { "$ref" : "#/definitions/UUID.Type" }, "lastChangeDateTime" : { "description" : "Model Primitive Datatype = DateTime", "type" : "string", "format" : "date-time" } }, "required" : [ "identifier","uri","lastChangeDateTime" ], "additionalProperties" : false }, "CFSubject.Type" : { "description" : "The container for the definition of a topic or academic subject which is addressed by the competency framework.", "type" : "object", "properties" : { "identifier" : { "$ref" : "#/definitions/UUID.Type" }, "uri" : { "description" : "Model Primitive Datatype = AnyURI", "type" : "string", "format" : "uri" }, "title" : { "description" : "Model Primitive Datatype = NormalizedString", "type" : "string" }, "hierarchyCode" : { "description" : "Model Primitive Datatype = NormalizedString", "type" : "string" }, "description" : { "description" : "Model Primitive Datatype = String", "type" : "string" }, "lastChangeDateTime" : { "description" : "Model Primitive Datatype = DateTime", "type" : "string", "format" : "date-time" } }, "required" : [ "identifier","uri","title","hierarchyCode","lastChangeDateTime" ], "additionalProperties" : false }, "CFSubjectSet.Type" : { "description" : "The container for the set of CFSubjects supplied in the response payload. The relationship between the CFSubjects is determined by the 'hierarchyCode'. The first CFSubject is that which has been specified in the call. The other CFSubjects are the set of children as determined by their place in the 'hierarchyCode' of the CFSubject.", "type" : "object", "properties" : { "CFSubjects" : { "type" : "array", "minItems" : 1, "items" : { "$ref" : "#/definitions/CFSubject.Type" } } }, "required" : [ "CFSubjects" ], "additionalProperties" : false }, "LinkGenURI.Type" : { "description" : "A container for the information that is used to achieve the link data reference.", "type" : "object", "properties" : { "title" : { "description" : "Model Primitive Datatype = NormalizedString", "type" : "string" }, "identifier" : { "description" : "Model Primitive Datatype = NormalizedString", "type" : "string" }, "uri" : { "description" : "Model Primitive Datatype = AnyURI", "type" : "string", "format" : "uri" } }, "required" : [ "title","identifier","uri" ], "additionalProperties" : false }, "LinkURI.Type" : { "description" : "A container for the information that is used to achieve the link data reference.", "type" : "object", "properties" : { "title" : { "description" : "Model Primitive Datatype = NormalizedString", "type" : "string" }, "identifier" : { "$ref" : "#/definitions/UUID.Type" }, "uri" : { "description" : "Model Primitive Datatype = AnyURI", "type" : "string", "format" : "uri" } }, "required" : [ "title","identifier","uri" ], "additionalProperties" : false }, "URL.Type" : { "description" : "The data-type for establishing a Uniform Resource Locator (URL) as defined by W3C.", "type" : "string", "format" : "uri" }, "UUID.Type" : { "description" : "The data-type for establishing a Globally Unique Identifier (GUID). The form of the GUID is a Universally Unique Identifier (UUID) of 16 hexadecimal characters (lower case) in the format 8-4-4-4-12. All permitted versions (1-5) and variants (1-2) are supported.", "type" : "string", "pattern" : "[0-9a-f]{8}-[0-9a-f]{4}-[1-5]{1}[0-9a-f]{3}-[8-9a-b]{1}[0-9a-f]{3}-[0-9a-f]{12}" }, "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" : { "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", "type" : "string" }, "imsx_codeMinorFieldValue" : { "type" : "string", "enum" : [ "fullsuccess","invalid_sort_field","invalid_selection_field","forbidden","unauthorisedrequest","internal_server_error","unknownobject","server_busy","invaliduuid" ] } }, "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. For the CASE service this object will only be returned to provide information about a failed request i.e. it will NOT be in the payload for a successful request. See Appendix B for further information on the interpretation of the information contained within this class", "type" : "object", "properties" : { "imsx_codeMajor" : { "type" : "string", "enum" : [ "success","processing","failure","unsupported" ] }, "imsx_severity" : { "type" : "string", "enum" : [ "status","warning","error" ] }, "imsx_description" : { "description" : "Model Primitive Datatype = String", "type" : "string" }, "imsx_codeMinor" : { "$ref" : "#/definitions/imsx_CodeMinor.Type" } }, "required" : [ "imsx_codeMajor","imsx_severity" ], "additionalProperties" : false } }, "consumes" : [ "application/json" ], "produces" : [ "application/json" ] }
The OpenAPI (YAML) listing is shown below (the OpenAPI YAML is available at: http://www.imsglobal.org/openapi/case/casev1p0/imscasev1p0_openapiv1p0.yaml).
swagger: '2.0' ##################################################################################### # API Information # ##################################################################################### info: version: '1.0' title: Competencies and Academic Standards Exchange (CASE) Service OpenAPI (YAML) Definition 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/case/v1p0 schemes: - http - https consumes: - application/json produces: - application/json ##################################################################################### # Tags # ##################################################################################### tags: - name: AssociationsManager description: | The set of service operations that manage access to the Competency Framework Associations. Associations are to establish relationships between definitions from different sources. This interface manages the associations between CFDocuments and between CFItems. - name: DefinitionsManager description: | The set of service operations that manage access to the Competency Framework Definitions. This interface manages the definitions of the: Competency Framework Concepts, Competency Framework Subjects, Competency Framework Licenses, Competency Framework Item Types and Competency Framework Association Groupings. - name: DocumentsManager description: | The set of service operations that manage access to the Competency Framework Documents. Documents are the root entry point for the definition of an academic standard/competency. This interface manages the document descriptions only i.e. it does not support the management of Items, Associations, etc. - name: ItemsManager description: | The set of service operations that manage access to the Competency Framework Items. Items are the containers for the definitions in an academic standard/competency. This interface manages the Item descriptions only i.e. it does not support the management of Associations, etc. - name: PackagesManager description: | The set of service operations that manage access to the Competency Framework Packages as a whole. A Competency Framework Package is a package that contains all of the arefacts that are used for the definition of a Competency Framework Document. - name: RubricsManager description: | The set of service operations that manage access to the Competency Framework Rubrics. Rubrics associate the set of rubric criteria being defined for a specific academic standard/competency (defined as either a CFItem or a CFDocument). ##################################################################################### # Security # ##################################################################################### ##################################################################################### # Paths # ##################################################################################### paths: /CFAssociationGroupings/{sourcedId}: get: operationId: getCFAssociationGrouping summary: The REST read request message for the getCFAssociationGrouping() API call. tags: - DefinitionsManager description: | This is a request to the Service Provider to provide the specified Competency Framework Association Grouping. If the identified record cannot be found then the 'unknownobject' status code must be reported. parameters: - name: sourcedId in: path description: | The UUID that identifies the Competency Framework AssociationGrouping that is to be read from the service provider. required: true type: string responses: 200 : description: | This is the response when the request has been completed successfully. It is the CFAssociationGrouping from the service provider. schema: $ref: "#/definitions/CFAssociationGrouping.Type" 400 : description: | An invalid selection field was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field'. 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 i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. schema: $ref: "#/definitions/imsx_StatusInfo.Type" 404 : description: | Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid UUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' of 'Invalid UUID' should also be presented. 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" /CFAssociations/{sourcedId}: get: operationId: getCFAssociation summary: The REST read request message for the getCFAssociation() API call. tags: - AssociationsManager description: | This is a request to the service provider to provide the information for the specific Competency Framework Association. If the identified record cannot be found then the 'unknownobject' status code must be reported. parameters: - name: sourcedId in: path description: | The UUID that identifies the CFAssociation to be supplied. required: true type: string responses: 200 : description: | This is the response when the request has been completed successfully. It is the CFAssociation from the service provider. schema: $ref: "#/definitions/CFAssociation.Type" 400 : description: | An invalid selection field was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field'. 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 i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. schema: $ref: "#/definitions/imsx_StatusInfo.Type" 404 : description: | Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid UUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' of 'Invalid UUID' should also be presented. 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" /CFConcepts/{sourcedId}: get: operationId: getCFConcept summary: The REST read request message for the getCFConcept() API call. tags: - DefinitionsManager description: | This is a request to the Service Provider to provide the specified Competency Framework Concept and the set of children CFConcepts as identified by the hierarchy codes. If the identified record cannot be found then the 'unknownobject' status code must be reported. parameters: - name: sourcedId in: path description: | The UUID that identifies the Competency Framework Concept that is to be read from the service provider. required: true type: string responses: 200 : description: | This is the response when the request has been completed successfully. It is the CFConcept and child CFSConcepts from the service provider. schema: $ref: "#/definitions/CFConceptSet.Type" 400 : description: | An invalid selection field was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field'. 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 i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. schema: $ref: "#/definitions/imsx_StatusInfo.Type" 404 : description: | Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid UUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' of 'Invalid UUID' should also be presented. 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" /CFDocuments: get: operationId: getAllCFDocuments summary: The REST read request message for the getAllCFDocuments() API call. tags: - DocumentsManager description: | This is a request to the Service Provider to provide all of the Competency Framework Documents. parameters: - name: limit in: query description: | This is used as part of the data pagination mechanism to control the download rate of data. 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: 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: filter in: query description: | This is used for the data filtering mechanism to be applied by the service provider. It defines the filtering rules to be applied when identifying the records to be supplied in the response message. The form of implementation is described in the corresponding binding document(s). required: false type: string allowEmptyValue: false - name: fields in: query description: | This is used as part of the field selection mechanism to be applied by the service provider. This identifies the range of fields that should be supplied in the response message. The form of implementation is described in the corresponding binding document(s). required: false type: array items: type: string collectionFormat: csv allowEmptyValue: false responses: 200 : description: | This is the response when the request has been completed successfully. It is the set of CFDocuments from the service provider. schema: $ref: "#/definitions/CFDocumentSet.Type" 400 : description: | An invalid selection field was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field'. 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 i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. schema: $ref: "#/definitions/imsx_StatusInfo.Type" 404 : description: | Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid UUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' of 'Invalid UUID' should also be presented. 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" /CFDocuments/{sourcedId}: get: operationId: getCFDocument summary: The REST read request message for the getCFDocument() API call. tags: - DocumentsManager description: | This is a request to the service provider to provide the information for the specific Competency Framework Document. If the identified record cannot be found then the 'unknownobject' status code must be reported. parameters: - name: sourcedId in: path description: | The UUID that identifies the Competency Framework Document that is to be read from the service provider. required: true type: string responses: 200 : description: | This is the response when the request has been completed successfully. It is the CFDocument from the service provider. schema: $ref: "#/definitions/CFDocument.Type" 400 : description: | An invalid selection field was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field'. 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 i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. schema: $ref: "#/definitions/imsx_StatusInfo.Type" 404 : description: | Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid UUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' of 'Invalid UUID' should also be presented. 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" /CFItemAssociations/{sourcedId}: get: operationId: getCFItemAssociations summary: The REST read request message for the getCFItemAssociations() API call. tags: - AssociationsManager description: | This is a request to the Service Provider to provide the all of the Competency Associations for the specified CFItem and the information about the CFItem itself. If the identified record cannot be found then the 'unknownobject' status code must be reported. parameters: - name: sourcedId in: path description: | The UUID that identifies the CFItem for which ALL associations are to be supplied. required: true type: string responses: 200 : description: | This is the response when the request has been completed successfully. It is the CFItem and set of CFAssociations from the service provider. schema: $ref: "#/definitions/CFAssociationSet.Type" 400 : description: | An invalid selection field was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field'. 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 i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. schema: $ref: "#/definitions/imsx_StatusInfo.Type" 404 : description: | Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid UUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' of 'Invalid UUID' should also be presented. 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" /CFItemTypes/{sourcedId}: get: operationId: getCFItemType summary: The REST read request message for the getCFItemType() API call. tags: - DefinitionsManager description: | This is a request to the Service Provider to provide the specified Competency Framework Item Type and the set of children CFItemTypes as identified by the hierarchy codes. If the identified record cannot be found then the 'unknownobject' status code must be reported. parameters: - name: sourcedId in: path description: | The UUID that identifies the Competency Framework ItemType that is to be read from the service provider. required: true type: string responses: 200 : description: | This is the response when the request has been completed successfully. It is the CFItemType and child CFItemTypes from the service provider. schema: $ref: "#/definitions/CFItemTypeSet.Type" 400 : description: | An invalid selection field was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field'. 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 i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. schema: $ref: "#/definitions/imsx_StatusInfo.Type" 404 : description: | Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid UUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' of 'Invalid UUID' should also be presented. 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" /CFItems/{sourcedId}: get: operationId: getCFItem summary: The REST read request message for the getCFItem() API call. tags: - ItemsManager description: | This is a request to the Service Provider to provide the specified Competency Framework Item. If the identified record cannot be found then the 'unknownobject' status code must be reported. parameters: - name: sourcedId in: path description: | The UUID that identifies the Competency Framework Item that is to be read from the service provider. required: true type: string responses: 200 : description: | This is the response when the request has been completed successfully. It is the CFItem from the service provider. schema: $ref: "#/definitions/CFItem.Type" 400 : description: | An invalid selection field was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field'. 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 i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. schema: $ref: "#/definitions/imsx_StatusInfo.Type" 404 : description: | Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid UUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' of 'Invalid UUID' should also be presented. 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" /CFLicenses/{sourcedId}: get: operationId: getCFLicense summary: The REST read request message for the getCFLicense() API call. tags: - DefinitionsManager description: | This is a request to the Service Provider to provide the specified Competency Framework License. If the identified record cannot be found then the 'unknownobject' status code must be reported. parameters: - name: sourcedId in: path description: | The UUID that identifies the Competency Framework License that is to be read from the service provider. required: true type: string responses: 200 : description: | This is the response when the request has been completed successfully. It is the CFLicense from the service provider. schema: $ref: "#/definitions/CFLicense.Type" 400 : description: | An invalid selection field was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field'. 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 i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. schema: $ref: "#/definitions/imsx_StatusInfo.Type" 404 : description: | Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid UUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' of 'Invalid UUID' should also be presented. 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" /CFPackages/{sourcedId}: get: operationId: getCFPackage summary: The REST read request message for the getCFPackage() API call. tags: - PackagesManager description: | This is a request to the service provider to provide the information for the specific Competency Framework Package. If the identified record cannot be found then the 'unknownobject' status code must be reported. parameters: - name: sourcedId in: path description: | The UUID that identifies the Competency Framework Document that is to be read from the service provider and supplied with all of its component artefacts. required: true type: string responses: 200 : description: | This is the response when the request has been completed successfully. It is the CFPackage from the service provider. schema: $ref: "#/definitions/CFPackage.Type" 400 : description: | An invalid selection field was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field'. 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 i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. schema: $ref: "#/definitions/imsx_StatusInfo.Type" 404 : description: | Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid UUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' of 'Invalid UUID' should also be presented. 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" /CFRubrics/{sourcedId}: get: operationId: getCFRubric summary: The REST read request message for the getCFRubric() API call. tags: - RubricsManager description: | This is a request to the service provider to provide the information for the specific Competency Framework Rubric. If the identified record cannot be found then the 'unknownobject' status code must be reported. parameters: - name: sourcedId in: path description: | The UUID that identifies the Competency Framework Rubric that is to be read from the service provider. required: true type: string responses: 200 : description: | This is the response when the request has been completed successfully. It is the CFRubric from the service provider. schema: $ref: "#/definitions/CFRubric.Type" 400 : description: | An invalid selection field was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field'. 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 i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. schema: $ref: "#/definitions/imsx_StatusInfo.Type" 404 : description: | Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid UUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' of 'Invalid UUID' should also be presented. 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" /CFSubjects/{sourcedId}: get: operationId: getCFSubject summary: The REST read request message for the getCFSubject() API call. tags: - DefinitionsManager description: | This is a request to the Service Provider to provide the specified Competency Framework Subject and the set of children CFSubjects as identified by the hierarchy codes. If the identified record cannot be found then the 'unknownobject' status code must be reported. parameters: - name: sourcedId in: path description: | The UUID that identifies the Competency Framework Subject that is to be read from the service provider. required: true type: string responses: 200 : description: | This is the response when the request has been completed successfully. It is the CFSubject and child CFSubjects from the service provider. schema: $ref: "#/definitions/CFSubjectSet.Type" 400 : description: | An invalid selection field was supplied and data filtering on the selection criteria was not possible i.e. 'invalid_selection_field'. 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 i.e. 'forbidden'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. schema: $ref: "#/definitions/imsx_StatusInfo.Type" 404 : description: | Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid UUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' of 'Invalid UUID' should also be presented. 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: CFAssociation.Type: description: | This is the container for the data about the relationship between two CFDocuments or between two CFItems outside of the context of a CFPackage or CFItem. type: object allOf: - $ref: "#/definitions/CFPckgAssociation.Type" - type: object properties: CFDocumentURI: $ref: "#/definitions/LinkURI.Type" additionalProperties: false CFAssociationGrouping.Type: description: | This is the container for information about a set of associations that have been labelled as a group (the nature of the group being defined by this container). type: object required: - identifier - uri - title - lastChangeDateTime properties: identifier: $ref: "#/definitions/UUID.Type" uri: description: Model Primitive Datatype = AnyURI type: string format: uri title: description: Model Primitive Datatype = NormalizedString type: string description: description: Model Primitive Datatype = String type: string lastChangeDateTime: description: Model Primitive Datatype = DateTime type: string format: date-time additionalProperties: false CFAssociationSet.Type: description: | This is the container for a collection of CFAssociations. There must be at least one CFAssociation. Note that the association can be between CFDocuments or between CFItems. type: object required: - CFItem - CFAssociations properties: CFItem: $ref: "#/definitions/CFItem.Type" CFAssociations: type: array minItems: 1 items: $ref: "#/definitions/CFPckgAssociation.Type" additionalProperties: false CFConcept.Type: description: | The container for the definition of a concept which is addressed by the competency framework. type: object required: - identifier - uri - title - hierarchyCode - lastChangeDateTime properties: identifier: $ref: "#/definitions/UUID.Type" uri: description: Model Primitive Datatype = AnyURI type: string format: uri title: description: Model Primitive Datatype = NormalizedString type: string keywords: description: Model Primitive Datatype = NormalizedString type: string hierarchyCode: description: Model Primitive Datatype = NormalizedString type: string description: description: Model Primitive Datatype = String type: string lastChangeDateTime: description: Model Primitive Datatype = DateTime type: string format: date-time additionalProperties: false CFConceptSet.Type: description: | The container for the set of CFConcepts supplied in the response payload. The relationship between the CFConcepts is determined by the 'hierarchyCode'. The first CFConcept is that which has been specified in the call. The other CFConcepts are the set of children as determined by their place in the 'hierarchyCode' of the CFConcept. type: object required: - CFConcepts properties: CFConcepts: type: array minItems: 1 items: $ref: "#/definitions/CFConcept.Type" additionalProperties: false CFDefinition.Type: description: | The container for the set of definitions used for the competency framework i.e. the set of CFSubjects, CFConcepts, CFItemTypes, CFAssociationGroupings and CFLicenses. type: object properties: CFConcepts: type: array minItems: 0 items: $ref: "#/definitions/CFConcept.Type" CFSubjects: type: array minItems: 0 items: $ref: "#/definitions/CFSubject.Type" CFLicenses: type: array minItems: 0 items: $ref: "#/definitions/CFLicense.Type" CFItemTypes: type: array minItems: 0 items: $ref: "#/definitions/CFItemType.Type" CFAssociationGroupings: type: array minItems: 0 items: $ref: "#/definitions/CFAssociationGrouping.Type" additionalProperties: false CFDocument.Type: description: | The container for the data about a competency framework document (CFDocument) when exchanged outside of the context of a CFPackage. A CFDocument is the root for the creation of a learning standard/competency. type: object allOf: - $ref: "#/definitions/CFPckgDocument.Type" - type: object properties: CFPackageURI: $ref: "#/definitions/LinkURI.Type" required: - CFPackageURI additionalProperties: false CFDocumentSet.Type: description: | This is the container for a collection of CFDocuments. There must be at least one CFDocument. type: object required: - CFDocuments properties: CFDocuments: type: array minItems: 1 items: $ref: "#/definitions/CFDocument.Type" additionalProperties: false CFItem.Type: description: | This is the container for the CFItem data outside of the context of a CFPackage. This is the content that either describes a specific competency (learning objective) or describes a grouping of competencies within the taxonomy of a Competency Framework Document. type: object allOf: - $ref: "#/definitions/CFPckgItem.Type" - type: object properties: CFDocumentURI: $ref: "#/definitions/LinkURI.Type" required: - CFDocumentURI additionalProperties: false CFItemType.Type: description: | The container for the ItemType information use within the competency framework. type: object required: - identifier - uri - title - description - hierarchyCode - lastChangeDateTime properties: identifier: $ref: "#/definitions/UUID.Type" uri: description: Model Primitive Datatype = AnyURI type: string format: uri title: description: Model Primitive Datatype = NormalizedString type: string description: description: Model Primitive Datatype = String type: string hierarchyCode: description: Model Primitive Datatype = NormalizedString type: string typeCode: description: Model Primitive Datatype = NormalizedString type: string lastChangeDateTime: description: Model Primitive Datatype = DateTime type: string format: date-time additionalProperties: false CFItemTypeSet.Type: description: | The container for the set of CFItemTypes supplied in the response payload. The relationship between the CFItemTypes is determined by the 'hierarchyCode'. The first CFItemType is that which has been specified in the call. The other CFItemTypes are the set of children as determined by their place in the 'hierarchyCode' of the CFItemType. type: object required: - CFItemTypes properties: CFItemTypes: type: array minItems: 1 items: $ref: "#/definitions/CFItemType.Type" additionalProperties: false CFLicense.Type: description: | The container for the information about a license used within the competency framework. type: object required: - identifier - uri - title - licenseText - lastChangeDateTime properties: identifier: $ref: "#/definitions/UUID.Type" uri: description: Model Primitive Datatype = AnyURI type: string format: uri title: description: Model Primitive Datatype = NormalizedString type: string description: description: Model Primitive Datatype = String type: string licenseText: description: Model Primitive Datatype = String type: string lastChangeDateTime: description: Model Primitive Datatype = DateTime type: string format: date-time additionalProperties: false CFPackage.Type: description: | This is the container for all of the data for a Competency Framework Package i.e. the root CFDocument and ALL of the corresponding components i.e. the CFItems, CFAssociations and CFDefinitions. type: object required: - CFDocument properties: CFDocument: $ref: "#/definitions/CFPckgDocument.Type" CFItems: type: array minItems: 0 items: $ref: "#/definitions/CFPckgItem.Type" CFAssociations: type: array minItems: 0 items: $ref: "#/definitions/CFPckgAssociation.Type" CFDefinitions: $ref: "#/definitions/CFDefinition.Type" CFRubrics: type: array minItems: 0 items: $ref: "#/definitions/CFRubric.Type" additionalProperties: false CFPckgAssociation.Type: description: | This is the container for the data about the relationship between two CFDocuments or between two CFItems within the context of a CFPackage. type: object required: - identifier - associationType - uri - originNodeURI - destinationNodeURI - lastChangeDateTime properties: identifier: $ref: "#/definitions/UUID.Type" associationType: type: string enum: - isChildOf - isPeerOf - isPartOf - exactMatchOf - precedes - isRelatedTo - replacedBy - exemplar - hasSkillLevel sequenceNumber: description: Model Primitive Datatype = Integer type: integer format: int32 uri: description: Model Primitive Datatype = AnyURI type: string format: uri originNodeURI: $ref: "#/definitions/LinkGenURI.Type" destinationNodeURI: $ref: "#/definitions/LinkGenURI.Type" CFAssociationGroupingURI: $ref: "#/definitions/LinkURI.Type" lastChangeDateTime: description: Model Primitive Datatype = DateTime type: string format: date-time additionalProperties: false CFPckgDocument.Type: description: | The container for the data about a competency framework document (CFDocument) within a CFPackage. A CFDocument is the root for the creation of a learning standard/competency. type: object required: - identifier - uri - creator - title - lastChangeDateTime properties: identifier: $ref: "#/definitions/UUID.Type" uri: description: Model Primitive Datatype = AnyURI type: string format: uri creator: description: Model Primitive Datatype = NormalizedString type: string title: description: Model Primitive Datatype = NormalizedString type: string lastChangeDateTime: description: Model Primitive Datatype = DateTime type: string format: date-time officialSourceURL: $ref: "#/definitions/URL.Type" publisher: description: Model Primitive Datatype = NormalizedString type: string description: description: Model Primitive Datatype = NormalizedString type: string subject: description: Model Primitive Datatype = NormalizedString type: array minItems: 0 items: type: string subjectURI: type: array minItems: 0 items: $ref: "#/definitions/LinkURI.Type" language: description: Model Primitive Datatype = Language type: string version: description: Model Primitive Datatype = NormalizedString type: string adoptionStatus: description: Model Primitive Datatype = NormalizedString type: string statusStartDate: description: Model Primitive Datatype = Date type: string format: date statusEndDate: description: Model Primitive Datatype = Date type: string format: date licenseURI: $ref: "#/definitions/LinkURI.Type" notes: description: Model Primitive Datatype = String type: string additionalProperties: false CFPckgItem.Type: description: | This is the container for the CFItem data within the context of a CFPackage. This is the content that either describes a specific competency (learning objective) or describes a grouping of competencies within the taxonomy of a Competency Framework Document. type: object required: - identifier - fullStatement - uri - lastChangeDateTime properties: identifier: $ref: "#/definitions/UUID.Type" fullStatement: description: Model Primitive Datatype = NormalizedString type: string alternativeLabel: description: Model Primitive Datatype = NormalizedString type: string CFItemType: description: Model Primitive Datatype = NormalizedString type: string uri: description: Model Primitive Datatype = AnyURI type: string format: uri humanCodingScheme: description: Model Primitive Datatype = NormalizedString type: string listEnumeration: description: Model Primitive Datatype = NormalizedString type: string abbreviatedStatement: description: Model Primitive Datatype = NormalizedString type: string conceptKeywords: description: Model Primitive Datatype = NormalizedString type: array minItems: 0 items: type: string conceptKeywordsURI: $ref: "#/definitions/LinkURI.Type" notes: description: Model Primitive Datatype = String type: string language: description: Model Primitive Datatype = Language type: string educationLevel: description: Model Primitive Datatype = NormalizedString type: array minItems: 0 items: type: string CFItemTypeURI: $ref: "#/definitions/LinkURI.Type" licenseURI: $ref: "#/definitions/LinkURI.Type" statusStartDate: description: Model Primitive Datatype = Date type: string format: date statusEndDate: description: Model Primitive Datatype = Date type: string format: date lastChangeDateTime: description: Model Primitive Datatype = DateTime type: string format: date-time additionalProperties: false CFRubric.Type: description: | The container for the definition of a rubric which is addressed by the competency framework. This includes the set of associated CFRubricCriteria and CFRubricCriterionLevels. type: object required: - identifier - uri - lastChangeDateTime properties: identifier: $ref: "#/definitions/UUID.Type" uri: description: Model Primitive Datatype = AnyURI type: string format: uri title: description: Model Primitive Datatype = NormalizedString type: string description: description: Model Primitive Datatype = NormalizedString type: string lastChangeDateTime: description: Model Primitive Datatype = DateTime type: string format: date-time CFRubricCriteria: type: array minItems: 0 items: $ref: "#/definitions/CFRubricCriterion.Type" additionalProperties: false CFRubricCriterion.Type: description: | The container for the definition of a rubric criterion which is addressed by the competency framework. type: object required: - identifier - uri - lastChangeDateTime properties: identifier: $ref: "#/definitions/UUID.Type" uri: description: Model Primitive Datatype = AnyURI type: string format: uri category: description: Model Primitive Datatype = NormalizedString type: string description: description: Model Primitive Datatype = String type: string CFItemURI: $ref: "#/definitions/LinkURI.Type" weight: description: Model Primitive Datatype = Float type: number format: float position: description: Model Primitive Datatype = Integer type: integer format: int32 rubricId: $ref: "#/definitions/UUID.Type" lastChangeDateTime: description: Model Primitive Datatype = DateTime type: string format: date-time CFRubricCriterionLevels: type: array minItems: 0 items: $ref: "#/definitions/CFRubricCriterionLevel.Type" additionalProperties: false CFRubricCriterionLevel.Type: description: | The container for the definition of a criterion level which is addressed by the competency framework. type: object required: - identifier - uri - lastChangeDateTime properties: identifier: $ref: "#/definitions/UUID.Type" uri: description: Model Primitive Datatype = AnyURI type: string format: uri description: description: Model Primitive Datatype = String type: string quality: description: Model Primitive Datatype = NormalizedString type: string score: description: Model Primitive Datatype = Float type: number format: float feedback: description: Model Primitive Datatype = String type: string position: description: Model Primitive Datatype = Integer type: integer format: int32 rubricCriterionId: $ref: "#/definitions/UUID.Type" lastChangeDateTime: description: Model Primitive Datatype = DateTime type: string format: date-time additionalProperties: false CFSubject.Type: description: | The container for the definition of a topic or academic subject which is addressed by the competency framework. type: object required: - identifier - uri - title - hierarchyCode - lastChangeDateTime properties: identifier: $ref: "#/definitions/UUID.Type" uri: description: Model Primitive Datatype = AnyURI type: string format: uri title: description: Model Primitive Datatype = NormalizedString type: string hierarchyCode: description: Model Primitive Datatype = NormalizedString type: string description: description: Model Primitive Datatype = String type: string lastChangeDateTime: description: Model Primitive Datatype = DateTime type: string format: date-time additionalProperties: false CFSubjectSet.Type: description: | The container for the set of CFSubjects supplied in the response payload. The relationship between the CFSubjects is determined by the 'hierarchyCode'. The first CFSubject is that which has been specified in the call. The other CFSubjects are the set of children as determined by their place in the 'hierarchyCode' of the CFSubject. type: object required: - CFSubjects properties: CFSubjects: type: array minItems: 1 items: $ref: "#/definitions/CFSubject.Type" additionalProperties: false LinkGenURI.Type: description: | A container for the information that is used to achieve the link data reference. type: object required: - title - identifier - uri properties: title: description: Model Primitive Datatype = NormalizedString type: string identifier: description: Model Primitive Datatype = NormalizedString type: string uri: description: Model Primitive Datatype = AnyURI type: string format: uri additionalProperties: false LinkURI.Type: description: | A container for the information that is used to achieve the link data reference. type: object required: - title - identifier - uri properties: title: description: Model Primitive Datatype = NormalizedString type: string identifier: $ref: "#/definitions/UUID.Type" uri: description: Model Primitive Datatype = AnyURI type: string format: uri additionalProperties: false URL.Type: description: | The data-type for establishing a Uniform Resource Locator (URL) as defined by W3C. type: string format: uri UUID.Type: description: | The data-type for establishing a Globally Unique Identifier (GUID). The form of the GUID is a Universally Unique Identifier (UUID) of 16 hexadecimal characters (lower case) in the format 8-4-4-4-12. All permitted versions (1-5) and variants (1-2) are supported. type: string 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: 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: Model Primitive Datatype = NormalizedString type: string imsx_codeMinorFieldValue: type: string enum: - fullsuccess - invalid_sort_field - invalid_selection_field - forbidden - unauthorisedrequest - internal_server_error - unknownobject - server_busy - invaliduuid 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. For the CASE service this object will only be returned to provide information about a failed request i.e. it will NOT be in the payload for a successful request. See Appendix B for further information on the interpretation of the information contained within this class type: object required: - imsx_codeMajor - imsx_severity properties: imsx_codeMajor: type: string enum: - success - processing - failure - unsupported imsx_severity: type: string enum: - status - warning - error imsx_description: description: Model Primitive Datatype = String type: string imsx_codeMinor: $ref: "#/definitions/imsx_CodeMinor.Type" additionalProperties: false
Title: | IMS Competencies and Academic Standards Exchange (CASE) Service REST/JSON Binding v1.0 |
Editors: | Colin Smythe, IMS Global (UK) Bob Grogan, Elumen (USA) Greg Nadeau, PCGUS (USA) Jill Hobson, IMS Global (USA) |
Co-chairs: | Jeff Grann, Capella University (USA) Joshua Marks, PCGUS (USA) Joseph Chapman, D2L (Canada) Mark Leuba, IMS Global (USA) |
Version: | 1.0 |
Version Date: | 7th July, 2017 |
Status: | IMS Final Release |
Summary: | The IMS Competencies and Academic Standards Exchange (CASE) Service is used to exchange information about the learning and education competencies. This standard defines a set of data models for competency frameworks, competency documents, competency definitions, competency associations, rubrics, rubric criterions and rubric criterion levels. It also describes how this data can be exchanged using a set of service calls. This document contains the REST/JSON Binding description for the CASE Service. |
Revision Information: | First release of this specification. |
Purpose: | For public adoption and implemenation. |
Document Location: | http://www.imsglobal.org/case |
The following individuals contributed to the development of this document:
Raymond Baranoski | Safari Montage (USA) |
Diana Bidulescu | Houston ISD (USA) |
Adam Blum | OpenEd (USA) |
Jared Booth | HMH (USA) |
Clyde Boyer | Trinity Education Group (USA) |
Barry Brahier | Infinite Campus (USA) |
Christine Case | Trinity Education Group (USA) |
Joseph Chapman | D2L (Canada) |
Chris Chung | IMS Global (USA) |
Deb Everhart | Learning Objects (USA) |
David Gappa | Safari Montage (USA) |
Jeramy Gatza | Florida Virtual School (USA) |
Jeff Grann | Cappella University (USA) |
Bob Grogan | Elumen (USA) |
Jeroen Hamers | Kennisnet (Netherlands) |
Joel Hernandez | Elumen (USA) |
Jill Hobson | IMS Global (USA) |
Chris Houston | Capella University (USA) |
Jamey Hynds | Katy ISD (USA) |
Brian Kubota | Pearson (USA) |
Andy Kuritizky | HMH (USA) |
Mark Leuba | IMS Global (USA) |
Karl Lloyd | Instructure (USA) |
Joshua Marks | PCGUS (USA) |
Lisa Mattson | IMS Global (USA) |
David Mayes | Gwinnett County Schools (USA) |
Greg Nadeau | PCGUS (USA) |
Henk Nijstad | Kennisnet (Netherlands) |
Hugh Norwood | Trinity Education Group (USA) |
Robert Pangborn | IBM (USA) |
Steve Polyak | ACT (USA) |
Brandt Redd | Smarter Balance (USA) |
Jennifer Reichlin | Pearson (USA) |
William Santo | Desire2Learn (Canada) |
Bob Schloss | IBM (USA) |
McCall Smith | Instructure (USA) |
Colin Smythe | IMS Global (UK) |
Davant Stewart | Houston ISD (USA) |
Stewart Sutton | Dublin Core (USA) |
Marcia van Oplo | Kennisnet (Netherlands) |
Michele Wagner | Baltimore County Public Schools (USA) |
David Ward | PCGUS (USA) |
Jennifer Whiting | Florida Virtual School (USA) |
Avi Yashchin | IBM (USA) |
Version No. | Release Date | Comments |
---|---|---|
Final Release 1.0 | 7th July, 2017 | The original Final Release. This declares the standard ready 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 Competencies and Academic Standards Exchange (CASE) Service REST/JSON Binding v1.0
Date: 7th July, 2017