IMS Final Release

IMS Global Logo

IMS Competencies and Academic Standards Exchange (CASE) Service REST/JSON Binding Version 1.0

IMS Final Release
Version 1.0

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.

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

toc | top

Table of Contents

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. The REST Endpoints

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

4. Security Framework

5. JSON Payloads

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.1 General Information

6.2 Tags Information

6.3 Security Information

6.4 Paths 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 Definitions Information

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. Extending the Service

7.1.1. Proprietary Operations

7.1.2. Proprietary Data Elements

7.2. Profiling the Service

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

About this Document

List of Contributors

Revision History

toc | top

List of Tables

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

toc | top

List of Code Blocks

Code 5.2.1 - JSON payload example for "200" response messages for a "getAllCFDocuments" operation.

Code 5.2.2 - JSON payload example for "400, 401, 403, 404, 429, 500, default" response messages for a "getAllCFDocuments" operation.

Code 5.4.1 - JSON payload example for "200" response messages for a "getCFAssociation" operation.

Code 5.4.2 - JSON payload example for "400, 401, 403, 404, 429, 500, default" response messages for a "getCFAssociation" operation.

Code 5.6.1 - JSON payload example for "200" response messages for a "getCFAssociationGrouping" operation.

Code 5.6.2 - JSON payload example for "400, 401, 403, 404, 429, 500, default" 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.

toc | top

1. Introduction

1.1. Overview of the Competency Service

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

1.2. Scope and Context

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:

1.3. Structure of this Document

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.

1.4. Nomenclature

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

1.5. References

[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.

toc | top

2. The REST Endpoints

2.1. Mapping of the Service Operations to the REST Endpoints

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.

Table 2.1 - The Set of REST Endpoint URL-leaf Values.
Service Call REST Endpoint HTTP Verb
getAllCFDocuments /CFDocuments GET
getCFAssociation /CFAssociations/{sourcedId} GET
getCFAssociationGrouping /CFAssociationGroupings/{sourcedId} GET
getCFConcept /CFConcepts/{sourcedId} GET
getCFDocument /CFDocuments/{sourcedId} GET
getCFItem /CFItems/{sourcedId} GET
getCFItemAssociations /CFItemAssociations/{sourcedId} GET
getCFItemType /CFItemTypes/{sourcedId} GET
getCFLicense /CFLicenses/{sourcedId} GET
getCFPackage /CFPackages/{sourcedId} GET
getCFRubric /CFRubrics/{sourcedId} GET
getCFSubject /CFSubjects/{sourcedId} GET

2.2. API Root URL and Versioning

All of the paths MUST also contain, as the base of the path, excluding the host name, the string: "/ims/case/v1p0".

2.3. Predefined Endpoint Query Parameters

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.

2.3.1. "getAllCFDocuments" Endpoint Query Parameters

2.3.1.1 "limit" Query Parameter

The description of the "limit" query parameter is presented in Table 2.3.1.1

Table 2.3.1.1 - The definition of the "limit" query parameter for the "getAllCFDocuments" operation.
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).

2.3.1.2 "offset" Query Parameter

The description of the "offset" query parameter is presented in Table 2.3.1.2

Table 2.3.1.2 - The definition of the "offset" query parameter for the "getAllCFDocuments" operation.
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).

2.3.1.3 "sort" Query Parameter

The description of the "sort" query parameter is presented in Table 2.3.1.3

Table 2.3.1.3 - The definition of the "sort" query parameter for the "getAllCFDocuments" operation.
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).

2.3.1.4 "orderBy" Query Parameter

The description of the "orderBy" query parameter is presented in Table 2.3.1.4

Table 2.3.1.4 - The definition of the "orderBy" query parameter for the "getAllCFDocuments" operation.
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).

2.3.1.5 "filter" Query Parameter

The description of the "filter" query parameter is presented in Table 2.3.1.5

Table 2.3.1.5 - The definition of the "filter" query parameter for the "getAllCFDocuments" operation.
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).

2.3.1.6 "fields" Query Parameter

The description of the "fields" query parameter is presented in Table 2.3.1.6

Table 2.3.1.6 - The definition of the "fields" query parameter for the "getAllCFDocuments" operation.
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).

2.3.2. "getCFAssociation" Endpoint Query Parameters

There are no pre-defined query parameters for this endpoint.

2.3.3. "getCFAssociationGrouping" Endpoint Query Parameters

There are no pre-defined query parameters for this endpoint.

2.3.4. "getCFConcept" Endpoint Query Parameters

There are no pre-defined query parameters for this endpoint.

2.3.5. "getCFDocument" Endpoint Query Parameters

There are no pre-defined query parameters for this endpoint.

2.3.6. "getCFItem" Endpoint Query Parameters

There are no pre-defined query parameters for this endpoint.

2.3.7. "getCFItemAssociations" Endpoint Query Parameters

There are no pre-defined query parameters for this endpoint.

2.3.8. "getCFItemType" Endpoint Query Parameters

There are no pre-defined query parameters for this endpoint.

2.3.9. "getCFLicense" Endpoint Query Parameters

There are no pre-defined query parameters for this endpoint.

2.3.10. "getCFPackage" Endpoint Query Parameters

There are no pre-defined query parameters for this endpoint.

2.3.11. "getCFRubric" Endpoint Query Parameters

There are no pre-defined query parameters for this endpoint.

2.3.12. "getCFSubject" Endpoint Query Parameters

There are no pre-defined query parameters for this endpoint.

2.4. Error Handling

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.

Table 2.4 - The List of Error Codes and Handling for each Endpoint.
REST Endpoint HTTP Verb Error Codes and Handling
/CFDocuments GET
  • 400 - 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'. The payload structure is defined by the structure imsx_StatusInfo.Type.
  • 401 - The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload structure is defined by the structure imsx_StatusInfo.Type.
  • 403 - 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'. The payload structure is defined by the structure imsx_StatusInfo.Type.
  • 404 - 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. The payload structure is defined by the structure imsx_StatusInfo.Type.
  • 429 - 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'. The payload structure is defined by the structure imsx_StatusInfo.Type.
  • 500 - 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'. The payload structure is defined by the structure imsx_StatusInfo.Type.
/CFAssociations/{sourcedId} GET
  • 400 - 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'. The payload structure is defined by the structure imsx_StatusInfo.Type.
  • 401 - The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload structure is defined by the structure imsx_StatusInfo.Type.
  • 403 - 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'. The payload structure is defined by the structure imsx_StatusInfo.Type.
  • 404 - 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. The payload structure is defined by the structure imsx_StatusInfo.Type.
  • 429 - 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'. The payload structure is defined by the structure imsx_StatusInfo.Type.
  • 500 - 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'. The payload structure is defined by the structure imsx_StatusInfo.Type.
/CFAssociationGroupings/{sourcedId} GET
  • 400 - 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'. The payload structure is defined by the structure imsx_StatusInfo.Type.
  • 401 - The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload structure is defined by the structure imsx_StatusInfo.Type.
  • 403 - 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'. The payload structure is defined by the structure imsx_StatusInfo.Type.
  • 404 - 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. The payload structure is defined by the structure imsx_StatusInfo.Type.
  • 429 - 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'. The payload structure is defined by the structure imsx_StatusInfo.Type.
  • 500 - 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'. The payload structure is defined by the structure imsx_StatusInfo.Type.
/CFConcepts/{sourcedId} GET
  • 400 - 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'. The payload structure is defined by the structure imsx_StatusInfo.Type.
  • 401 - The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload structure is defined by the structure imsx_StatusInfo.Type.
  • 403 - 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'. The payload structure is defined by the structure imsx_StatusInfo.Type.
  • 404 - 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. The payload structure is defined by the structure imsx_StatusInfo.Type.
  • 429 - 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'. The payload structure is defined by the structure imsx_StatusInfo.Type.
  • 500 - 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'. The payload structure is defined by the structure imsx_StatusInfo.Type.
/CFDocuments/{sourcedId} GET
  • 400 - 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'. The payload structure is defined by the structure imsx_StatusInfo.Type.
  • 401 - The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload structure is defined by the structure imsx_StatusInfo.Type.
  • 403 - 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'. The payload structure is defined by the structure imsx_StatusInfo.Type.
  • 404 - 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. The payload structure is defined by the structure imsx_StatusInfo.Type.
  • 429 - 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'. The payload structure is defined by the structure imsx_StatusInfo.Type.
  • 500 - 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'. The payload structure is defined by the structure imsx_StatusInfo.Type.
/CFItems/{sourcedId} GET
  • 400 - 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'. The payload structure is defined by the structure imsx_StatusInfo.Type.
  • 401 - The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload structure is defined by the structure imsx_StatusInfo.Type.
  • 403 - 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'. The payload structure is defined by the structure imsx_StatusInfo.Type.
  • 404 - 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. The payload structure is defined by the structure imsx_StatusInfo.Type.
  • 429 - 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'. The payload structure is defined by the structure imsx_StatusInfo.Type.
  • 500 - 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'. The payload structure is defined by the structure imsx_StatusInfo.Type.
/CFItemAssociations/{sourcedId} GET
  • 400 - 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'. The payload structure is defined by the structure imsx_StatusInfo.Type.
  • 401 - The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload structure is defined by the structure imsx_StatusInfo.Type.
  • 403 - 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'. The payload structure is defined by the structure imsx_StatusInfo.Type.
  • 404 - 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. The payload structure is defined by the structure imsx_StatusInfo.Type.
  • 429 - 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'. The payload structure is defined by the structure imsx_StatusInfo.Type.
  • 500 - 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'. The payload structure is defined by the structure imsx_StatusInfo.Type.
/CFItemTypes/{sourcedId} GET
  • 400 - 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'. The payload structure is defined by the structure imsx_StatusInfo.Type.
  • 401 - The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload structure is defined by the structure imsx_StatusInfo.Type.
  • 403 - 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'. The payload structure is defined by the structure imsx_StatusInfo.Type.
  • 404 - 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. The payload structure is defined by the structure imsx_StatusInfo.Type.
  • 429 - 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'. The payload structure is defined by the structure imsx_StatusInfo.Type.
  • 500 - 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'. The payload structure is defined by the structure imsx_StatusInfo.Type.
/CFLicenses/{sourcedId} GET
  • 400 - 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'. The payload structure is defined by the structure imsx_StatusInfo.Type.
  • 401 - The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload structure is defined by the structure imsx_StatusInfo.Type.
  • 403 - 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'. The payload structure is defined by the structure imsx_StatusInfo.Type.
  • 404 - 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. The payload structure is defined by the structure imsx_StatusInfo.Type.
  • 429 - 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'. The payload structure is defined by the structure imsx_StatusInfo.Type.
  • 500 - 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'. The payload structure is defined by the structure imsx_StatusInfo.Type.
/CFPackages/{sourcedId} GET
  • 400 - 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'. The payload structure is defined by the structure imsx_StatusInfo.Type.
  • 401 - The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload structure is defined by the structure imsx_StatusInfo.Type.
  • 403 - 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'. The payload structure is defined by the structure imsx_StatusInfo.Type.
  • 404 - 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. The payload structure is defined by the structure imsx_StatusInfo.Type.
  • 429 - 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'. The payload structure is defined by the structure imsx_StatusInfo.Type.
  • 500 - 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'. The payload structure is defined by the structure imsx_StatusInfo.Type.
/CFRubrics/{sourcedId} GET
  • 400 - 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'. The payload structure is defined by the structure imsx_StatusInfo.Type.
  • 401 - The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload structure is defined by the structure imsx_StatusInfo.Type.
  • 403 - 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'. The payload structure is defined by the structure imsx_StatusInfo.Type.
  • 404 - 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. The payload structure is defined by the structure imsx_StatusInfo.Type.
  • 429 - 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'. The payload structure is defined by the structure imsx_StatusInfo.Type.
  • 500 - 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'. The payload structure is defined by the structure imsx_StatusInfo.Type.
/CFSubjects/{sourcedId} GET
  • 400 - 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'. The payload structure is defined by the structure imsx_StatusInfo.Type.
  • 401 - The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload structure is defined by the structure imsx_StatusInfo.Type.
  • 403 - 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'. The payload structure is defined by the structure imsx_StatusInfo.Type.
  • 404 - 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. The payload structure is defined by the structure imsx_StatusInfo.Type.
  • 429 - 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'. The payload structure is defined by the structure imsx_StatusInfo.Type.
  • 500 - 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'. The payload structure is defined by the structure imsx_StatusInfo.Type.

toc | top

3. Using the Endpoint Parameters

3.1. Pagination

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"

3.2. Sorting

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.

3.3. Filtering

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:

3.4. Field Selection

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:

toc | top

4. Security Framework

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.

toc | top

5. JSON Payloads

5.1. "getAllCFDocuments" Request Payload

There is no payload for this request.

5.2. "getAllCFDocuments" Response Payloads

5.2.1. Response Payloads for the HTTP Codes (200)

An example of the response payload is shown in the code block below.

Code 5.2.1 - JSON payload example for "200" response messages for a "getAllCFDocuments" operation.
    {
        "CFDocuments" : [
            {
                "identifier" : "..NormalizedString..",
                "uri" : "..URI..",
                "creator" : "..NormalizedString..",
                "title" : "..NormalizedString..",
                "lastChangeDateTime" : "..Date/Time..",
                "officialSourceURL" : "..URI..",
                "publisher" : "..NormalizedString..",
                "description" : "..NormalizedString..",
                "subject" : [ "..NormalizedString..", ..., "..NormalizedString.." ],
                "subjectURI" : [
                    {
                        "title" : "..NormalizedString..",
                        "identifier" : "..NormalizedString..",
                        "uri" : "..URI.."
                    },
                    {...},
                    {...}
                ],
                "language" : "..String(Language Code)..",
                "version" : "..NormalizedString..",
                "adoptionStatus" : "..NormalizedString..",
                "statusStartDate" : "..String(Date)..",
                "statusEndDate" : "..String(Date)..",
                "licenseURI" : {
                    "title" : "..NormalizedString..",
                    "identifier" : "..NormalizedString..",
                    "uri" : "..URI.."
                },
                "notes" : "..String..",
                "CFPackageURI" : {
                    "title" : "..NormalizedString..",
                    "identifier" : "..NormalizedString..",
                    "uri" : "..URI.."
                }
            },
            {...},
            {...}
        ]
    }
                        

5.2.2. Response Payloads for the HTTP Codes (400, 401, 403, 404, 429, 500, default)

An example of the response payload is shown in the code block below.

Code 5.2.2 - JSON payload example for "400, 401, 403, 404, 429, 500, default" response messages for a "getAllCFDocuments" operation.
    {
        "imsx_codeMajor" : "success"|"processing"|"failure"|"unsupported",
        "imsx_severity" : "status"|"warning"|"error",
        "imsx_description" : "..String..",
        "imsx_codeMinor" : {
            "imsx_codeMinorField" : [
                {
                    "imsx_codeMinorFieldName" : "..NormalizedString..",
                    "imsx_codeMinorFieldValue" : "fullsuccess"|"invalid_sort_field"|"invalid_selection_field"|"forbidden"|"unauthorisedrequest"|"internal_server_error"|"unknownobject"|"server_busy"|"invaliduuid"
                },
                {...},
                {...}
            ]
        }
    }
                        

5.3. "getCFAssociation" Request Payload

There is no payload for this request.

5.4. "getCFAssociation" Response Payloads

5.4.1. Response Payloads for the HTTP Codes (200)

An example of the response payload is shown in the code block below.

Code 5.4.1 - JSON payload example for "200" response messages for a "getCFAssociation" operation.
    {
        "identifier" : "..NormalizedString..",
        "associationType" : "isChildOf"|"isPeerOf"|"isPartOf"|"exactMatchOf"|"precedes"|"isRelatedTo"|"replacedBy"|"exemplar"|"hasSkillLevel",
        "sequenceNumber" : ..Number(Integer)..,
        "uri" : "..URI..",
        "originNodeURI" : {
            "title" : "..NormalizedString..",
            "identifier" : "..NormalizedString..",
            "uri" : "..URI.."
        },
        "destinationNodeURI" : {
            "title" : "..NormalizedString..",
            "identifier" : "..NormalizedString..",
            "uri" : "..URI.."
        },
        "CFAssociationGroupingURI" : {
            "title" : "..NormalizedString..",
            "identifier" : "..NormalizedString..",
            "uri" : "..URI.."
        },
        "lastChangeDateTime" : "..Date/Time..",
        "CFDocumentURI" : {
            "title" : "..NormalizedString..",
            "identifier" : "..NormalizedString..",
            "uri" : "..URI.."
        }
    }
                        

5.4.2. Response Payloads for the HTTP Codes (400, 401, 403, 404, 429, 500, default)

An example of the response payload is shown in the code block below.

Code 5.4.2 - JSON payload example for "400, 401, 403, 404, 429, 500, default" response messages for a "getCFAssociation" operation.
    {
        "imsx_codeMajor" : "success"|"processing"|"failure"|"unsupported",
        "imsx_severity" : "status"|"warning"|"error",
        "imsx_description" : "..String..",
        "imsx_codeMinor" : {
            "imsx_codeMinorField" : [
                {
                    "imsx_codeMinorFieldName" : "..NormalizedString..",
                    "imsx_codeMinorFieldValue" : "fullsuccess"|"invalid_sort_field"|"invalid_selection_field"|"forbidden"|"unauthorisedrequest"|"internal_server_error"|"unknownobject"|"server_busy"|"invaliduuid"
                },
                {...},
                {...}
            ]
        }
    }
                        

5.5. "getCFAssociationGrouping" Request Payload

There is no payload for this request.

5.6. "getCFAssociationGrouping" Response Payloads

5.6.1. Response Payloads for the HTTP Codes (200)

An example of the response payload is shown in the code block below.

Code 5.6.1 - JSON payload example for "200" response messages for a "getCFAssociationGrouping" operation.
    {
        "identifier" : "..NormalizedString..",
        "uri" : "..URI..",
        "title" : "..NormalizedString..",
        "description" : "..String..",
        "lastChangeDateTime" : "..Date/Time.."
    }
                        

5.6.2. Response Payloads for the HTTP Codes (400, 401, 403, 404, 429, 500, default)

An example of the response payload is shown in the code block below.

Code 5.6.2 - JSON payload example for "400, 401, 403, 404, 429, 500, default" response messages for a "getCFAssociationGrouping" operation.
    {
        "imsx_codeMajor" : "success"|"processing"|"failure"|"unsupported",
        "imsx_severity" : "status"|"warning"|"error",
        "imsx_description" : "..String..",
        "imsx_codeMinor" : {
            "imsx_codeMinorField" : [
                {
                    "imsx_codeMinorFieldName" : "..NormalizedString..",
                    "imsx_codeMinorFieldValue" : "fullsuccess"|"invalid_sort_field"|"invalid_selection_field"|"forbidden"|"unauthorisedrequest"|"internal_server_error"|"unknownobject"|"server_busy"|"invaliduuid"
                },
                {...},
                {...}
            ]
        }
    }
                        

5.7. "getCFConcept" Request Payload

There is no payload for this request.

5.8. "getCFConcept" Response Payloads

5.8.1. Response Payloads for the HTTP Codes (200)

An example of the response payload is shown in the code block below.

Code 5.8.1 - JSON payload example for "200" response messages for a "getCFConcept" operation.
    {
        "CFConcepts" : [
            {
                "identifier" : "..NormalizedString..",
                "uri" : "..URI..",
                "title" : "..NormalizedString..",
                "keywords" : "..NormalizedString..",
                "hierarchyCode" : "..NormalizedString..",
                "description" : "..String..",
                "lastChangeDateTime" : "..Date/Time.."
            },
            {...},
            {...}
        ]
    }
                        

5.8.2. Response Payloads for the HTTP Codes (400, 401, 403, 404, 429, 500, default)

An example of the response payload is shown in the code block below.

Code 5.8.2 - JSON payload example for "400, 401, 403, 404, 429, 500, default" response messages for a "getCFConcept" operation.
    {
        "imsx_codeMajor" : "success"|"processing"|"failure"|"unsupported",
        "imsx_severity" : "status"|"warning"|"error",
        "imsx_description" : "..String..",
        "imsx_codeMinor" : {
            "imsx_codeMinorField" : [
                {
                    "imsx_codeMinorFieldName" : "..NormalizedString..",
                    "imsx_codeMinorFieldValue" : "fullsuccess"|"invalid_sort_field"|"invalid_selection_field"|"forbidden"|"unauthorisedrequest"|"internal_server_error"|"unknownobject"|"server_busy"|"invaliduuid"
                },
                {...},
                {...}
            ]
        }
    }
                        

5.9. "getCFDocument" Request Payload

There is no payload for this request.

5.10. "getCFDocument" Response Payloads

5.10.1. Response Payloads for the HTTP Codes (200)

An example of the response payload is shown in the code block below.

Code 5.10.1 - JSON payload example for "200" response messages for a "getCFDocument" operation.
    {
        "identifier" : "..NormalizedString..",
        "uri" : "..URI..",
        "creator" : "..NormalizedString..",
        "title" : "..NormalizedString..",
        "lastChangeDateTime" : "..Date/Time..",
        "officialSourceURL" : "..URI..",
        "publisher" : "..NormalizedString..",
        "description" : "..NormalizedString..",
        "subject" : [ "..NormalizedString..", ..., "..NormalizedString.." ],
        "subjectURI" : [
            {
                "title" : "..NormalizedString..",
                "identifier" : "..NormalizedString..",
                "uri" : "..URI.."
            },
            {...},
            {...}
        ],
        "language" : "..String(Language Code)..",
        "version" : "..NormalizedString..",
        "adoptionStatus" : "..NormalizedString..",
        "statusStartDate" : "..String(Date)..",
        "statusEndDate" : "..String(Date)..",
        "licenseURI" : {
            "title" : "..NormalizedString..",
            "identifier" : "..NormalizedString..",
            "uri" : "..URI.."
        },
        "notes" : "..String..",
        "CFPackageURI" : {
            "title" : "..NormalizedString..",
            "identifier" : "..NormalizedString..",
            "uri" : "..URI.."
        }
    }
                        

5.10.2. Response Payloads for the HTTP Codes (400, 401, 403, 404, 429, 500, default)

An example of the response payload is shown in the code block below.

Code 5.10.2 - JSON payload example for "400, 401, 403, 404, 429, 500, default" response messages for a "getCFDocument" operation.
    {
        "imsx_codeMajor" : "success"|"processing"|"failure"|"unsupported",
        "imsx_severity" : "status"|"warning"|"error",
        "imsx_description" : "..String..",
        "imsx_codeMinor" : {
            "imsx_codeMinorField" : [
                {
                    "imsx_codeMinorFieldName" : "..NormalizedString..",
                    "imsx_codeMinorFieldValue" : "fullsuccess"|"invalid_sort_field"|"invalid_selection_field"|"forbidden"|"unauthorisedrequest"|"internal_server_error"|"unknownobject"|"server_busy"|"invaliduuid"
                },
                {...},
                {...}
            ]
        }
    }
                        

5.11. "getCFItem" Request Payload

There is no payload for this request.

5.12. "getCFItem" Response Payloads

5.12.1. Response Payloads for the HTTP Codes (200)

An example of the response payload is shown in the code block below.

Code 5.12.1 - JSON payload example for "200" response messages for a "getCFItem" operation.
    {
        "identifier" : "..NormalizedString..",
        "fullStatement" : "..NormalizedString..",
        "alternativeLabel" : "..NormalizedString..",
        "CFItemType" : "..NormalizedString..",
        "uri" : "..URI..",
        "humanCodingScheme" : "..NormalizedString..",
        "listEnumeration" : "..NormalizedString..",
        "abbreviatedStatement" : "..NormalizedString..",
        "conceptKeywords" : [ "..NormalizedString..", ..., "..NormalizedString.." ],
        "conceptKeywordsURI" : {
            "title" : "..NormalizedString..",
            "identifier" : "..NormalizedString..",
            "uri" : "..URI.."
        },
        "notes" : "..String..",
        "language" : "..String(Language Code)..",
        "educationLevel" : [ "..NormalizedString..", ..., "..NormalizedString.." ],
        "CFItemTypeURI" : {
            "title" : "..NormalizedString..",
            "identifier" : "..NormalizedString..",
            "uri" : "..URI.."
        },
        "licenseURI" : {
            "title" : "..NormalizedString..",
            "identifier" : "..NormalizedString..",
            "uri" : "..URI.."
        },
        "statusStartDate" : "..String(Date)..",
        "statusEndDate" : "..String(Date)..",
        "lastChangeDateTime" : "..Date/Time..",
        "CFDocumentURI" : {
            "title" : "..NormalizedString..",
            "identifier" : "..NormalizedString..",
            "uri" : "..URI.."
        }
    }
                        

5.12.2. Response Payloads for the HTTP Codes (400, 401, 403, 404, 429, 500, default)

An example of the response payload is shown in the code block below.

Code 5.12.2 - JSON payload example for "400, 401, 403, 404, 429, 500, default" response messages for a "getCFItem" operation.
    {
        "imsx_codeMajor" : "success"|"processing"|"failure"|"unsupported",
        "imsx_severity" : "status"|"warning"|"error",
        "imsx_description" : "..String..",
        "imsx_codeMinor" : {
            "imsx_codeMinorField" : [
                {
                    "imsx_codeMinorFieldName" : "..NormalizedString..",
                    "imsx_codeMinorFieldValue" : "fullsuccess"|"invalid_sort_field"|"invalid_selection_field"|"forbidden"|"unauthorisedrequest"|"internal_server_error"|"unknownobject"|"server_busy"|"invaliduuid"
                },
                {...},
                {...}
            ]
        }
    }
                        

5.13. "getCFItemAssociations" Request Payload

There is no payload for this request.

5.14. "getCFItemAssociations" Response Payloads

5.14.1. Response Payloads for the HTTP Codes (200)

An example of the response payload is shown in the code block below.

Code 5.14.1 - JSON payload example for "200" response messages for a "getCFItemAssociations" operation.
    {
        "CFItem" : {
            "identifier" : "..NormalizedString..",
            "fullStatement" : "..NormalizedString..",
            "alternativeLabel" : "..NormalizedString..",
            "CFItemType" : "..NormalizedString..",
            "uri" : "..URI..",
            "humanCodingScheme" : "..NormalizedString..",
            "listEnumeration" : "..NormalizedString..",
            "abbreviatedStatement" : "..NormalizedString..",
            "conceptKeywords" : [ "..NormalizedString..", ..., "..NormalizedString.." ],
            "conceptKeywordsURI" : {
                "title" : "..NormalizedString..",
                "identifier" : "..NormalizedString..",
                "uri" : "..URI.."
            },
            "notes" : "..String..",
            "language" : "..String(Language Code)..",
            "educationLevel" : [ "..NormalizedString..", ..., "..NormalizedString.." ],
            "CFItemTypeURI" : {
                "title" : "..NormalizedString..",
                "identifier" : "..NormalizedString..",
                "uri" : "..URI.."
            },
            "licenseURI" : {
                "title" : "..NormalizedString..",
                "identifier" : "..NormalizedString..",
                "uri" : "..URI.."
            },
            "statusStartDate" : "..String(Date)..",
            "statusEndDate" : "..String(Date)..",
            "lastChangeDateTime" : "..Date/Time..",
            "CFDocumentURI" : {
                "title" : "..NormalizedString..",
                "identifier" : "..NormalizedString..",
                "uri" : "..URI.."
            }
        },
        "CFAssociations" : [
            {
                "identifier" : "..NormalizedString..",
                "associationType" : "isChildOf"|"isPeerOf"|"isPartOf"|"exactMatchOf"|"precedes"|"isRelatedTo"|"replacedBy"|"exemplar"|"hasSkillLevel",
                "sequenceNumber" : ..Number(Integer)..,
                "uri" : "..URI..",
                "originNodeURI" : {
                    "title" : "..NormalizedString..",
                    "identifier" : "..NormalizedString..",
                    "uri" : "..URI.."
                },
                "destinationNodeURI" : {
                    "title" : "..NormalizedString..",
                    "identifier" : "..NormalizedString..",
                    "uri" : "..URI.."
                },
                "CFAssociationGroupingURI" : {
                    "title" : "..NormalizedString..",
                    "identifier" : "..NormalizedString..",
                    "uri" : "..URI.."
                },
                "lastChangeDateTime" : "..Date/Time.."
            },
            {...},
            {...}
        ]
    }
                        

5.14.2. Response Payloads for the HTTP Codes (400, 401, 403, 404, 429, 500, default)

An example of the response payload is shown in the code block below.

Code 5.14.2 - JSON payload example for "400, 401, 403, 404, 429, 500, default" response messages for a "getCFItemAssociations" operation.
    {
        "imsx_codeMajor" : "success"|"processing"|"failure"|"unsupported",
        "imsx_severity" : "status"|"warning"|"error",
        "imsx_description" : "..String..",
        "imsx_codeMinor" : {
            "imsx_codeMinorField" : [
                {
                    "imsx_codeMinorFieldName" : "..NormalizedString..",
                    "imsx_codeMinorFieldValue" : "fullsuccess"|"invalid_sort_field"|"invalid_selection_field"|"forbidden"|"unauthorisedrequest"|"internal_server_error"|"unknownobject"|"server_busy"|"invaliduuid"
                },
                {...},
                {...}
            ]
        }
    }
                        

5.15. "getCFItemType" Request Payload

There is no payload for this request.

5.16. "getCFItemType" Response Payloads

5.16.1. Response Payloads for the HTTP Codes (200)

An example of the response payload is shown in the code block below.

Code 5.16.1 - JSON payload example for "200" response messages for a "getCFItemType" operation.
    {
        "CFItemTypes" : [
            {
                "identifier" : "..NormalizedString..",
                "uri" : "..URI..",
                "title" : "..NormalizedString..",
                "description" : "..String..",
                "hierarchyCode" : "..NormalizedString..",
                "typeCode" : "..NormalizedString..",
                "lastChangeDateTime" : "..Date/Time.."
            },
            {...},
            {...}
        ]
    }
                        

5.16.2. Response Payloads for the HTTP Codes (400, 401, 403, 404, 429, 500, default)

An example of the response payload is shown in the code block below.

Code 5.16.2 - JSON payload example for "400, 401, 403, 404, 429, 500, default" response messages for a "getCFItemType" operation.
    {
        "imsx_codeMajor" : "success"|"processing"|"failure"|"unsupported",
        "imsx_severity" : "status"|"warning"|"error",
        "imsx_description" : "..String..",
        "imsx_codeMinor" : {
            "imsx_codeMinorField" : [
                {
                    "imsx_codeMinorFieldName" : "..NormalizedString..",
                    "imsx_codeMinorFieldValue" : "fullsuccess"|"invalid_sort_field"|"invalid_selection_field"|"forbidden"|"unauthorisedrequest"|"internal_server_error"|"unknownobject"|"server_busy"|"invaliduuid"
                },
                {...},
                {...}
            ]
        }
    }
                        

5.17. "getCFLicense" Request Payload

There is no payload for this request.

5.18. "getCFLicense" Response Payloads

5.18.1. Response Payloads for the HTTP Codes (200)

An example of the response payload is shown in the code block below.

Code 5.18.1 - JSON payload example for "200" response messages for a "getCFLicense" operation.
    {
        "identifier" : "..NormalizedString..",
        "uri" : "..URI..",
        "title" : "..NormalizedString..",
        "description" : "..String..",
        "licenseText" : "..String..",
        "lastChangeDateTime" : "..Date/Time.."
    }
                        

5.18.2. Response Payloads for the HTTP Codes (400, 401, 403, 404, 429, 500, default)

An example of the response payload is shown in the code block below.

Code 5.18.2 - JSON payload example for "400, 401, 403, 404, 429, 500, default" response messages for a "getCFLicense" operation.
    {
        "imsx_codeMajor" : "success"|"processing"|"failure"|"unsupported",
        "imsx_severity" : "status"|"warning"|"error",
        "imsx_description" : "..String..",
        "imsx_codeMinor" : {
            "imsx_codeMinorField" : [
                {
                    "imsx_codeMinorFieldName" : "..NormalizedString..",
                    "imsx_codeMinorFieldValue" : "fullsuccess"|"invalid_sort_field"|"invalid_selection_field"|"forbidden"|"unauthorisedrequest"|"internal_server_error"|"unknownobject"|"server_busy"|"invaliduuid"
                },
                {...},
                {...}
            ]
        }
    }
                        

5.19. "getCFPackage" Request Payload

There is no payload for this request.

5.20. "getCFPackage" Response Payloads

5.20.1. Response Payloads for the HTTP Codes (200)

An example of the response payload is shown in the code block below.

Code 5.20.1 - JSON payload example for "200" response messages for a "getCFPackage" operation.
    {
        "CFDocument" : {
            "identifier" : "..NormalizedString..",
            "uri" : "..URI..",
            "creator" : "..NormalizedString..",
            "title" : "..NormalizedString..",
            "lastChangeDateTime" : "..Date/Time..",
            "officialSourceURL" : "..URI..",
            "publisher" : "..NormalizedString..",
            "description" : "..NormalizedString..",
            "subject" : [ "..NormalizedString..", ..., "..NormalizedString.." ],
            "subjectURI" : [
                {
                    "title" : "..NormalizedString..",
                    "identifier" : "..NormalizedString..",
                    "uri" : "..URI.."
                },
                {...},
                {...}
            ],
            "language" : "..String(Language Code)..",
            "version" : "..NormalizedString..",
            "adoptionStatus" : "..NormalizedString..",
            "statusStartDate" : "..String(Date)..",
            "statusEndDate" : "..String(Date)..",
            "licenseURI" : {
                "title" : "..NormalizedString..",
                "identifier" : "..NormalizedString..",
                "uri" : "..URI.."
            },
            "notes" : "..String.."
        },
        "CFItems" : [
            {
                "identifier" : "..NormalizedString..",
                "fullStatement" : "..NormalizedString..",
                "alternativeLabel" : "..NormalizedString..",
                "CFItemType" : "..NormalizedString..",
                "uri" : "..URI..",
                "humanCodingScheme" : "..NormalizedString..",
                "listEnumeration" : "..NormalizedString..",
                "abbreviatedStatement" : "..NormalizedString..",
                "conceptKeywords" : [ "..NormalizedString..", ..., "..NormalizedString.." ],
                "conceptKeywordsURI" : {
                    "title" : "..NormalizedString..",
                    "identifier" : "..NormalizedString..",
                    "uri" : "..URI.."
                },
                "notes" : "..String..",
                "language" : "..String(Language Code)..",
                "educationLevel" : [ "..NormalizedString..", ..., "..NormalizedString.." ],
                "CFItemTypeURI" : {
                    "title" : "..NormalizedString..",
                    "identifier" : "..NormalizedString..",
                    "uri" : "..URI.."
                },
                "licenseURI" : {
                    "title" : "..NormalizedString..",
                    "identifier" : "..NormalizedString..",
                    "uri" : "..URI.."
                },
                "statusStartDate" : "..String(Date)..",
                "statusEndDate" : "..String(Date)..",
                "lastChangeDateTime" : "..Date/Time.."
            },
            {...},
            {...}
        ],
        "CFAssociations" : [
            {
                "identifier" : "..NormalizedString..",
                "associationType" : "isChildOf"|"isPeerOf"|"isPartOf"|"exactMatchOf"|"precedes"|"isRelatedTo"|"replacedBy"|"exemplar"|"hasSkillLevel",
                "sequenceNumber" : ..Number(Integer)..,
                "uri" : "..URI..",
                "originNodeURI" : {
                    "title" : "..NormalizedString..",
                    "identifier" : "..NormalizedString..",
                    "uri" : "..URI.."
                },
                "destinationNodeURI" : {
                    "title" : "..NormalizedString..",
                    "identifier" : "..NormalizedString..",
                    "uri" : "..URI.."
                },
                "CFAssociationGroupingURI" : {
                    "title" : "..NormalizedString..",
                    "identifier" : "..NormalizedString..",
                    "uri" : "..URI.."
                },
                "lastChangeDateTime" : "..Date/Time.."
            },
            {...},
            {...}
        ],
        "CFDefinitions" : {
            "CFConcepts" : [
                {
                    "identifier" : "..NormalizedString..",
                    "uri" : "..URI..",
                    "title" : "..NormalizedString..",
                    "keywords" : "..NormalizedString..",
                    "hierarchyCode" : "..NormalizedString..",
                    "description" : "..String..",
                    "lastChangeDateTime" : "..Date/Time.."
                },
                {...},
                {...}
            ],
            "CFSubjects" : [
                {
                    "identifier" : "..NormalizedString..",
                    "uri" : "..URI..",
                    "title" : "..NormalizedString..",
                    "hierarchyCode" : "..NormalizedString..",
                    "description" : "..String..",
                    "lastChangeDateTime" : "..Date/Time.."
                },
                {...},
                {...}
            ],
            "CFLicenses" : [
                {
                    "identifier" : "..NormalizedString..",
                    "uri" : "..URI..",
                    "title" : "..NormalizedString..",
                    "description" : "..String..",
                    "licenseText" : "..String..",
                    "lastChangeDateTime" : "..Date/Time.."
                },
                {...},
                {...}
            ],
            "CFItemTypes" : [
                {
                    "identifier" : "..NormalizedString..",
                    "uri" : "..URI..",
                    "title" : "..NormalizedString..",
                    "description" : "..String..",
                    "hierarchyCode" : "..NormalizedString..",
                    "typeCode" : "..NormalizedString..",
                    "lastChangeDateTime" : "..Date/Time.."
                },
                {...},
                {...}
            ],
            "CFAssociationGroupings" : [
                {
                    "identifier" : "..NormalizedString..",
                    "uri" : "..URI..",
                    "title" : "..NormalizedString..",
                    "description" : "..String..",
                    "lastChangeDateTime" : "..Date/Time.."
                },
                {...},
                {...}
            ]
        },
        "CFRubrics" : [
            {
                "identifier" : "..NormalizedString..",
                "uri" : "..URI..",
                "title" : "..NormalizedString..",
                "description" : "..NormalizedString..",
                "lastChangeDateTime" : "..Date/Time..",
                "CFRubricCriteria" : [
                    {
                        "identifier" : "..NormalizedString..",
                        "uri" : "..URI..",
                        "category" : "..NormalizedString..",
                        "description" : "..String..",
                        "CFItemURI" : {
                            "title" : "..NormalizedString..",
                            "identifier" : "..NormalizedString..",
                            "uri" : "..URI.."
                        },
                        "weight" : ..Number(Float)..,
                        "position" : ..Number(Integer)..,
                        "rubricId" : "..NormalizedString..",
                        "lastChangeDateTime" : "..Date/Time..",
                        "CFRubricCriterionLevels" : [
                            {
                                "identifier" : "..NormalizedString..",
                                "uri" : "..URI..",
                                "description" : "..String..",
                                "quality" : "..NormalizedString..",
                                "score" : ..Number(Float)..,
                                "feedback" : "..String..",
                                "position" : ..Number(Integer)..,
                                "rubricCriterionId" : "..NormalizedString..",
                                "lastChangeDateTime" : "..Date/Time.."
                            },
                            {...},
                            {...}
                        ]
                    },
                    {...},
                    {...}
                ]
            },
            {...},
            {...}
        ]
    }
                        

5.20.2. Response Payloads for the HTTP Codes (400, 401, 403, 404, 429, 500, default)

An example of the response payload is shown in the code block below.

Code 5.20.2 - JSON payload example for "400, 401, 403, 404, 429, 500, default" response messages for a "getCFPackage" operation.
    {
        "imsx_codeMajor" : "success"|"processing"|"failure"|"unsupported",
        "imsx_severity" : "status"|"warning"|"error",
        "imsx_description" : "..String..",
        "imsx_codeMinor" : {
            "imsx_codeMinorField" : [
                {
                    "imsx_codeMinorFieldName" : "..NormalizedString..",
                    "imsx_codeMinorFieldValue" : "fullsuccess"|"invalid_sort_field"|"invalid_selection_field"|"forbidden"|"unauthorisedrequest"|"internal_server_error"|"unknownobject"|"server_busy"|"invaliduuid"
                },
                {...},
                {...}
            ]
        }
    }
                        

5.21. "getCFRubric" Request Payload

There is no payload for this request.

5.22. "getCFRubric" Response Payloads

5.22.1. Response Payloads for the HTTP Codes (200)

An example of the response payload is shown in the code block below.

Code 5.22.1 - JSON payload example for "200" response messages for a "getCFRubric" operation.
    {
        "identifier" : "..NormalizedString..",
        "uri" : "..URI..",
        "title" : "..NormalizedString..",
        "description" : "..NormalizedString..",
        "lastChangeDateTime" : "..Date/Time..",
        "CFRubricCriteria" : [
            {
                "identifier" : "..NormalizedString..",
                "uri" : "..URI..",
                "category" : "..NormalizedString..",
                "description" : "..String..",
                "CFItemURI" : {
                    "title" : "..NormalizedString..",
                    "identifier" : "..NormalizedString..",
                    "uri" : "..URI.."
                },
                "weight" : ..Number(Float)..,
                "position" : ..Number(Integer)..,
                "rubricId" : "..NormalizedString..",
                "lastChangeDateTime" : "..Date/Time..",
                "CFRubricCriterionLevels" : [
                    {
                        "identifier" : "..NormalizedString..",
                        "uri" : "..URI..",
                        "description" : "..String..",
                        "quality" : "..NormalizedString..",
                        "score" : ..Number(Float)..,
                        "feedback" : "..String..",
                        "position" : ..Number(Integer)..,
                        "rubricCriterionId" : "..NormalizedString..",
                        "lastChangeDateTime" : "..Date/Time.."
                    },
                    {...},
                    {...}
                ]
            },
            {...},
            {...}
        ]
    }
                        

5.22.2. Response Payloads for the HTTP Codes (400, 401, 403, 404, 429, 500, default)

An example of the response payload is shown in the code block below.

Code 5.22.2 - JSON payload example for "400, 401, 403, 404, 429, 500, default" response messages for a "getCFRubric" operation.
    {
        "imsx_codeMajor" : "success"|"processing"|"failure"|"unsupported",
        "imsx_severity" : "status"|"warning"|"error",
        "imsx_description" : "..String..",
        "imsx_codeMinor" : {
            "imsx_codeMinorField" : [
                {
                    "imsx_codeMinorFieldName" : "..NormalizedString..",
                    "imsx_codeMinorFieldValue" : "fullsuccess"|"invalid_sort_field"|"invalid_selection_field"|"forbidden"|"unauthorisedrequest"|"internal_server_error"|"unknownobject"|"server_busy"|"invaliduuid"
                },
                {...},
                {...}
            ]
        }
    }
                        

5.23. "getCFSubject" Request Payload

There is no payload for this request.

5.24. "getCFSubject" Response Payloads

5.24.1. Response Payloads for the HTTP Codes (200)

An example of the response payload is shown in the code block below.

Code 5.24.1 - JSON payload example for "200" response messages for a "getCFSubject" operation.
    {
        "CFSubjects" : [
            {
                "identifier" : "..NormalizedString..",
                "uri" : "..URI..",
                "title" : "..NormalizedString..",
                "hierarchyCode" : "..NormalizedString..",
                "description" : "..String..",
                "lastChangeDateTime" : "..Date/Time.."
            },
            {...},
            {...}
        ]
    }
                        

5.24.2. Response Payloads for the HTTP Codes (400, 401, 403, 404, 429, 500, default)

An example of the response payload is shown in the code block below.

Code 5.24.2 - JSON payload example for "400, 401, 403, 404, 429, 500, default" response messages for a "getCFSubject" operation.
    {
        "imsx_codeMajor" : "success"|"processing"|"failure"|"unsupported",
        "imsx_severity" : "status"|"warning"|"error",
        "imsx_description" : "..String..",
        "imsx_codeMinor" : {
            "imsx_codeMinorField" : [
                {
                    "imsx_codeMinorFieldName" : "..NormalizedString..",
                    "imsx_codeMinorFieldValue" : "fullsuccess"|"invalid_sort_field"|"invalid_selection_field"|"forbidden"|"unauthorisedrequest"|"internal_server_error"|"unknownobject"|"server_busy"|"invaliduuid"
                },
                {...},
                {...}
            ]
        }
    }
                        

toc | top

6. Service OpenAPI Description

6.1. General Information

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.

Table 6.1 - The Set of General Information Defined in the OpenAPI Description.
Swagger Version 2.0
Specification Title Competencies and Academic Standards Exchange (CASE) Service
Specification Version 1.0
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.
Terms of Service 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 Lisa Mattson (COO), IMS Global (http://www.imsglobal.org). Email: lmattson@imsglobal.org.
License IMS Global - https://www.imsglobal.org/license.html
Host www.imsglobal.org
Base Path /ims/case/v1p0
Schemes http, https
Consumes application/json
Produces application/json

6.2. Tags Information

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.

Table 6.2 - The Set of Tags Defined in the OpenAPI Description.
Tag Name Description
AssociationsManager 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.The set of endpoints assigned to this tag are:
DefinitionsManager 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.The set of endpoints assigned to this tag are:
DocumentsManager 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.The set of endpoints assigned to this tag are:
ItemsManager 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.The set of endpoints assigned to this tag are:
PackagesManager 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.The set of endpoints assigned to this tag are:
RubricsManager 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).The set of endpoints assigned to this tag are:

6.3. Security Information

There is no security approach defined for this specification and so there are no Security Mode features included in the OpenAPI definition.

6.4. Paths Information

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.

6.4.1 "/CFAssociationGroupings/{sourcedId}" Path

The following Table describes the OpenAPI information for the HTTP Verb "GET" on the "/CFAssociationGroupings/{sourcedId}" Path.

Table 6.4.1 - The Set of HTTP Verbs Permitted 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
  • sourcedId - The UUID that identifies the Competency Framework AssociationGrouping that is to be read from the service provider.
Query Parameters Query parameters are not permitted.
Responses
Name Type Description
200 CFAssociationGrouping.Type This is the response when the request has been completed successfully. It is the CFAssociationGrouping from the service provider.
400 imsx_StatusInfo.Type 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'.
401 imsx_StatusInfo.Type The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfo.Type 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'.
404 imsx_StatusInfo.Type 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.
429 imsx_StatusInfo.Type 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'.
500 imsx_StatusInfo.Type 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'.
default imsx_StatusInfo.Type 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.

6.4.2 "/CFAssociations/{sourcedId}" Path

The following Table describes the OpenAPI information for the HTTP Verb "GET" on the "/CFAssociations/{sourcedId}" Path.

Table 6.4.2 - The Set of HTTP Verbs Permitted 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
  • sourcedId - The UUID that identifies the CFAssociation to be supplied.
Query Parameters Query parameters are not permitted.
Responses
Name Type Description
200 CFAssociation.Type This is the response when the request has been completed successfully. It is the CFAssociation from the service provider.
400 imsx_StatusInfo.Type 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'.
401 imsx_StatusInfo.Type The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfo.Type 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'.
404 imsx_StatusInfo.Type 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.
429 imsx_StatusInfo.Type 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'.
500 imsx_StatusInfo.Type 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'.
default imsx_StatusInfo.Type 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.

6.4.3 "/CFConcepts/{sourcedId}" Path

The following Table describes the OpenAPI information for the HTTP Verb "GET" on the "/CFConcepts/{sourcedId}" Path.

Table 6.4.3 - The Set of HTTP Verbs Permitted 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
  • sourcedId - The UUID that identifies the Competency Framework Concept that is to be read from the service provider.
Query Parameters Query parameters are not permitted.
Responses
Name Type Description
200 CFConceptSet.Type This is the response when the request has been completed successfully. It is the CFConcept and child CFSConcepts from the service provider.
400 imsx_StatusInfo.Type 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'.
401 imsx_StatusInfo.Type The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfo.Type 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'.
404 imsx_StatusInfo.Type 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.
429 imsx_StatusInfo.Type 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'.
500 imsx_StatusInfo.Type 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'.
default imsx_StatusInfo.Type 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.

6.4.4 "/CFDocuments" Path

The following Table describes the OpenAPI information for the HTTP Verb "GET" on the "/CFDocuments" Path.

Table 6.4.4 - The Set of HTTP Verbs Permitted 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
Name Type Multiplicity Default
limit Positive Integer [0..1] 100
offset Non-negative Integer [0..1] 0
sort String [0..1] -
orderBy [ Enumeration ] [0..1] -
filter String [0..1] -
fields String [0..*] -
Responses
Name Type Description
200 CFDocumentSet.Type This is the response when the request has been completed successfully. It is the set of CFDocuments from the service provider.
400 imsx_StatusInfo.Type 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'.
401 imsx_StatusInfo.Type The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfo.Type 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'.
404 imsx_StatusInfo.Type 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.
429 imsx_StatusInfo.Type 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'.
500 imsx_StatusInfo.Type 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'.
default imsx_StatusInfo.Type 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.

6.4.5 "/CFDocuments/{sourcedId}" Path

The following Table describes the OpenAPI information for the HTTP Verb "GET" on the "/CFDocuments/{sourcedId}" Path.

Table 6.4.5 - The Set of HTTP Verbs Permitted 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
  • sourcedId - The UUID that identifies the Competency Framework Document that is to be read from the service provider.
Query Parameters Query parameters are not permitted.
Responses
Name Type Description
200 CFDocument.Type This is the response when the request has been completed successfully. It is the CFDocument from the service provider.
400 imsx_StatusInfo.Type 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'.
401 imsx_StatusInfo.Type The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfo.Type 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'.
404 imsx_StatusInfo.Type 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.
429 imsx_StatusInfo.Type 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'.
500 imsx_StatusInfo.Type 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'.
default imsx_StatusInfo.Type 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.

6.4.6 "/CFItemAssociations/{sourcedId}" Path

The following Table describes the OpenAPI information for the HTTP Verb "GET" on the "/CFItemAssociations/{sourcedId}" Path.

Table 6.4.6 - The Set of HTTP Verbs Permitted 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
  • sourcedId - The UUID that identifies the CFItem for which ALL associations are to be supplied.
Query Parameters Query parameters are not permitted.
Responses
Name Type Description
200 CFAssociationSet.Type This is the response when the request has been completed successfully. It is the CFItem and set of CFAssociations from the service provider.
400 imsx_StatusInfo.Type 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'.
401 imsx_StatusInfo.Type The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfo.Type 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'.
404 imsx_StatusInfo.Type 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.
429 imsx_StatusInfo.Type 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'.
500 imsx_StatusInfo.Type 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'.
default imsx_StatusInfo.Type 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.

6.4.7 "/CFItemTypes/{sourcedId}" Path

The following Table describes the OpenAPI information for the HTTP Verb "GET" on the "/CFItemTypes/{sourcedId}" Path.

Table 6.4.7 - The Set of HTTP Verbs Permitted 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
  • sourcedId - The UUID that identifies the Competency Framework ItemType that is to be read from the service provider.
Query Parameters Query parameters are not permitted.
Responses
Name Type Description
200 CFItemTypeSet.Type This is the response when the request has been completed successfully. It is the CFItemType and child CFItemTypes from the service provider.
400 imsx_StatusInfo.Type 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'.
401 imsx_StatusInfo.Type The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfo.Type 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'.
404 imsx_StatusInfo.Type 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.
429 imsx_StatusInfo.Type 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'.
500 imsx_StatusInfo.Type 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'.
default imsx_StatusInfo.Type 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.

6.4.8 "/CFItems/{sourcedId}" Path

The following Table describes the OpenAPI information for the HTTP Verb "GET" on the "/CFItems/{sourcedId}" Path.

Table 6.4.8 - The Set of HTTP Verbs Permitted 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
  • sourcedId - The UUID that identifies the Competency Framework Item that is to be read from the service provider.
Query Parameters Query parameters are not permitted.
Responses
Name Type Description
200 CFItem.Type This is the response when the request has been completed successfully. It is the CFItem from the service provider.
400 imsx_StatusInfo.Type 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'.
401 imsx_StatusInfo.Type The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfo.Type 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'.
404 imsx_StatusInfo.Type 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.
429 imsx_StatusInfo.Type 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'.
500 imsx_StatusInfo.Type 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'.
default imsx_StatusInfo.Type 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.

6.4.9 "/CFLicenses/{sourcedId}" Path

The following Table describes the OpenAPI information for the HTTP Verb "GET" on the "/CFLicenses/{sourcedId}" Path.

Table 6.4.9 - The Set of HTTP Verbs Permitted 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
  • sourcedId - The UUID that identifies the Competency Framework License that is to be read from the service provider.
Query Parameters Query parameters are not permitted.
Responses
Name Type Description
200 CFLicense.Type This is the response when the request has been completed successfully. It is the CFLicense from the service provider.
400 imsx_StatusInfo.Type 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'.
401 imsx_StatusInfo.Type The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfo.Type 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'.
404 imsx_StatusInfo.Type 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.
429 imsx_StatusInfo.Type 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'.
500 imsx_StatusInfo.Type 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'.
default imsx_StatusInfo.Type 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.

6.4.10 "/CFPackages/{sourcedId}" Path

The following Table describes the OpenAPI information for the HTTP Verb "GET" on the "/CFPackages/{sourcedId}" Path.

Table 6.4.10 - The Set of HTTP Verbs Permitted 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
  • sourcedId - 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.
Query Parameters Query parameters are not permitted.
Responses
Name Type Description
200 CFPackage.Type This is the response when the request has been completed successfully. It is the CFPackage from the service provider.
400 imsx_StatusInfo.Type 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'.
401 imsx_StatusInfo.Type The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfo.Type 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'.
404 imsx_StatusInfo.Type 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.
429 imsx_StatusInfo.Type 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'.
500 imsx_StatusInfo.Type 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'.
default imsx_StatusInfo.Type 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.

6.4.11 "/CFRubrics/{sourcedId}" Path

The following Table describes the OpenAPI information for the HTTP Verb "GET" on the "/CFRubrics/{sourcedId}" Path.

Table 6.4.11 - The Set of HTTP Verbs Permitted 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
  • sourcedId - The UUID that identifies the Competency Framework Rubric that is to be read from the service provider.
Query Parameters Query parameters are not permitted.
Responses
Name Type Description
200 CFRubric.Type This is the response when the request has been completed successfully. It is the CFRubric from the service provider.
400 imsx_StatusInfo.Type 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'.
401 imsx_StatusInfo.Type The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfo.Type 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'.
404 imsx_StatusInfo.Type 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.
429 imsx_StatusInfo.Type 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'.
500 imsx_StatusInfo.Type 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'.
default imsx_StatusInfo.Type 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.

6.4.12 "/CFSubjects/{sourcedId}" Path

The following Table describes the OpenAPI information for the HTTP Verb "GET" on the "/CFSubjects/{sourcedId}" Path.

Table 6.4.12 - The Set of HTTP Verbs Permitted 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
  • sourcedId - The UUID that identifies the Competency Framework Subject that is to be read from the service provider.
Query Parameters Query parameters are not permitted.
Responses
Name Type Description
200 CFSubjectSet.Type This is the response when the request has been completed successfully. It is the CFSubject and child CFSubjects from the service provider.
400 imsx_StatusInfo.Type 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'.
401 imsx_StatusInfo.Type The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfo.Type 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'.
404 imsx_StatusInfo.Type 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.
429 imsx_StatusInfo.Type 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'.
500 imsx_StatusInfo.Type 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'.
default imsx_StatusInfo.Type 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.

6.5. Definitions Information

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.

6.5.1 "CFAssociation.Type" Definition

The OpenAPI JSON Schema description for the "CFAssociation.Type" Complex Type is given in Table 6.5.1.

Table 6.5.1 - OpenAPI JSON Schema description for the "CFAssociation.Type" Complex Type.
Annotations 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.
Diagram To be supplied in a later release of this document
Model identifier{1..1} ! associationType{1..1} ! sequenceNumber{0..1} ! uri{1..1} ! originNodeURI{1..1} ! destinationNodeURI{1..1} ! CFAssociationGroupingURI{0..1} ! lastChangeDateTime{1..1} ! CFDocumentURI{0..1}
Source
    "CFAssociation.Type" : {
        "description" : "...",
        "type" : "object",
        "allOf" : [
            {
                "$ref" : "#/definitions/CFPckgAssociation.Type"
            },
            {
                "type" : "object",
                "properties" : {
                    "CFDocumentURI" : {
                        "$ref" : "#/definitions/LinkURI.Type"
                    }
                },
                "additionalProperties" : false
            }
        ]
    },
                        

6.5.2 "CFAssociationGrouping.Type" Definition

The OpenAPI JSON Schema description for the "CFAssociationGrouping.Type" Complex Type is given in Table 6.5.2.

Table 6.5.2 - OpenAPI JSON Schema description for the "CFAssociationGrouping.Type" Complex Type.
Annotations 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).
Diagram To be supplied in a later release of this document
Model identifier{1..1} ! uri{1..1} ! title{1..1} ! description{0..1} ! lastChangeDateTime{1..1}
Source
    "CFAssociationGrouping.Type" : {
        "description" : "...",
        "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
    },
                        

6.5.3 "CFAssociationSet.Type" Definition

The OpenAPI JSON Schema description for the "CFAssociationSet.Type" Complex Type is given in Table 6.5.3.

Table 6.5.3 - OpenAPI JSON Schema description for the "CFAssociationSet.Type" Complex Type.
Annotations 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.
Diagram To be supplied in a later release of this document
Model CFItem{1..1} ! CFAssociations{1..*}
Source
    "CFAssociationSet.Type" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "CFItem" : {
                "$ref" : "#/definitions/CFItem.Type"
            },
            "CFAssociations" : {
                "type" : "array",
                "minItems" : 1,
                "items" : {
                    "$ref" : "#/definitions/CFPckgAssociation.Type"
                }
            }
        },
        "required" : [ "CFItem","CFAssociations" ],
        "additionalProperties" : false
    },
                        

6.5.4 "CFConcept.Type" Definition

The OpenAPI JSON Schema description for the "CFConcept.Type" Complex Type is given in Table 6.5.4.

Table 6.5.4 - OpenAPI JSON Schema description for the "CFConcept.Type" Complex Type.
Annotations The container for the definition of a concept which is addressed by the competency framework.
Diagram To be supplied in a later release of this document
Model identifier{1..1} ! uri{1..1} ! title{1..1} ! keywords{0..1} ! hierarchyCode{1..1} ! description{0..1} ! lastChangeDateTime{1..1}
Source
    "CFConcept.Type" : {
        "description" : "...",
        "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
    },
                        

6.5.5 "CFConceptSet.Type" Definition

The OpenAPI JSON Schema description for the "CFConceptSet.Type" Complex Type is given in Table 6.5.5.

Table 6.5.5 - OpenAPI JSON Schema description for the "CFConceptSet.Type" Complex Type.
Annotations 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.
Diagram To be supplied in a later release of this document
Model CFConcepts{1..*}
Source
    "CFConceptSet.Type" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "CFConcepts" : {
                "type" : "array",
                "minItems" : 1,
                "items" : {
                    "$ref" : "#/definitions/CFConcept.Type"
                }
            }
        },
        "required" : [ "CFConcepts" ],
        "additionalProperties" : false
    },
                        

6.5.6 "CFDefinition.Type" Definition

The OpenAPI JSON Schema description for the "CFDefinition.Type" Complex Type is given in Table 6.5.6.

Table 6.5.6 - OpenAPI JSON Schema description for the "CFDefinition.Type" Complex Type.
Annotations The container for the set of definitions used for the competency framework i.e. the set of CFSubjects, CFConcepts, CFItemTypes, CFAssociationGroupings and CFLicenses.
Diagram To be supplied in a later release of this document
Model CFConcepts{0..*} ! CFSubjects{0..*} ! CFLicenses{0..*} ! CFItemTypes{0..*} ! CFAssociationGroupings{0..*}
Source
    "CFDefinition.Type" : {
        "description" : "...",
        "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
    },
                        

6.5.7 "CFDocument.Type" Definition

The OpenAPI JSON Schema description for the "CFDocument.Type" Complex Type is given in Table 6.5.7.

Table 6.5.7 - OpenAPI JSON Schema description for the "CFDocument.Type" Complex Type.
Annotations 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.
Diagram To be supplied in a later release of this document
Model identifier{1..1} ! uri{1..1} ! creator{1..1} ! title{1..1} ! lastChangeDateTime{1..1} ! officialSourceURL{0..1} ! publisher{0..1} ! description{0..1} ! subject{0..*} ! subjectURI{0..*} ! language{0..1} ! version{0..1} ! adoptionStatus{0..1} ! statusStartDate{0..1} ! statusEndDate{0..1} ! licenseURI{0..1} ! notes{0..1} ! CFPackageURI{1..1}
Source
    "CFDocument.Type" : {
        "description" : "...",
        "type" : "object",
        "allOf" : [
            {
                "$ref" : "#/definitions/CFPckgDocument.Type"
            },
            {
                "type" : "object",
                "properties" : {
                    "CFPackageURI" : {
                        "$ref" : "#/definitions/LinkURI.Type"
                    }
                },
                "required" : [ "CFPackageURI" ],
                "additionalProperties" : false
            }
        ]
    },
                        

6.5.8 "CFDocumentSet.Type" Definition

The OpenAPI JSON Schema description for the "CFDocumentSet.Type" Complex Type is given in Table 6.5.8.

Table 6.5.8 - OpenAPI JSON Schema description for the "CFDocumentSet.Type" Complex Type.
Annotations This is the container for a collection of CFDocuments. There must be at least one CFDocument.
Diagram To be supplied in a later release of this document
Model CFDocuments{1..*}
Source
    "CFDocumentSet.Type" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "CFDocuments" : {
                "type" : "array",
                "minItems" : 1,
                "items" : {
                    "$ref" : "#/definitions/CFDocument.Type"
                }
            }
        },
        "required" : [ "CFDocuments" ],
        "additionalProperties" : false
    },
                        

6.5.9 "CFItem.Type" Definition

The OpenAPI JSON Schema description for the "CFItem.Type" Complex Type is given in Table 6.5.9.

Table 6.5.9 - OpenAPI JSON Schema description for the "CFItem.Type" Complex Type.
Annotations 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.
Diagram To be supplied in a later release of this document
Model identifier{1..1} ! fullStatement{1..1} ! alternativeLabel{0..1} ! CFItemType{0..1} ! uri{1..1} ! humanCodingScheme{0..1} ! listEnumeration{0..1} ! abbreviatedStatement{0..1} ! conceptKeywords{0..*} ! conceptKeywordsURI{0..1} ! notes{0..1} ! language{0..1} ! educationLevel{0..*} ! CFItemTypeURI{0..1} ! licenseURI{0..1} ! statusStartDate{0..1} ! statusEndDate{0..1} ! lastChangeDateTime{1..1} ! CFDocumentURI{1..1}
Source
    "CFItem.Type" : {
        "description" : "...",
        "type" : "object",
        "allOf" : [
            {
                "$ref" : "#/definitions/CFPckgItem.Type"
            },
            {
                "type" : "object",
                "properties" : {
                    "CFDocumentURI" : {
                        "$ref" : "#/definitions/LinkURI.Type"
                    }
                },
                "required" : [ "CFDocumentURI" ],
                "additionalProperties" : false
            }
        ]
    },
                        

6.5.10 "CFItemType.Type" Definition

The OpenAPI JSON Schema description for the "CFItemType.Type" Complex Type is given in Table 6.5.10.

Table 6.5.10 - OpenAPI JSON Schema description for the "CFItemType.Type" Complex Type.
Annotations The container for the ItemType information use within the competency framework.
Diagram To be supplied in a later release of this document
Model identifier{1..1} ! uri{1..1} ! title{1..1} ! description{1..1} ! hierarchyCode{1..1} ! typeCode{0..1} ! lastChangeDateTime{1..1}
Source
    "CFItemType.Type" : {
        "description" : "...",
        "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
    },
                        

6.5.11 "CFItemTypeSet.Type" Definition

The OpenAPI JSON Schema description for the "CFItemTypeSet.Type" Complex Type is given in Table 6.5.11.

Table 6.5.11 - OpenAPI JSON Schema description for the "CFItemTypeSet.Type" Complex Type.
Annotations 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.
Diagram To be supplied in a later release of this document
Model CFItemTypes{1..*}
Source
    "CFItemTypeSet.Type" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "CFItemTypes" : {
                "type" : "array",
                "minItems" : 1,
                "items" : {
                    "$ref" : "#/definitions/CFItemType.Type"
                }
            }
        },
        "required" : [ "CFItemTypes" ],
        "additionalProperties" : false
    },
                        

6.5.12 "CFLicense.Type" Definition

The OpenAPI JSON Schema description for the "CFLicense.Type" Complex Type is given in Table 6.5.12.

Table 6.5.12 - OpenAPI JSON Schema description for the "CFLicense.Type" Complex Type.
Annotations The container for the information about a license used within the competency framework.
Diagram To be supplied in a later release of this document
Model identifier{1..1} ! uri{1..1} ! title{1..1} ! description{0..1} ! licenseText{1..1} ! lastChangeDateTime{1..1}
Source
    "CFLicense.Type" : {
        "description" : "...",
        "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
    },
                        

6.5.13 "CFPackage.Type" Definition

The OpenAPI JSON Schema description for the "CFPackage.Type" Complex Type is given in Table 6.5.13.

Table 6.5.13 - OpenAPI JSON Schema description for the "CFPackage.Type" Complex Type.
Annotations 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.
Diagram To be supplied in a later release of this document
Model CFDocument{1..1} ! CFItems{0..*} ! CFAssociations{0..*} ! CFDefinitions{0..1} ! CFRubrics{0..*}
Source
    "CFPackage.Type" : {
        "description" : "...",
        "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
    },
                        

6.5.14 "CFPckgAssociation.Type" Definition

The OpenAPI JSON Schema description for the "CFPckgAssociation.Type" Complex Type is given in Table 6.5.14.

Table 6.5.14 - OpenAPI JSON Schema description for the "CFPckgAssociation.Type" Complex Type.
Annotations This is the container for the data about the relationship between two CFDocuments or between two CFItems within the context of a CFPackage.
Diagram To be supplied in a later release of this document
Model identifier{1..1} ! associationType{1..1} ! sequenceNumber{0..1} ! uri{1..1} ! originNodeURI{1..1} ! destinationNodeURI{1..1} ! CFAssociationGroupingURI{0..1} ! lastChangeDateTime{1..1}
Source
    "CFPckgAssociation.Type" : {
        "description" : "...",
        "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
    },
                        

6.5.15 "CFPckgDocument.Type" Definition

The OpenAPI JSON Schema description for the "CFPckgDocument.Type" Complex Type is given in Table 6.5.15.

Table 6.5.15 - OpenAPI JSON Schema description for the "CFPckgDocument.Type" Complex Type.
Annotations 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.
Diagram To be supplied in a later release of this document
Model identifier{1..1} ! uri{1..1} ! creator{1..1} ! title{1..1} ! lastChangeDateTime{1..1} ! officialSourceURL{0..1} ! publisher{0..1} ! description{0..1} ! subject{0..*} ! subjectURI{0..*} ! language{0..1} ! version{0..1} ! adoptionStatus{0..1} ! statusStartDate{0..1} ! statusEndDate{0..1} ! licenseURI{0..1} ! notes{0..1}
Source
    "CFPckgDocument.Type" : {
        "description" : "...",
        "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
    },
                        

6.5.16 "CFPckgItem.Type" Definition

The OpenAPI JSON Schema description for the "CFPckgItem.Type" Complex Type is given in Table 6.5.16.

Table 6.5.16 - OpenAPI JSON Schema description for the "CFPckgItem.Type" Complex Type.
Annotations 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.
Diagram To be supplied in a later release of this document
Model identifier{1..1} ! fullStatement{1..1} ! alternativeLabel{0..1} ! CFItemType{0..1} ! uri{1..1} ! humanCodingScheme{0..1} ! listEnumeration{0..1} ! abbreviatedStatement{0..1} ! conceptKeywords{0..*} ! conceptKeywordsURI{0..1} ! notes{0..1} ! language{0..1} ! educationLevel{0..*} ! CFItemTypeURI{0..1} ! licenseURI{0..1} ! statusStartDate{0..1} ! statusEndDate{0..1} ! lastChangeDateTime{1..1}
Source
    "CFPckgItem.Type" : {
        "description" : "...",
        "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
    },
                        

6.5.17 "CFRubric.Type" Definition

The OpenAPI JSON Schema description for the "CFRubric.Type" Complex Type is given in Table 6.5.17.

Table 6.5.17 - OpenAPI JSON Schema description for the "CFRubric.Type" Complex Type.
Annotations The container for the definition of a rubric which is addressed by the competency framework. This includes the set of associated CFRubricCriteria and CFRubricCriterionLevels.
Diagram To be supplied in a later release of this document
Model identifier{1..1} ! uri{1..1} ! title{0..1} ! description{0..1} ! lastChangeDateTime{1..1} ! CFRubricCriteria{0..*}
Source
    "CFRubric.Type" : {
        "description" : "...",
        "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
    },
                        

6.5.18 "CFRubricCriterion.Type" Definition

The OpenAPI JSON Schema description for the "CFRubricCriterion.Type" Complex Type is given in Table 6.5.18.

Table 6.5.18 - OpenAPI JSON Schema description for the "CFRubricCriterion.Type" Complex Type.
Annotations The container for the definition of a rubric criterion which is addressed by the competency framework.
Diagram To be supplied in a later release of this document
Model identifier{1..1} ! uri{1..1} ! category{0..1} ! description{0..1} ! CFItemURI{0..1} ! weight{0..1} ! position{0..1} ! rubricId{0..1} ! lastChangeDateTime{1..1} ! CFRubricCriterionLevels{0..*}
Source
    "CFRubricCriterion.Type" : {
        "description" : "...",
        "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
    },
                        

6.5.19 "CFRubricCriterionLevel.Type" Definition

The OpenAPI JSON Schema description for the "CFRubricCriterionLevel.Type" Complex Type is given in Table 6.5.19.

Table 6.5.19 - OpenAPI JSON Schema description for the "CFRubricCriterionLevel.Type" Complex Type.
Annotations The container for the definition of a criterion level which is addressed by the competency framework.
Diagram To be supplied in a later release of this document
Model identifier{1..1} ! uri{1..1} ! description{0..1} ! quality{0..1} ! score{0..1} ! feedback{0..1} ! position{0..1} ! rubricCriterionId{0..1} ! lastChangeDateTime{1..1}
Source
    "CFRubricCriterionLevel.Type" : {
        "description" : "...",
        "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
    },
                        

6.5.20 "CFSubject.Type" Definition

The OpenAPI JSON Schema description for the "CFSubject.Type" Complex Type is given in Table 6.5.20.

Table 6.5.20 - OpenAPI JSON Schema description for the "CFSubject.Type" Complex Type.
Annotations The container for the definition of a topic or academic subject which is addressed by the competency framework.
Diagram To be supplied in a later release of this document
Model identifier{1..1} ! uri{1..1} ! title{1..1} ! hierarchyCode{1..1} ! description{0..1} ! lastChangeDateTime{1..1}
Source
    "CFSubject.Type" : {
        "description" : "...",
        "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
    },
                        

6.5.21 "CFSubjectSet.Type" Definition

The OpenAPI JSON Schema description for the "CFSubjectSet.Type" Complex Type is given in Table 6.5.21.

Table 6.5.21 - OpenAPI JSON Schema description for the "CFSubjectSet.Type" Complex Type.
Annotations 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.
Diagram To be supplied in a later release of this document
Model CFSubjects{1..*}
Source
    "CFSubjectSet.Type" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "CFSubjects" : {
                "type" : "array",
                "minItems" : 1,
                "items" : {
                    "$ref" : "#/definitions/CFSubject.Type"
                }
            }
        },
        "required" : [ "CFSubjects" ],
        "additionalProperties" : false
    },
                        

6.5.22 "LinkGenURI.Type" Definition

The OpenAPI JSON Schema description for the "LinkGenURI.Type" Complex Type is given in Table 6.5.22.

Table 6.5.22 - OpenAPI JSON Schema description for the "LinkGenURI.Type" Complex Type.
Annotations A container for the information that is used to achieve the link data reference.
Diagram To be supplied in a later release of this document
Model title{1..1} ! identifier{1..1} ! uri{1..1}
Source
    "LinkGenURI.Type" : {
        "description" : "...",
        "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
    },
                        

6.5.23 "LinkURI.Type" Definition

The OpenAPI JSON Schema description for the "LinkURI.Type" Complex Type is given in Table 6.5.23.

Table 6.5.23 - OpenAPI JSON Schema description for the "LinkURI.Type" Complex Type.
Annotations A container for the information that is used to achieve the link data reference.
Diagram To be supplied in a later release of this document
Model title{1..1} ! identifier{1..1} ! uri{1..1}
Source
    "LinkURI.Type" : {
        "description" : "...",
        "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
    },
                        

6.5.24 "URL.Type" Definition

The OpenAPI JSON Schema description for the "URL.Type" Complex Type is given in Table 6.5.24.

Table 6.5.24 - OpenAPI JSON Schema description for the "URL.Type" Complex Type.
Annotations The data-type for establishing a Uniform Resource Locator (URL) as defined by W3C.
Diagram To be supplied in a later release of this document
Model N/A
Source
    "URL.Type" : {
        "description" : "...",
        "type" : "string",
        "format" : "uri"
    },
                        

6.5.25 "UUID.Type" Definition

The OpenAPI JSON Schema description for the "UUID.Type" Complex Type is given in Table 6.5.25.

Table 6.5.25 - OpenAPI JSON Schema description for the "UUID.Type" Complex Type.
Annotations 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.
Diagram To be supplied in a later release of this document
Model N/A
Source
    "UUID.Type" : {
        "description" : "...",
        "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}"
    },
                        

6.5.26 "imsx_CodeMinor.Type" Definition

The OpenAPI JSON Schema description for the "imsx_CodeMinor.Type" Complex Type is given in Table 6.5.26.

Table 6.5.26 - OpenAPI JSON Schema description for the "imsx_CodeMinor.Type" Complex Type.
Annotations This is the container for the set of code minor status codes reported in the responses from the Service Provider.
Diagram To be supplied in a later release of this document
Model imsx_codeMinorField{1..*}
Source
    "imsx_CodeMinor.Type" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "imsx_codeMinorField" : {
                "type" : "array",
                "minItems" : 1,
                "items" : {
                    "$ref" : "#/definitions/imsx_CodeMinorField.Type"
                }
            }
        },
        "required" : [ "imsx_codeMinorField" ],
        "additionalProperties" : false
    },
                        

6.5.27 "imsx_CodeMinorField.Type" Definition

The OpenAPI JSON Schema description for the "imsx_CodeMinorField.Type" Complex Type is given in Table 6.5.27.

Table 6.5.27 - OpenAPI JSON Schema description for the "imsx_CodeMinorField.Type" Complex Type.
Annotations This is the container for a single code minor status code.
Diagram To be supplied in a later release of this document
Model imsx_codeMinorFieldName{1..1}, imsx_codeMinorFieldValue{1..1}
Source
    "imsx_CodeMinorField.Type" : {
        "description" : "...",
        "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
    },
                        

6.5.28 "imsx_StatusInfo.Type" Definition

The OpenAPI JSON Schema description for the "imsx_StatusInfo.Type" Complex Type is given in Table 6.5.28.

Table 6.5.28 - OpenAPI JSON Schema description for the "imsx_StatusInfo.Type" Complex Type.
Annotations 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
Diagram To be supplied in a later release of this document
Model imsx_codeMajor{1..1}, imsx_severity{1..1}, imsx_description{0..1}, imsx_codeMinor{0..1}
Source
    "imsx_StatusInfo.Type" : {
        "description" : "...",
        "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
    },
                        

toc | top

7. Extending and Profiling the Service

7.1. Extending the Service

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.

7.1.1. Proprietary 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].

7.1.2. Proprietary Data Elements

Currently, data extensions are NOT permitted. Within the OpenAPI files, data extensions are explicitly prohibited by the JSON Schema definition.

7.2. Profiling the Service

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.

toc | top

Appendix A REST/JSON Modelling Terms

A1 REST Endpoint Description Explanations

A1.1 REST Endpoint Mapping Table Explanation

Table A1.1 provides the key to the descriptions of the mapping between a service calls and its REST endpoint URL-leaf.

Table A1.1 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:
  • GET - request to read the identified resource from the service provider;
  • PUT - request to write the supplied resource on the service provider using the given resource identifier;
  • POST - request to write the supplied resource on the service provider and the service provider must assign the unique identifier;
  • DELETE - request to delete the identified resource.

toc | top

A1.2 Query Parameter Table Explanation

Table A1.2 provides the key to the descriptions of the query parameters that are permitted for an endpoint.

Table A1.2 The key to the descriptions of the data attribute/characteristic tables.
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:
  • Enumeration - a list of the permitted values;
  • Primitive Data-types from:-
    • AnyTypeLax - the namespace data-type i.e. defining data from any context (this is used for allowing any form of extension);
    • AnyURI - the AnyURI data-type (absolute or relatve URI);
    • Base - the base data-type for defining a base URI/URL link reference;
    • Boolean - the boolean data-type (with permitted values of "true" and "false");
    • Date - the date data-type (using the [ISO 8601] format);
    • DateTime - the date/time data-type (using the [ISO 8601] format);
    • Decimal - the decimal data-type (a variable precision number that is either positive or negative);
    • Double - the double data-type (double precision floating point number - 64bit);
    • Empty - the associated instance must be empty;
    • ID - the unique identifier data-type;
    • IDREF - the reference to a previously defined unique identifier data-type (ID);
    • IDREFS - a list, whitespace separated, of references to a previously defined unique identifier data-type (ID);
    • Int - the int data-type (this is derived from the "decimal" data-type);
    • Integer - the integer data-type (using the);
    • Language - the language data-type as defined in [RFC 3066];
    • Namespace - the namespace data-type i.e. defining data from a context other than that as the default for the data model (this is used for importing other data models);
    • NamespaceLax - the namespace data-type i.e. defining data from a context other than that as the default for the data model (this is used for importing other data models but being lax on the validation);
    • NonNegativeInteger - the non-negative integer data-type (this is derived from the "integer" data-type) i.e. an integer that is zero or higher;
    • NCName - the NCName data-type (derived from the Name data-type);
    • NormalizedString - the normalized string data type (strings with line feeds, carriage returns and tab characters removed);
    • String - the normalized string data type;
    • Time - the time data-type (using the [ISO 8601] format).
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:
  • "0..1" [optional; restricted]
  • "0..*" [optional; unrestricted]
  • "1" [mandatory; restricted]
  • "1..*" [mandatory; unrestricted]
Description Contains descriptions relating to the query parameter and its values space.

toc | top

A1.3 Error Codes and Handling for each Endpoint Table Explanation

Table A1.3 provides the key to the descriptions of the list of error codes and handling for each endpoint.

Table A1.3 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:
  • GET - request to read the identified resource from the service provider;
  • PUT - request to write the supplied resource on the service provider using the given resource identifier;
  • POST - request to write the supplied resource on the service provider and the service provider must assign the unique identifier;
  • DELETE - request to delete the identified resource.
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.

toc | top

A2 OpenAPI Descriptions Explanations

A2.1 OpenAPI General Information Table Explanation

Table A2.1 provides the key to the OpenAPI general information.

Table A2.1 The key to the tabular description of 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.

toc | top

A2.2 OpenAPI Tags Table Explanation

Table A2.2 provides the key to the tabular description of the OpenAPI tags information.

Table A2.2 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.

toc | top

A2.3 OpenAPI Security Table Explanation

Table A2.3 provides the key to the tabular description of the OpenAPI security information.

Table A2.3 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.

toc | top

A2.4 OpenAPI Paths Table Explanation

Table A2.4 provides the key to the OpenAPI paths information for an HTTP Verb.

Table A2.4 The key to the tabular description of the OpenAPI paths informationfor 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:
  • Name - the name of the parameter;
  • Type - the data type for the parameter;
  • Multiplicity - the permitted multiplicity of the parameter. This takes the form of:-
    • "0..1" [optional; restricted]
    • "0..*" [optional; unrestricted] - this will normally be achieved as a comma separated list
    • "1" [mandatory; restricted]
    • "1..*" [mandatory; unrestricted] - this will normally be achieved as a comma separated list
  • Default - the default value for the parameter.
Responses The set of query responses that are permitted for the request. For each response the following information is supplied:
  • Name - the name of the response (this is either a valid HTTP code or the value "default");
  • Type - the data type for the response paylaod (this is linked to the corresponding OpenAPI definition);
  • Description - the description of the response including any specific status code values.

toc | top

A2.5 OpenAPI Definitions Table Explanation

Table A2.5 provides the key to the OpenAPI definitions information.

Table A2.5 The key to the tabular description of 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.

toc | top

Appendix B OpenAPI Listings

B1 CASE Service OpenAPI JSON Definition Listing

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" ]
}
        

B2 CASE Service OpenAPI YAML Definition Listing

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
        

toc | top

About this Document

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

toc | top

List of Contributors

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)

toc | top

Revision History

Version No. Release Date Comments
Final Release 1.0 7th July, 2017 The original Final Release. This declares the standard ready for public adoption.

toc | top

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

toc | top