IMS Final Release

IMS Global Logo

IMS OneRoster Gradebook REST/JSON Binding Version 1.2

IMS Final Release
Version 1.0

Date Issued: 19th September 2022
Latest version: http://www.imsglobal.org/activity/onerosterlis/

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.

Org Name Date Election Made Necessary Claims Type
Anthology Inc. 10th August 2022 No RF RAND (Required & Optional Elements)
D2L Corporation 21st July 2022 No RF RAND (Required & Optional Elements)
Gwinnett County Public Schools 22nd July 2022 No RF RAND (Required & Optional Elements)
Infinite Campus Inc. 25th July 2022 No RF RAND (Required & Optional Elements)
Microsoft Corporation 8th August 2022 No RF RAND (Required & Optional Elements)
SameGoal Inc. 21st July 2022 No RF RAND (Required & Optional Elements)

Copyright © 2022 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 OneRoster Gradebook REST/JSON Binding v1.2

Revision: 19th September 2022

toc | top

Abstract

The IMS OneRoster (OR) standard addresses the exchange of student data (primarily about people, courses, enrollments and grades) between different educational systems for the specific needs of K-12. The primary use-case is the exchange of data between a Student Information System (SIS) and Learning Management System (LMS). In OR 1.2, the service has been split into three core services:

This OR 1.2 Gradebook Service provides the ability to manage the exchange of information about results, line items, categories (collections of line items) and score scales. It is also possible to exchange information about assessment activities in the form of assessment lineItems and assessment results. The service description includes the definition of the data formats that are exchanged using a set of service operations. In this document the binding implementation as a REST/JSON service is described.

toc | top

Table of Contents

Abstract

1. Introduction

1.1 Scope and Context

1.2 Conventions

1.3 Changes in Gradebook Service 1.2

1.4 Structure of this Document

1.5 Nomenclature

2. 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 "deleteAssessmentLineItem" Endpoint Query Parameters

2.3.2 "deleteAssessmentResult" Endpoint Query Parameters

2.3.3 "deleteCategory" Endpoint Query Parameters

2.3.4 "deleteLineItem" Endpoint Query Parameters

2.3.5 "deleteResult" Endpoint Query Parameters

2.3.6 "deleteScoreScale" Endpoint Query Parameters

2.3.7 "getAllAssessmentLineItems" Endpoint Query Parameters

2.3.8 "getAllAssessmentResults" Endpoint Query Parameters

2.3.9 "getAllCategories" Endpoint Query Parameters

2.3.10 "getAllLineItems" Endpoint Query Parameters

2.3.11 "getAllResults" Endpoint Query Parameters

2.3.12 "getAllScoreScales" Endpoint Query Parameters

2.3.13 "getAssessmentLineItem" Endpoint Query Parameters

2.3.14 "getAssessmentResult" Endpoint Query Parameters

2.3.15 "getCategoriesForClass" Endpoint Query Parameters

2.3.16 "getCategory" Endpoint Query Parameters

2.3.17 "getLineItem" Endpoint Query Parameters

2.3.18 "getLineItemsForClass" Endpoint Query Parameters

2.3.19 "getResult" Endpoint Query Parameters

2.3.20 "getResultsForClass" Endpoint Query Parameters

2.3.21 "getResultsForLineItemForClass" Endpoint Query Parameters

2.3.22 "getResultsForStudentForClass" Endpoint Query Parameters

2.3.23 "getScoreScale" Endpoint Query Parameters

2.3.24 "getScoreScalesForClass" Endpoint Query Parameters

2.3.25 "getScoreScalesForSchool" Endpoint Query Parameters

2.3.26 "postLineItemsForClass" Endpoint Query Parameters

2.3.27 "postLineItemsForSchool" Endpoint Query Parameters

2.3.28 "postResultsForAcademicSessionForClass" Endpoint Query Parameters

2.3.29 "postResultsForLineItem" Endpoint Query Parameters

2.3.30 "putAssessmentLineItem" Endpoint Query Parameters

2.3.31 "putAssessmentResult" Endpoint Query Parameters

2.3.32 "putCategory" Endpoint Query Parameters

2.3.33 "putLineItem" Endpoint Query Parameters

2.3.34 "putResult" Endpoint Query Parameters

2.3.35 "putScoreScale" Endpoint Query Parameters

2.4 HTTP Code Handling

2.5 Service Discovery

3. Using the Endpoint Parameters

3.1 Pagination

3.2 Sorting

3.3 Filtering

3.4 Field Selection

4. Security Framework

4.1 Transport Security

4.2 Authorization

4.3 Scopes

4.3.1 "https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.createput" Scope

4.3.2 "https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.delete" Scope

4.3.3 "https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.readonly" Scope

4.3.4 "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook-core.readonly" Scope

4.3.5 "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createpost" Scope

4.3.6 "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createput" Scope

4.3.7 "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.delete" Scope

4.3.8 "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly" Scope

5. UML to JSON Payload Mapping

5.1 Service Parameter Payload Properties UML/JSON Mapping

5.2 Service Parameter Payload Class UML/JSON Mapping

5.2.1 CategoriesSet Service Parameter Payload Class Mapping

5.2.2 SingleCategory Service Parameter Payload Class Mapping

5.2.3 ResultSet Service Parameter Payload Class Mapping

5.2.4 LineItemSet Service Parameter Payload Class Mapping

5.2.5 ScoreScaleSet Service Parameter Payload Class Mapping

5.2.6 GUIDPairSet Service Parameter Payload Class Mapping

5.2.7 SingleResult Service Parameter Payload Class Mapping

5.2.8 SingleLineItem Service Parameter Payload Class Mapping

5.2.9 SingleScoreScale Service Parameter Payload Class Mapping

5.2.10 AssessmentLineItemSet Service Parameter Payload Class Mapping

5.2.11 SingleAssessmentLineItem Service Parameter Payload Class Mapping

5.2.12 AssessmentResultSet Service Parameter Payload Class Mapping

5.2.13 SingleAssessmentResult Service Parameter Payload Class Mapping

5.3 Payload Classes UML/JSON Mapping

5.3.1 AcadSessionGUIDRef Payload Class Mapping

5.3.2 AssessmentLineItem Payload Class Mapping

5.3.3 AssessmentLineItemGUIDRef Payload Class Mapping

5.3.4 AssessmentResult Payload Class Mapping

5.3.5 Base Payload Class Mapping

5.3.6 Category Payload Class Mapping

5.3.7 CategoryGUIDRef Payload Class Mapping

5.3.8 ClassGUIDRef Payload Class Mapping

5.3.9 CourseGUIDRef Payload Class Mapping

5.3.10 GUIDPair Payload Class Mapping

5.3.11 GUIDRef Payload Class Mapping

5.3.12 LearningObjectiveResults Payload Class Mapping

5.3.13 LearningObjectiveScoreSet Payload Class Mapping

5.3.14 LearningObjectiveSet Payload Class Mapping

5.3.15 LineItem Payload Class Mapping

5.3.16 LineItemGUIDRef Payload Class Mapping

5.3.17 Metadata Payload Class Mapping

5.3.18 OrgGUIDRef Payload Class Mapping

5.3.19 Result Payload Class Mapping

5.3.20 ScoreScale Payload Class Mapping

5.3.21 ScoreScaleGUIDRef Payload Class Mapping

5.3.22 ScoreScaleValue Payload Class Mapping

5.3.23 UserGUIDRef Payload Class Mapping

5.3.24 imsx_CodeMinor Payload Class Mapping

5.3.25 imsx_CodeMinorField Payload Class Mapping

5.3.26 imsx_StatusInfo Payload Class Mapping

5.4 Enumerated Class UML/JSON Mapping

5.5 Enumerated List Class UML/JSON Mapping

5.6 Primitive Type UML/JSON Mapping

6. JSON Payloads

6.1 "deleteAssessmentLineItem" Request Payload

6.2 "deleteAssessmentLineItem" Response Payload

6.2.1 Response Payloads for the HTTP Codes (204)

6.2.2 Response Payloads for the HTTP Codes (default, 401, 403, 404, 422, 429, 500)

6.3 "deleteAssessmentResult" Request Payload

6.4 "deleteAssessmentResult" Response Payload

6.4.1 Response Payloads for the HTTP Codes (204)

6.4.2 Response Payloads for the HTTP Codes (default, 401, 403, 404, 422, 429, 500)

6.5 "deleteCategory" Request Payload

6.6 "deleteCategory" Response Payload

6.6.1 Response Payloads for the HTTP Codes (204)

6.6.2 Response Payloads for the HTTP Codes (default, 401, 403, 404, 422, 429, 500)

6.7 "deleteLineItem" Request Payload

6.8 "deleteLineItem" Response Payload

6.8.1 Response Payloads for the HTTP Codes (204)

6.8.2 Response Payloads for the HTTP Codes (default, 401, 403, 404, 422, 429, 500)

6.9 "deleteResult" Request Payload

6.10 "deleteResult" Response Payload

6.10.1 Response Payloads for the HTTP Codes (204)

6.10.2 Response Payloads for the HTTP Codes (default, 401, 403, 404, 422, 429, 500)

6.11 "deleteScoreScale" Request Payload

6.12 "deleteScoreScale" Response Payload

6.12.1 Response Payloads for the HTTP Codes (204)

6.12.2 Response Payloads for the HTTP Codes (default, 401, 403, 404, 422, 429, 500)

6.13 "getAllAssessmentLineItems" Request Payload

6.14 "getAllAssessmentLineItems" Response Payload

6.14.1 Response Payloads for the HTTP Codes (200)

6.14.2 Response Payloads for the HTTP Codes (default, 400, 401, 403, 422, 429, 500)

6.15 "getAllAssessmentResults" Request Payload

6.16 "getAllAssessmentResults" Response Payload

6.16.1 Response Payloads for the HTTP Codes (200)

6.16.2 Response Payloads for the HTTP Codes (default, 400, 401, 403, 422, 429, 500)

6.17 "getAllCategories" Request Payload

6.18 "getAllCategories" Response Payload

6.18.1 Response Payloads for the HTTP Codes (200)

6.18.2 Response Payloads for the HTTP Codes (default, 400, 401, 403, 422, 429, 500)

6.19 "getAllLineItems" Request Payload

6.20 "getAllLineItems" Response Payload

6.20.1 Response Payloads for the HTTP Codes (200)

6.20.2 Response Payloads for the HTTP Codes (default, 400, 401, 403, 422, 429, 500)

6.21 "getAllResults" Request Payload

6.22 "getAllResults" Response Payload

6.22.1 Response Payloads for the HTTP Codes (200)

6.22.2 Response Payloads for the HTTP Codes (default, 400, 401, 403, 422, 429, 500)

6.23 "getAllScoreScales" Request Payload

6.24 "getAllScoreScales" Response Payload

6.24.1 Response Payloads for the HTTP Codes (200)

6.24.2 Response Payloads for the HTTP Codes (default, 400, 401, 403, 422, 429, 500)

6.25 "getAssessmentLineItem" Request Payload

6.26 "getAssessmentLineItem" Response Payload

6.26.1 Response Payloads for the HTTP Codes (200)

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

6.27 "getAssessmentResult" Request Payload

6.28 "getAssessmentResult" Response Payload

6.28.1 Response Payloads for the HTTP Codes (200)

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

6.29 "getCategoriesForClass" Request Payload

6.30 "getCategoriesForClass" Response Payload

6.30.1 Response Payloads for the HTTP Codes (200)

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

6.31 "getCategory" Request Payload

6.32 "getCategory" Response Payload

6.32.1 Response Payloads for the HTTP Codes (200)

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

6.33 "getLineItem" Request Payload

6.34 "getLineItem" Response Payload

6.34.1 Response Payloads for the HTTP Codes (200)

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

6.35 "getLineItemsForClass" Request Payload

6.36 "getLineItemsForClass" Response Payload

6.36.1 Response Payloads for the HTTP Codes (200)

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

6.37 "getResult" Request Payload

6.38 "getResult" Response Payload

6.38.1 Response Payloads for the HTTP Codes (200)

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

6.39 "getResultsForClass" Request Payload

6.40 "getResultsForClass" Response Payload

6.40.1 Response Payloads for the HTTP Codes (200)

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

6.41 "getResultsForLineItemForClass" Request Payload

6.42 "getResultsForLineItemForClass" Response Payload

6.42.1 Response Payloads for the HTTP Codes (200)

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

6.43 "getResultsForStudentForClass" Request Payload

6.44 "getResultsForStudentForClass" Response Payload

6.44.1 Response Payloads for the HTTP Codes (200)

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

6.45 "getScoreScale" Request Payload

6.46 "getScoreScale" Response Payload

6.46.1 Response Payloads for the HTTP Codes (200)

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

6.47 "getScoreScalesForClass" Request Payload

6.48 "getScoreScalesForClass" Response Payload

6.48.1 Response Payloads for the HTTP Codes (200)

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

6.49 "getScoreScalesForSchool" Request Payload

6.50 "getScoreScalesForSchool" Response Payload

6.50.1 Response Payloads for the HTTP Codes (200)

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

6.51 "postLineItemsForClass" Request Payload

6.52 "postLineItemsForClass" Response Payload

6.52.1 Response Payloads for the HTTP Codes (201)

6.52.2 Response Payloads for the HTTP Codes (default, 401, 403, 404, 422, 429, 500)

6.53 "postLineItemsForSchool" Request Payload

6.54 "postLineItemsForSchool" Response Payload

6.54.1 Response Payloads for the HTTP Codes (201)

6.54.2 Response Payloads for the HTTP Codes (default, 401, 403, 404, 422, 429, 500)

6.55 "postResultsForAcademicSessionForClass" Request Payload

6.56 "postResultsForAcademicSessionForClass" Response Payload

6.56.1 Response Payloads for the HTTP Codes (201)

6.56.2 Response Payloads for the HTTP Codes (default, 401, 403, 404, 422, 429, 500)

6.57 "postResultsForLineItem" Request Payload

6.58 "postResultsForLineItem" Response Payload

6.58.1 Response Payloads for the HTTP Codes (201)

6.58.2 Response Payloads for the HTTP Codes (default, 401, 403, 404, 422, 429, 500)

6.59 "putAssessmentLineItem" Request Payload

6.60 "putAssessmentLineItem" Response Payload

6.60.1 Response Payloads for the HTTP Codes (201)

6.60.2 Response Payloads for the HTTP Codes (default, 401, 403, 404, 422, 429, 500)

6.61 "putAssessmentResult" Request Payload

6.62 "putAssessmentResult" Response Payload

6.62.1 Response Payloads for the HTTP Codes (201)

6.62.2 Response Payloads for the HTTP Codes (default, 401, 403, 404, 422, 429, 500)

6.63 "putCategory" Request Payload

6.64 "putCategory" Response Payload

6.64.1 Response Payloads for the HTTP Codes (201)

6.64.2 Response Payloads for the HTTP Codes (default, 401, 403, 404, 422, 429, 500)

6.65 "putLineItem" Request Payload

6.66 "putLineItem" Response Payload

6.66.1 Response Payloads for the HTTP Codes (201)

6.66.2 Response Payloads for the HTTP Codes (default, 401, 403, 404, 422, 429, 500)

6.67 "putResult" Request Payload

6.68 "putResult" Response Payload

6.68.1 Response Payloads for the HTTP Codes (201)

6.68.2 Response Payloads for the HTTP Codes (default, 401, 403, 404, 422, 429, 500)

6.69 "putScoreScale" Request Payload

6.70 "putScoreScale" Response Payload

6.70.1 Response Payloads for the HTTP Codes (201)

6.70.2 Response Payloads for the HTTP Codes (default, 401, 403, 404, 422, 429, 500)

7. OpenAPI Description

7.1 General Information

7.2 Tags Information

7.3 Security Information

7.4 Paths Information

7.4.1 "/assessmentLineItems" Path

7.4.2 "/assessmentLineItems/{sourcedId}" Path

7.4.3 "/assessmentResults" Path

7.4.4 "/assessmentResults/{sourcedId}" Path

7.4.5 "/categories" Path

7.4.6 "/categories/{sourcedId}" Path

7.4.7 "/classes/{classSourcedId}/academicSessions/{academicSessionSourcedId}/results" Path

7.4.8 "/classes/{classSourcedId}/categories" Path

7.4.9 "/classes/{classSourcedId}/lineItems" Path

7.4.10 "/classes/{classSourcedId}/lineItems/{lineItemSourcedId}/results" Path

7.4.11 "/classes/{classSourcedId}/results" Path

7.4.12 "/classes/{classSourcedId}/scoreScales" Path

7.4.13 "/classes/{classSourcedId}/students/{studentSourcedId}/results" Path

7.4.14 "/lineItems" Path

7.4.15 "/lineItems/{lineItemSourcedId}/results" Path

7.4.16 "/lineItems/{sourcedId}" Path

7.4.17 "/results" Path

7.4.18 "/results/{sourcedId}" Path

7.4.19 "/schools/{schoolSourcedId}/lineItems" Path

7.4.20 "/schools/{schoolSourcedId}/scoreScales" Path

7.4.21 "/scoreScales" Path

7.4.22 "/scoreScales/{sourcedId}" Path

7.5 Definitions Information

7.5.1 "AcadSessionGUIDRefDType" Definition

7.5.2 "AssessmentLineItemDType" Definition

7.5.3 "AssessmentLineItemGUIDRefDType" Definition

7.5.4 "AssessmentLineItemSetDType" Definition

7.5.5 "AssessmentResultDType" Definition

7.5.6 "AssessmentResultSetDType" Definition

7.5.7 "CategoriesSetDType" Definition

7.5.8 "CategoryDType" Definition

7.5.9 "CategoryGUIDRefDType" Definition

7.5.10 "ClassGUIDRefDType" Definition

7.5.11 "CourseGUIDRefDType" Definition

7.5.12 "GUIDPairDType" Definition

7.5.13 "GUIDPairSetDType" Definition

7.5.14 "LearningObjectiveResultsDType" Definition

7.5.15 "LearningObjectiveScoreSetDType" Definition

7.5.16 "LearningObjectiveSetDType" Definition

7.5.17 "LineItemDType" Definition

7.5.18 "LineItemGUIDRefDType" Definition

7.5.19 "LineItemSetDType" Definition

7.5.20 "MetadataDType" Definition

7.5.21 "OrgGUIDRefDType" Definition

7.5.22 "ResultDType" Definition

7.5.23 "ResultSetDType" Definition

7.5.24 "ScoreScaleDType" Definition

7.5.25 "ScoreScaleGUIDRefDType" Definition

7.5.26 "ScoreScaleSetDType" Definition

7.5.27 "ScoreScaleValueDType" Definition

7.5.28 "SingleAssessmentLineItemDType" Definition

7.5.29 "SingleAssessmentResultDType" Definition

7.5.30 "SingleCategoryDType" Definition

7.5.31 "SingleLineItemDType" Definition

7.5.32 "SingleResultDType" Definition

7.5.33 "SingleScoreScaleDType" Definition

7.5.34 "UserGUIDRefDType" Definition

7.5.35 "imsx_CodeMinorDType" Definition

7.5.36 "imsx_CodeMinorFieldDType" Definition

7.5.37 "imsx_StatusInfoDType" Definition

8. Extending and Profiling the Binding

8.1 Extending the Binding

8.1.1 Proprietary Operations

8.1.2 Proprietary Scopes

8.1.3 Proprietary Data Elements

8.1.4 Proprietary Vocabulary Terms

8.2 Profiling the Binding

References

Appendix A Model Binding Terms and Concepts

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 UML to JSON Mapping Description Explanations

A2.1 Service Parameter Payload Properties UML/JSON Mapping Table Definition

A2.2 UML/JSON Payload Class Mapping Table Definition

A2.3 UML/JSON Enumerated and Enumerated List Class Mapping Table Definition

A2.4 UML/JSON Primitive Types Mapping Table Definition

A3 OpenAPI Descriptions Explanations

A3.1a OpenAPI(2) General Information Table Explanation

A3.1b OpenAPI(3) General Information Table Explanation

A3.2 OpenAPI Tags Table Explanation

A3.3 OpenAPI Security Table Explanation

A3.4 OpenAPI Paths Table Explanation

A3.5 OpenAPI Definitions Table Explanation

Appendix B OpenAPI Listings

B1 Listing of the OpenAPI (JSON) File

B1.1 OpenAPI 2.0 JSON Listing

B1.2 OpenAPI 3.0 JSON Listing

B2 Listing of the OpenAPI (YAML) File

B2.1 OpenAPI 2.0 YAML Listing

B2.2 OpenAPI 3.0 YAML Listing

Appendix C JSON Schema Listings

C1 JSON Schemas for Payload Validation

C1.1a JSON Schema for the "deleteAssessmentLineItem" Operation Request Payload Validation.

C1.1b JSON Schema for the "deleteAssessmentLineItem" Operation Response Payload Validation for HTTP Codes (204)

C1.1c JSON Schema for the "deleteAssessmentLineItem" Operation Response Payload Validation for HTTP Codes (default,401,403,404,422,429,500)

C1.2a JSON Schema for the "deleteAssessmentResult" Operation Request Payload Validation.

C1.2b JSON Schema for the "deleteAssessmentResult" Operation Response Payload Validation for HTTP Codes (204)

C1.2c JSON Schema for the "deleteAssessmentResult" Operation Response Payload Validation for HTTP Codes (default,401,403,404,422,429,500)

C1.3a JSON Schema for the "deleteCategory" Operation Request Payload Validation.

C1.3b JSON Schema for the "deleteCategory" Operation Response Payload Validation for HTTP Codes (204)

C1.3c JSON Schema for the "deleteCategory" Operation Response Payload Validation for HTTP Codes (default,401,403,404,422,429,500)

C1.4a JSON Schema for the "deleteLineItem" Operation Request Payload Validation.

C1.4b JSON Schema for the "deleteLineItem" Operation Response Payload Validation for HTTP Codes (204)

C1.4c JSON Schema for the "deleteLineItem" Operation Response Payload Validation for HTTP Codes (default,401,403,404,422,429,500)

C1.5a JSON Schema for the "deleteResult" Operation Request Payload Validation.

C1.5b JSON Schema for the "deleteResult" Operation Response Payload Validation for HTTP Codes (204)

C1.5c JSON Schema for the "deleteResult" Operation Response Payload Validation for HTTP Codes (default,401,403,404,422,429,500)

C1.6a JSON Schema for the "deleteScoreScale" Operation Request Payload Validation.

C1.6b JSON Schema for the "deleteScoreScale" Operation Response Payload Validation for HTTP Codes (204)

C1.6c JSON Schema for the "deleteScoreScale" Operation Response Payload Validation for HTTP Codes (default,401,403,404,422,429,500)

C1.7a JSON Schema for the "getAllAssessmentLineItems" Operation Request Payload Validation.

C1.7b JSON Schema for the "getAllAssessmentLineItems" Operation Response Payload Validation for HTTP Codes (200)

C1.7c JSON Schema for the "getAllAssessmentLineItems" Operation Response Payload Validation for HTTP Codes (default,400,401,403,422,429,500)

C1.8a JSON Schema for the "getAllAssessmentResults" Operation Request Payload Validation.

C1.8b JSON Schema for the "getAllAssessmentResults" Operation Response Payload Validation for HTTP Codes (200)

C1.8c JSON Schema for the "getAllAssessmentResults" Operation Response Payload Validation for HTTP Codes (default,400,401,403,422,429,500)

C1.9a JSON Schema for the "getAllCategories" Operation Request Payload Validation.

C1.9b JSON Schema for the "getAllCategories" Operation Response Payload Validation for HTTP Codes (200)

C1.9c JSON Schema for the "getAllCategories" Operation Response Payload Validation for HTTP Codes (default,400,401,403,422,429,500)

C1.10a JSON Schema for the "getAllLineItems" Operation Request Payload Validation.

C1.10b JSON Schema for the "getAllLineItems" Operation Response Payload Validation for HTTP Codes (200)

C1.10c JSON Schema for the "getAllLineItems" Operation Response Payload Validation for HTTP Codes (default,400,401,403,422,429,500)

C1.11a JSON Schema for the "getAllResults" Operation Request Payload Validation.

C1.11b JSON Schema for the "getAllResults" Operation Response Payload Validation for HTTP Codes (200)

C1.11c JSON Schema for the "getAllResults" Operation Response Payload Validation for HTTP Codes (default,400,401,403,422,429,500)

C1.12a JSON Schema for the "getAllScoreScales" Operation Request Payload Validation.

C1.12b JSON Schema for the "getAllScoreScales" Operation Response Payload Validation for HTTP Codes (200)

C1.12c JSON Schema for the "getAllScoreScales" Operation Response Payload Validation for HTTP Codes (default,400,401,403,422,429,500)

C1.13a JSON Schema for the "getAssessmentLineItem" Operation Request Payload Validation.

C1.13b JSON Schema for the "getAssessmentLineItem" Operation Response Payload Validation for HTTP Codes (200)

C1.13c JSON Schema for the "getAssessmentLineItem" Operation Response Payload Validation for HTTP Codes (default,400,401,403,404,422,429,500)

C1.14a JSON Schema for the "getAssessmentResult" Operation Request Payload Validation.

C1.14b JSON Schema for the "getAssessmentResult" Operation Response Payload Validation for HTTP Codes (200)

C1.14c JSON Schema for the "getAssessmentResult" Operation Response Payload Validation for HTTP Codes (default,400,401,403,404,422,429,500)

C1.15a JSON Schema for the "getCategoriesForClass" Operation Request Payload Validation.

C1.15b JSON Schema for the "getCategoriesForClass" Operation Response Payload Validation for HTTP Codes (200)

C1.15c JSON Schema for the "getCategoriesForClass" Operation Response Payload Validation for HTTP Codes (default,400,401,403,404,422,429,500)

C1.16a JSON Schema for the "getCategory" Operation Request Payload Validation.

C1.16b JSON Schema for the "getCategory" Operation Response Payload Validation for HTTP Codes (200)

C1.16c JSON Schema for the "getCategory" Operation Response Payload Validation for HTTP Codes (default,400,401,403,404,422,429,500)

C1.17a JSON Schema for the "getLineItem" Operation Request Payload Validation.

C1.17b JSON Schema for the "getLineItem" Operation Response Payload Validation for HTTP Codes (200)

C1.17c JSON Schema for the "getLineItem" Operation Response Payload Validation for HTTP Codes (default,400,401,403,404,422,429,500)

C1.18a JSON Schema for the "getLineItemsForClass" Operation Request Payload Validation.

C1.18b JSON Schema for the "getLineItemsForClass" Operation Response Payload Validation for HTTP Codes (200)

C1.18c JSON Schema for the "getLineItemsForClass" Operation Response Payload Validation for HTTP Codes (default,400,401,403,404,422,429,500)

C1.19a JSON Schema for the "getResult" Operation Request Payload Validation.

C1.19b JSON Schema for the "getResult" Operation Response Payload Validation for HTTP Codes (200)

C1.19c JSON Schema for the "getResult" Operation Response Payload Validation for HTTP Codes (default,400,401,403,404,422,429,500)

C1.20a JSON Schema for the "getResultsForClass" Operation Request Payload Validation.

C1.20b JSON Schema for the "getResultsForClass" Operation Response Payload Validation for HTTP Codes (200)

C1.20c JSON Schema for the "getResultsForClass" Operation Response Payload Validation for HTTP Codes (default,400,401,403,404,422,429,500)

C1.21a JSON Schema for the "getResultsForLineItemForClass" Operation Request Payload Validation.

C1.21b JSON Schema for the "getResultsForLineItemForClass" Operation Response Payload Validation for HTTP Codes (200)

C1.21c JSON Schema for the "getResultsForLineItemForClass" Operation Response Payload Validation for HTTP Codes (default,400,401,403,404,422,429,500)

C1.22a JSON Schema for the "getResultsForStudentForClass" Operation Request Payload Validation.

C1.22b JSON Schema for the "getResultsForStudentForClass" Operation Response Payload Validation for HTTP Codes (200)

C1.22c JSON Schema for the "getResultsForStudentForClass" Operation Response Payload Validation for HTTP Codes (default,400,401,403,404,422,429,500)

C1.23a JSON Schema for the "getScoreScale" Operation Request Payload Validation.

C1.23b JSON Schema for the "getScoreScale" Operation Response Payload Validation for HTTP Codes (200)

C1.23c JSON Schema for the "getScoreScale" Operation Response Payload Validation for HTTP Codes (default,400,401,403,404,422,429,500)

C1.24a JSON Schema for the "getScoreScalesForClass" Operation Request Payload Validation.

C1.24b JSON Schema for the "getScoreScalesForClass" Operation Response Payload Validation for HTTP Codes (200)

C1.24c JSON Schema for the "getScoreScalesForClass" Operation Response Payload Validation for HTTP Codes (default,400,401,403,404,422,429,500)

C1.25a JSON Schema for the "getScoreScalesForSchool" Operation Request Payload Validation.

C1.25b JSON Schema for the "getScoreScalesForSchool" Operation Response Payload Validation for HTTP Codes (200)

C1.25c JSON Schema for the "getScoreScalesForSchool" Operation Response Payload Validation for HTTP Codes (default,400,401,403,404,422,429,500)

C1.26a JSON Schema for the "postLineItemsForClass" Operation Request Payload Validation.

C1.26b JSON Schema for the "postLineItemsForClass" Operation Response Payload Validation for HTTP Codes (201)

C1.26c JSON Schema for the "postLineItemsForClass" Operation Response Payload Validation for HTTP Codes (default,401,403,404,422,429,500)

C1.27a JSON Schema for the "postLineItemsForSchool" Operation Request Payload Validation.

C1.27b JSON Schema for the "postLineItemsForSchool" Operation Response Payload Validation for HTTP Codes (201)

C1.27c JSON Schema for the "postLineItemsForSchool" Operation Response Payload Validation for HTTP Codes (default,401,403,404,422,429,500)

C1.28a JSON Schema for the "postResultsForAcademicSessionForClass" Operation Request Payload Validation.

C1.28b JSON Schema for the "postResultsForAcademicSessionForClass" Operation Response Payload Validation for HTTP Codes (201)

C1.28c JSON Schema for the "postResultsForAcademicSessionForClass" Operation Response Payload Validation for HTTP Codes (default,401,403,404,422,429,500)

C1.29a JSON Schema for the "postResultsForLineItem" Operation Request Payload Validation.

C1.29b JSON Schema for the "postResultsForLineItem" Operation Response Payload Validation for HTTP Codes (201)

C1.29c JSON Schema for the "postResultsForLineItem" Operation Response Payload Validation for HTTP Codes (default,401,403,404,422,429,500)

C1.30a JSON Schema for the "putAssessmentLineItem" Operation Request Payload Validation.

C1.30b JSON Schema for the "putAssessmentLineItem" Operation Response Payload Validation for HTTP Codes (201)

C1.30c JSON Schema for the "putAssessmentLineItem" Operation Response Payload Validation for HTTP Codes (default,401,403,404,422,429,500)

C1.31a JSON Schema for the "putAssessmentResult" Operation Request Payload Validation.

C1.31b JSON Schema for the "putAssessmentResult" Operation Response Payload Validation for HTTP Codes (201)

C1.31c JSON Schema for the "putAssessmentResult" Operation Response Payload Validation for HTTP Codes (default,401,403,404,422,429,500)

C1.32a JSON Schema for the "putCategory" Operation Request Payload Validation.

C1.32b JSON Schema for the "putCategory" Operation Response Payload Validation for HTTP Codes (201)

C1.32c JSON Schema for the "putCategory" Operation Response Payload Validation for HTTP Codes (default,401,403,404,422,429,500)

C1.33a JSON Schema for the "putLineItem" Operation Request Payload Validation.

C1.33b JSON Schema for the "putLineItem" Operation Response Payload Validation for HTTP Codes (201)

C1.33c JSON Schema for the "putLineItem" Operation Response Payload Validation for HTTP Codes (default,401,403,404,422,429,500)

C1.34a JSON Schema for the "putResult" Operation Request Payload Validation.

C1.34b JSON Schema for the "putResult" Operation Response Payload Validation for HTTP Codes (201)

C1.34c JSON Schema for the "putResult" Operation Response Payload Validation for HTTP Codes (default,401,403,404,422,429,500)

C1.35a JSON Schema for the "putScoreScale" Operation Request Payload Validation.

C1.35b JSON Schema for the "putScoreScale" Operation Response Payload Validation for HTTP Codes (201)

C1.35c JSON Schema for the "putScoreScale" Operation Response Payload Validation for HTTP Codes (default,401,403,404,422,429,500)

About this Document

List of Contributors

Revision History

toc | top

List of Figures

Table 7.5.1 - OpenAPI JSON Schema description for the "AcadSessionGUIDRefDType" Complex Type.

Table 7.5.2 - OpenAPI JSON Schema description for the "AssessmentLineItemDType" Complex Type.

Table 7.5.3 - OpenAPI JSON Schema description for the "AssessmentLineItemGUIDRefDType" Complex Type.

Table 7.5.4 - OpenAPI JSON Schema description for the "AssessmentLineItemSetDType" Complex Type.

Table 7.5.5 - OpenAPI JSON Schema description for the "AssessmentResultDType" Complex Type.

Table 7.5.6 - OpenAPI JSON Schema description for the "AssessmentResultSetDType" Complex Type.

Table 7.5.7 - OpenAPI JSON Schema description for the "BaseDType" Complex Type.

Table 7.5.8 - OpenAPI JSON Schema description for the "CategoriesSetDType" Complex Type.

Table 7.5.9 - OpenAPI JSON Schema description for the "CategoryDType" Complex Type.

Table 7.5.10 - OpenAPI JSON Schema description for the "CategoryGUIDRefDType" Complex Type.

Table 7.5.11 - OpenAPI JSON Schema description for the "ClassGUIDRefDType" Complex Type.

Table 7.5.12 - OpenAPI JSON Schema description for the "CourseGUIDRefDType" Complex Type.

Table 7.5.13 - OpenAPI JSON Schema description for the "GUIDPairDType" Complex Type.

Table 7.5.14 - OpenAPI JSON Schema description for the "GUIDPairSetDType" Complex Type.

Table 7.5.15 - OpenAPI JSON Schema description for the "GUIDRefDType" Complex Type.

Table 7.5.16 - OpenAPI JSON Schema description for the "LearningObjectiveResultsDType" Complex Type.

Table 7.5.17 - OpenAPI JSON Schema description for the "LearningObjectiveScoreSetDType" Complex Type.

Table 7.5.18 - OpenAPI JSON Schema description for the "LearningObjectiveSetDType" Complex Type.

Table 7.5.19 - OpenAPI JSON Schema description for the "LineItemDType" Complex Type.

Table 7.5.20 - OpenAPI JSON Schema description for the "LineItemGUIDRefDType" Complex Type.

Table 7.5.21 - OpenAPI JSON Schema description for the "LineItemSetDType" Complex Type.

Table 7.5.22 - OpenAPI JSON Schema description for the "MetadataDType" Complex Type.

Table 7.5.23 - OpenAPI JSON Schema description for the "OrgGUIDRefDType" Complex Type.

Table 7.5.24 - OpenAPI JSON Schema description for the "ResultDType" Complex Type.

Table 7.5.25 - OpenAPI JSON Schema description for the "ResultSetDType" Complex Type.

Table 7.5.26 - OpenAPI JSON Schema description for the "ScoreScaleDType" Complex Type.

Table 7.5.27 - OpenAPI JSON Schema description for the "ScoreScaleGUIDRefDType" Complex Type.

Table 7.5.28 - OpenAPI JSON Schema description for the "ScoreScaleSetDType" Complex Type.

Table 7.5.29 - OpenAPI JSON Schema description for the "ScoreScaleValueDType" Complex Type.

Table 7.5.30 - OpenAPI JSON Schema description for the "SingleAssessmentLineItemDType" Complex Type.

Table 7.5.31 - OpenAPI JSON Schema description for the "SingleAssessmentResultDType" Complex Type.

Table 7.5.32 - OpenAPI JSON Schema description for the "SingleCategoryDType" Complex Type.

Table 7.5.33 - OpenAPI JSON Schema description for the "SingleLineItemDType" Complex Type.

Table 7.5.34 - OpenAPI JSON Schema description for the "SingleResultDType" Complex Type.

Table 7.5.35 - OpenAPI JSON Schema description for the "SingleScoreScaleDType" Complex Type.

Table 7.5.36 - OpenAPI JSON Schema description for the "UserGUIDRefDType" Complex Type.

Table 7.5.37 - OpenAPI JSON Schema description for the "imsx_CodeMinorDType" Complex Type.

Table 7.5.38 - OpenAPI JSON Schema description for the "imsx_CodeMinorFieldDType" Complex Type.

Table 7.5.39 - OpenAPI JSON Schema description for the "imsx_StatusInfoDType" Complex Type.

toc | top

List of Tables

Table 2.1 - The Set of REST Endpoint URL-leaf Values.

Table 2.4 - The List of HTTP Codes and Handling for each Endpoint.

Table 4.3.1 "https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.createput" Scope

Table 4.3.2 "https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.delete" Scope

Table 4.3.3 "https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.readonly" Scope

Table 4.3.4 "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook-core.readonly" Scope

Table 4.3.5 "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createpost" Scope

Table 4.3.6 "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createput" Scope

Table 4.3.7 "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.delete" Scope

Table 4.3.8 "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly" Scope

Table 6.51.1 - Tabular representation of the JSON payload for the request message for a "postLineItemsForClass" operation.

Table 6.53.1 - Tabular representation of the JSON payload for the request message for a "postLineItemsForSchool" operation.

Table 6.55.1 - Tabular representation of the JSON payload for the request message for a "postResultsForAcademicSessionForClass" operation.

Table 6.57.1 - Tabular representation of the JSON payload for the request message for a "postResultsForLineItem" operation.

Table 6.59.1 - Tabular representation of the JSON payload for the request message for a "putAssessmentLineItem" operation.

Table 6.61.1 - Tabular representation of the JSON payload for the request message for a "putAssessmentResult" operation.

Table 6.63.1 - Tabular representation of the JSON payload for the request message for a "putCategory" operation.

Table 6.65.1 - Tabular representation of the JSON payload for the request message for a "putLineItem" operation.

Table 6.67.1 - Tabular representation of the JSON payload for the request message for a "putResult" operation.

Table 6.69.1 - Tabular representation of the JSON payload for the request message for a "putScoreScale" operation.

Table 7.1a - The Set of General Information Defined in the OpenAPI(2) Description.

Table 7.1b - The Set of General Information Defined in the OpenAPI(3) Description.

Table 7.2 - The Set of Tags Defined in the OpenAPI Description.

Table 7.3.1 - The Set of OAuth 2.0 Client Credentials Security Information Defined in the OpenAPI Description.

Table 7.4.1 - The Set of HTTP Verbs Permitted on the "/assessmentLineItems" Path.

Table 7.4.2 - The Set of HTTP Verbs Permitted on the "/assessmentLineItems/{sourcedId}" Path.

Table 7.4.3 - The Set of HTTP Verbs Permitted on the "/assessmentResults" Path.

Table 7.4.4 - The Set of HTTP Verbs Permitted on the "/assessmentResults/{sourcedId}" Path.

Table 7.4.5 - The Set of HTTP Verbs Permitted on the "/categories" Path.

Table 7.4.6 - The Set of HTTP Verbs Permitted on the "/categories/{sourcedId}" Path.

Table 7.4.7 - The Set of HTTP Verbs Permitted on the "/classes/{classSourcedId}/academicSessions/{academicSessionSourcedId}/results" Path.

Table 7.4.8 - The Set of HTTP Verbs Permitted on the "/classes/{classSourcedId}/categories" Path.

Table 7.4.9 - The Set of HTTP Verbs Permitted on the "/classes/{classSourcedId}/lineItems" Path.

Table 7.4.10 - The Set of HTTP Verbs Permitted on the "/classes/{classSourcedId}/lineItems/{lineItemSourcedId}/results" Path.

Table 7.4.11 - The Set of HTTP Verbs Permitted on the "/classes/{classSourcedId}/results" Path.

Table 7.4.12 - The Set of HTTP Verbs Permitted on the "/classes/{classSourcedId}/scoreScales" Path.

Table 7.4.13 - The Set of HTTP Verbs Permitted on the "/classes/{classSourcedId}/students/{studentSourcedId}/results" Path.

Table 7.4.14 - The Set of HTTP Verbs Permitted on the "/lineItems" Path.

Table 7.4.15 - The Set of HTTP Verbs Permitted on the "/lineItems/{lineItemSourcedId}/results" Path.

Table 7.4.16 - The Set of HTTP Verbs Permitted on the "/lineItems/{sourcedId}" Path.

Table 7.4.17 - The Set of HTTP Verbs Permitted on the "/results" Path.

Table 7.4.18 - The Set of HTTP Verbs Permitted on the "/results/{sourcedId}" Path.

Table 7.4.19 - The Set of HTTP Verbs Permitted on the "/schools/{schoolSourcedId}/lineItems" Path.

Table 7.4.20 - The Set of HTTP Verbs Permitted on the "/schools/{schoolSourcedId}/scoreScales" Path.

Table 7.4.21 - The Set of HTTP Verbs Permitted on the "/scoreScales" Path.

Table 7.4.22 - The Set of HTTP Verbs Permitted on the "/scoreScales/{sourcedId}" Path.

Table 7.5.1 - OpenAPI JSON Schema description for the "AcadSessionGUIDRefDType" Complex Type.

Table 7.5.2 - OpenAPI JSON Schema description for the "AssessmentLineItemDType" Complex Type.

Table 7.5.3 - OpenAPI JSON Schema description for the "AssessmentLineItemGUIDRefDType" Complex Type.

Table 7.5.4 - OpenAPI JSON Schema description for the "AssessmentLineItemSetDType" Complex Type.

Table 7.5.5 - OpenAPI JSON Schema description for the "AssessmentResultDType" Complex Type.

Table 7.5.6 - OpenAPI JSON Schema description for the "AssessmentResultSetDType" Complex Type.

Table 7.5.7 - OpenAPI JSON Schema description for the "BaseDType" Complex Type.

Table 7.5.8 - OpenAPI JSON Schema description for the "CategoriesSetDType" Complex Type.

Table 7.5.9 - OpenAPI JSON Schema description for the "CategoryDType" Complex Type.

Table 7.5.10 - OpenAPI JSON Schema description for the "CategoryGUIDRefDType" Complex Type.

Table 7.5.11 - OpenAPI JSON Schema description for the "ClassGUIDRefDType" Complex Type.

Table 7.5.12 - OpenAPI JSON Schema description for the "CourseGUIDRefDType" Complex Type.

Table 7.5.13 - OpenAPI JSON Schema description for the "GUIDPairDType" Complex Type.

Table 7.5.14 - OpenAPI JSON Schema description for the "GUIDPairSetDType" Complex Type.

Table 7.5.15 - OpenAPI JSON Schema description for the "GUIDRefDType" Complex Type.

Table 7.5.16 - OpenAPI JSON Schema description for the "LearningObjectiveResultsDType" Complex Type.

Table 7.5.17 - OpenAPI JSON Schema description for the "LearningObjectiveScoreSetDType" Complex Type.

Table 7.5.18 - OpenAPI JSON Schema description for the "LearningObjectiveSetDType" Complex Type.

Table 7.5.19 - OpenAPI JSON Schema description for the "LineItemDType" Complex Type.

Table 7.5.20 - OpenAPI JSON Schema description for the "LineItemGUIDRefDType" Complex Type.

Table 7.5.21 - OpenAPI JSON Schema description for the "LineItemSetDType" Complex Type.

Table 7.5.22 - OpenAPI JSON Schema description for the "MetadataDType" Complex Type.

Table 7.5.23 - OpenAPI JSON Schema description for the "OrgGUIDRefDType" Complex Type.

Table 7.5.24 - OpenAPI JSON Schema description for the "ResultDType" Complex Type.

Table 7.5.25 - OpenAPI JSON Schema description for the "ResultSetDType" Complex Type.

Table 7.5.26 - OpenAPI JSON Schema description for the "ScoreScaleDType" Complex Type.

Table 7.5.27 - OpenAPI JSON Schema description for the "ScoreScaleGUIDRefDType" Complex Type.

Table 7.5.28 - OpenAPI JSON Schema description for the "ScoreScaleSetDType" Complex Type.

Table 7.5.29 - OpenAPI JSON Schema description for the "ScoreScaleValueDType" Complex Type.

Table 7.5.30 - OpenAPI JSON Schema description for the "SingleAssessmentLineItemDType" Complex Type.

Table 7.5.31 - OpenAPI JSON Schema description for the "SingleAssessmentResultDType" Complex Type.

Table 7.5.32 - OpenAPI JSON Schema description for the "SingleCategoryDType" Complex Type.

Table 7.5.33 - OpenAPI JSON Schema description for the "SingleLineItemDType" Complex Type.

Table 7.5.34 - OpenAPI JSON Schema description for the "SingleResultDType" Complex Type.

Table 7.5.35 - OpenAPI JSON Schema description for the "SingleScoreScaleDType" Complex Type.

Table 7.5.36 - OpenAPI JSON Schema description for the "UserGUIDRefDType" Complex Type.

Table 7.5.37 - OpenAPI JSON Schema description for the "imsx_CodeMinorDType" Complex Type.

Table 7.5.38 - OpenAPI JSON Schema description for the "imsx_CodeMinorFieldDType" Complex Type.

Table 7.5.39 - OpenAPI JSON Schema description for the "imsx_StatusInfoDType" 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 A3.1a The key to the tabular description of the OpenAPI(2) general information

Table A3.1b The key to the tabular description of the OpenAPI(3) general information

Table A3.2 The key to the tabular description of the OpenAPI tags information

Table A3.3 The key to the tabular description of the OpenAPI security information.

Table A3.4 The key to the tabular description of the OpenAPI paths information for an HTTP Verb

Table A3.5 The key to the tabular description of the OpenAPI definitions information

toc | top

List of Code Blocks

Code 6.2.2 - JSON payload example for "default, 401, 403, 404, 422, 429, 500" response messages for a "deleteAssessmentLineItem" operation.

Code 6.4.2 - JSON payload example for "default, 401, 403, 404, 422, 429, 500" response messages for a "deleteAssessmentResult" operation.

Code 6.6.2 - JSON payload example for "default, 401, 403, 404, 422, 429, 500" response messages for a "deleteCategory" operation.

Code 6.8.2 - JSON payload example for "default, 401, 403, 404, 422, 429, 500" response messages for a "deleteLineItem" operation.

Code 6.10.2 - JSON payload example for "default, 401, 403, 404, 422, 429, 500" response messages for a "deleteResult" operation.

Code 6.12.2 - JSON payload example for "default, 401, 403, 404, 422, 429, 500" response messages for a "deleteScoreScale" operation.

Code 6.14.1 - JSON payload example for "200" response messages for a "getAllAssessmentLineItems" operation.

Code 6.14.2 - JSON payload example for "default, 400, 401, 403, 422, 429, 500" response messages for a "getAllAssessmentLineItems" operation.

Code 6.16.1 - JSON payload example for "200" response messages for a "getAllAssessmentResults" operation.

Code 6.16.2 - JSON payload example for "default, 400, 401, 403, 422, 429, 500" response messages for a "getAllAssessmentResults" operation.

Code 6.18.1 - JSON payload example for "200" response messages for a "getAllCategories" operation.

Code 6.18.2 - JSON payload example for "default, 400, 401, 403, 422, 429, 500" response messages for a "getAllCategories" operation.

Code 6.20.1 - JSON payload example for "200" response messages for a "getAllLineItems" operation.

Code 6.20.2 - JSON payload example for "default, 400, 401, 403, 422, 429, 500" response messages for a "getAllLineItems" operation.

Code 6.22.1 - JSON payload example for "200" response messages for a "getAllResults" operation.

Code 6.22.2 - JSON payload example for "default, 400, 401, 403, 422, 429, 500" response messages for a "getAllResults" operation.

Code 6.24.1 - JSON payload example for "200" response messages for a "getAllScoreScales" operation.

Code 6.24.2 - JSON payload example for "default, 400, 401, 403, 422, 429, 500" response messages for a "getAllScoreScales" operation.

Code 6.26.1 - JSON payload example for "200" response messages for a "getAssessmentLineItem" operation.

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

Code 6.28.1 - JSON payload example for "200" response messages for a "getAssessmentResult" operation.

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

Code 6.30.1 - JSON payload example for "200" response messages for a "getCategoriesForClass" operation.

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

Code 6.32.1 - JSON payload example for "200" response messages for a "getCategory" operation.

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

Code 6.34.1 - JSON payload example for "200" response messages for a "getLineItem" operation.

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

Code 6.36.1 - JSON payload example for "200" response messages for a "getLineItemsForClass" operation.

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

Code 6.38.1 - JSON payload example for "200" response messages for a "getResult" operation.

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

Code 6.40.1 - JSON payload example for "200" response messages for a "getResultsForClass" operation.

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

Code 6.42.1 - JSON payload example for "200" response messages for a "getResultsForLineItemForClass" operation.

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

Code 6.44.1 - JSON payload example for "200" response messages for a "getResultsForStudentForClass" operation.

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

Code 6.46.1 - JSON payload example for "200" response messages for a "getScoreScale" operation.

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

Code 6.48.1 - JSON payload example for "200" response messages for a "getScoreScalesForClass" operation.

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

Code 6.50.1 - JSON payload example for "200" response messages for a "getScoreScalesForSchool" operation.

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

Code 6.51.1 - JSON payload example for the request message for a "postLineItemsForClass" operation.

Code 6.52.1 - JSON payload example for "201" response messages for a "postLineItemsForClass" operation.

Code 6.52.2 - JSON payload example for "default, 401, 403, 404, 422, 429, 500" response messages for a "postLineItemsForClass" operation.

Code 6.53.1 - JSON payload example for the request message for a "postLineItemsForSchool" operation.

Code 6.54.1 - JSON payload example for "201" response messages for a "postLineItemsForSchool" operation.

Code 6.54.2 - JSON payload example for "default, 401, 403, 404, 422, 429, 500" response messages for a "postLineItemsForSchool" operation.

Code 6.55.1 - JSON payload example for the request message for a "postResultsForAcademicSessionForClass" operation.

Code 6.56.1 - JSON payload example for "201" response messages for a "postResultsForAcademicSessionForClass" operation.

Code 6.56.2 - JSON payload example for "default, 401, 403, 404, 422, 429, 500" response messages for a "postResultsForAcademicSessionForClass" operation.

Code 6.57.1 - JSON payload example for the request message for a "postResultsForLineItem" operation.

Code 6.58.1 - JSON payload example for "201" response messages for a "postResultsForLineItem" operation.

Code 6.58.2 - JSON payload example for "default, 401, 403, 404, 422, 429, 500" response messages for a "postResultsForLineItem" operation.

Code 6.59.1 - JSON payload example for the request message for a "putAssessmentLineItem" operation.

Code 6.60.2 - JSON payload example for "default, 401, 403, 404, 422, 429, 500" response messages for a "putAssessmentLineItem" operation.

Code 6.61.1 - JSON payload example for the request message for a "putAssessmentResult" operation.

Code 6.62.2 - JSON payload example for "default, 401, 403, 404, 422, 429, 500" response messages for a "putAssessmentResult" operation.

Code 6.63.1 - JSON payload example for the request message for a "putCategory" operation.

Code 6.64.2 - JSON payload example for "default, 401, 403, 404, 422, 429, 500" response messages for a "putCategory" operation.

Code 6.65.1 - JSON payload example for the request message for a "putLineItem" operation.

Code 6.66.2 - JSON payload example for "default, 401, 403, 404, 422, 429, 500" response messages for a "putLineItem" operation.

Code 6.67.1 - JSON payload example for the request message for a "putResult" operation.

Code 6.68.2 - JSON payload example for "default, 401, 403, 404, 422, 429, 500" response messages for a "putResult" operation.

Code 6.69.1 - JSON payload example for the request message for a "putScoreScale" operation.

Code 6.70.2 - JSON payload example for "default, 401, 403, 404, 422, 429, 500" response messages for a "putScoreScale" operation.

toc | top

1. Introduction

This Section is NOT NORMATIVE.

1.1. Scope and Context

This document is the OneRoster 1.2 Gradebook Service REST/JSON Binding and as such it is used as the basis for the development of the following documents:

This information model defines the OneRoster Gradebook Abstract Application Programming Interface (a-API). This service model is described using the Unified Modeling Language (UML) based upon the 1EdTech Model Driven Specification approach and the associated modelling toolkit [I-BAT, 06]. This means that this specification is based upon the concepts of:

A key artefact produced as part of the REST/JSON binding description is the associated OpenAPI file based upon the OpenAPI Specification version 2 [OAS, 14] and [OAS, 17] version 3.

1.2. Conventions

All sections marked as non-normative, all authoring guidelines, diagrams (with the exception of the UML diagrams), examples, and notes in this specification are non-normative. Everything else in this specification is normative.

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC 2119]. This means that from the perspective of conformance:

The Conformance and Certification Guide for this specification may introduce greater normative constraints than those defined here for specific service or implementation categories.

The SHOULD/SHOULD NOT/RECOMMENDED statements MUST NOT be used in any document, or section of a document, that is responsible for defining the information model and/or the associated bindings and/or conformance and certification.

1.3. Changes in Gradebook Service 1.2

The set of changes made between OR 1.1 and OR 1.2 with respect to gradebook are:

1.4. Structure of this Document

The structure of the rest of this document is:

2. REST Endpoints An explanation of the relationship between the logical service operations (as defined in the OneRoster Gradebook Service Model) 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. UML to JSON Payload Mapping The description of how the JSON payloads are derived from the equivalent UML data model definitions [OR-GBK-SM-12]. Each UML class and attribute is mapped to the equivalent JSON object and property;
6. 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;
7. 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;
8. Extending and Profiling the Binding 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;
References The set of cited documents, normative and informative, that are used to support the technical details in this document;
Appendix A Model Binding Terms and Concepts 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;
Appendix C JSON Schema Listings The listings of the set of JSON Schema files (based upon IETF JSON Schema Draft 7) that have been created for the validation of the set of JSON payloads that are exchanged as part of this service.

1.5. Nomenclature

API Application Programming Interface
CEDS Common Education Data Standards
GUID Globally Unique Identifier
HTTP Hypertext Transfer Protocol
I-BAT IMS Binding Autogeneration Toolkit
IETF Internet Engineering Task Force
JSON Java Script Object Notation
LIS Learning Information Services
NCES National Centre for Education Statistics
OAS OpenAPI Specification
PII Personally Identifiable Information
REST Representational State Transfer
RFC Request for Comments
TLS Transport Layer Security
UML Unified Modeling Language
URI Uniform Resource Identifier
URL Uniform Resource Locator
UTC Coordinated Universal Time
YAML Yet Another Markup Language

toc | top

2. REST Endpoints

This Section is NORMATIVE.

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
deleteAssessmentLineItem /assessmentLineItems/{sourcedId} DELETE
deleteAssessmentResult /assessmentResults/{sourcedId} DELETE
deleteCategory /categories/{sourcedId} DELETE
deleteLineItem /lineItems/{sourcedId} DELETE
deleteResult /results/{sourcedId} DELETE
deleteScoreScale /scoreScales/{sourcedId} DELETE
getAllAssessmentLineItems /assessmentLineItems GET
getAllAssessmentResults /assessmentResults GET
getAllCategories /categories GET
getAllLineItems /lineItems GET
getAllResults /results GET
getAllScoreScales /scoreScales GET
getAssessmentLineItem /assessmentLineItems/{sourcedId} GET
getAssessmentResult /assessmentResults/{sourcedId} GET
getCategoriesForClass /classes/{classSourcedId}/categories GET
getCategory /categories/{sourcedId} GET
getLineItem /lineItems/{sourcedId} GET
getLineItemsForClass /classes/{classSourcedId}/lineItems GET
getResult /results/{sourcedId} GET
getResultsForClass /classes/{classSourcedId}/results GET
getResultsForLineItemForClass /classes/{classSourcedId}/lineItems/{lineItemSourcedId}/results GET
getResultsForStudentForClass /classes/{classSourcedId}/students/{studentSourcedId}/results GET
getScoreScale /scoreScales/{sourcedId} GET
getScoreScalesForClass /classes/{classSourcedId}/scoreScales GET
getScoreScalesForSchool /schools/{schoolSourcedId}/scoreScales GET
postLineItemsForClass /classes/{classSourcedId}/lineItems POST
postLineItemsForSchool /schools/{schoolSourcedId}/lineItems POST
postResultsForAcademicSessionForClass /classes/{classSourcedId}/academicSessions/{academicSessionSourcedId}/results POST
postResultsForLineItem /lineItems/{lineItemSourcedId}/results POST
putAssessmentLineItem /assessmentLineItems/{sourcedId} PUT
putAssessmentResult /assessmentResults/{sourcedId} PUT
putCategory /categories/{sourcedId} PUT
putLineItem /lineItems/{sourcedId} PUT
putResult /results/{sourcedId} PUT
putScoreScale /scoreScales/{sourcedId} PUT

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/oneroster/gradebook/v1p2".

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 "deleteAssessmentLineItem" Endpoint Query Parameters

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

2.3.2 "deleteAssessmentResult" Endpoint Query Parameters

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

2.3.3 "deleteCategory" Endpoint Query Parameters

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

2.3.4 "deleteLineItem" Endpoint Query Parameters

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

2.3.5 "deleteResult" Endpoint Query Parameters

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

2.3.6 "deleteScoreScale" Endpoint Query Parameters

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

2.3.7 "getAllAssessmentLineItems" Endpoint Query Parameters

2.3.7.1 "limit" Query Parameter

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

Table 2.3.7.1 - The definition of the "limit" query parameter for the "getAllAssessmentLineItems" operation.
Descriptor Definition
Parameter Name limit
Data Type PositiveInteger (Primitive-type)
Value Space See Appendix A1.2.
Default = "100".
Multiplicity [0..1]
Description To define the download segmentation value i.e. the maximum number of records to be contained in the response.

2.3.7.2 "offset" Query Parameter

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

Table 2.3.7.2 - The definition of the "offset" query parameter for the "getAllAssessmentLineItems" operation.
Descriptor Definition
Parameter Name offset
Data Type NonNegativeInteger (Primitive-type)
Value Space See Appendix A1.2.
Default = "0".
Multiplicity [0..1]
Description The number of the first record to be supplied in the segmented response message.

2.3.7.3 "sort" Query Parameter

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

Table 2.3.7.3 - The definition of the "sort" query parameter for the "getAllAssessmentLineItems" operation.
Descriptor Definition
Parameter Name sort
Data Type String (Primitive-type)
Value Space See Appendix A1.2.
Multiplicity [0..1]
Description Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.

2.3.7.4 "orderBy" Query Parameter

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

Table 2.3.7.4 - The definition of the "orderBy" query parameter for the "getAllAssessmentLineItems" operation.
Descriptor Definition
Parameter Name orderBy
Data Type Enumeration
Value Space Enumerated value set of: { asc | desc }
Multiplicity [0..1]
Description The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.

2.3.7.5 "filter" Query Parameter

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

Table 2.3.7.5 - The definition of the "filter" query parameter for the "getAllAssessmentLineItems" operation.
Descriptor Definition
Parameter Name filter
Data Type String (Primitive-type)
Value Space See Appendix A1.2.
Multiplicity [0..1]
Description The filtering rules to be applied when identifying the records to be supplied in the response message.

2.3.7.6 "fields" Query Parameter

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

Table 2.3.7.6 - The definition of the "fields" query parameter for the "getAllAssessmentLineItems" operation.
Descriptor Definition
Parameter Name fields
Data Type String (Primitive-type)
Value Space See Appendix A1.2.
Multiplicity [0..*]
Description To identify the range of fields that should be supplied in the response message.

2.3.8 "getAllAssessmentResults" Endpoint Query Parameters

2.3.8.1 "limit" Query Parameter

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

Table 2.3.8.1 - The definition of the "limit" query parameter for the "getAllAssessmentResults" operation.
Descriptor Definition
Parameter Name limit
Data Type PositiveInteger (Primitive-type)
Value Space See Appendix A1.2.
Default = "100".
Multiplicity [0..1]
Description To define the download segmentation value i.e. the maximum number of records to be contained in the response.

2.3.8.2 "offset" Query Parameter

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

Table 2.3.8.2 - The definition of the "offset" query parameter for the "getAllAssessmentResults" operation.
Descriptor Definition
Parameter Name offset
Data Type NonNegativeInteger (Primitive-type)
Value Space See Appendix A1.2.
Default = "0".
Multiplicity [0..1]
Description The number of the first record to be supplied in the segmented response message.

2.3.8.3 "sort" Query Parameter

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

Table 2.3.8.3 - The definition of the "sort" query parameter for the "getAllAssessmentResults" operation.
Descriptor Definition
Parameter Name sort
Data Type String (Primitive-type)
Value Space See Appendix A1.2.
Multiplicity [0..1]
Description Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.

2.3.8.4 "orderBy" Query Parameter

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

Table 2.3.8.4 - The definition of the "orderBy" query parameter for the "getAllAssessmentResults" operation.
Descriptor Definition
Parameter Name orderBy
Data Type Enumeration
Value Space Enumerated value set of: { asc | desc }
Multiplicity [0..1]
Description The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.

2.3.8.5 "filter" Query Parameter

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

Table 2.3.8.5 - The definition of the "filter" query parameter for the "getAllAssessmentResults" operation.
Descriptor Definition
Parameter Name filter
Data Type String (Primitive-type)
Value Space See Appendix A1.2.
Multiplicity [0..1]
Description The filtering rules to be applied when identifying the records to be supplied in the response message.

2.3.8.6 "fields" Query Parameter

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

Table 2.3.8.6 - The definition of the "fields" query parameter for the "getAllAssessmentResults" operation.
Descriptor Definition
Parameter Name fields
Data Type String (Primitive-type)
Value Space See Appendix A1.2.
Multiplicity [0..*]
Description To identify the range of fields that should be supplied in the response message.

2.3.9 "getAllCategories" Endpoint Query Parameters

2.3.9.1 "limit" Query Parameter

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

Table 2.3.9.1 - The definition of the "limit" query parameter for the "getAllCategories" operation.
Descriptor Definition
Parameter Name limit
Data Type PositiveInteger (Primitive-type)
Value Space See Appendix A1.2.
Default = "100".
Multiplicity [0..1]
Description To define the download segmentation value i.e. the maximum number of records to be contained in the response.

2.3.9.2 "offset" Query Parameter

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

Table 2.3.9.2 - The definition of the "offset" query parameter for the "getAllCategories" operation.
Descriptor Definition
Parameter Name offset
Data Type NonNegativeInteger (Primitive-type)
Value Space See Appendix A1.2.
Default = "0".
Multiplicity [0..1]
Description The number of the first record to be supplied in the segmented response message.

2.3.9.3 "sort" Query Parameter

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

Table 2.3.9.3 - The definition of the "sort" query parameter for the "getAllCategories" operation.
Descriptor Definition
Parameter Name sort
Data Type String (Primitive-type)
Value Space See Appendix A1.2.
Multiplicity [0..1]
Description Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.

2.3.9.4 "orderBy" Query Parameter

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

Table 2.3.9.4 - The definition of the "orderBy" query parameter for the "getAllCategories" operation.
Descriptor Definition
Parameter Name orderBy
Data Type Enumeration
Value Space Enumerated value set of: { asc | desc }
Multiplicity [0..1]
Description The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.

2.3.9.5 "filter" Query Parameter

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

Table 2.3.9.5 - The definition of the "filter" query parameter for the "getAllCategories" operation.
Descriptor Definition
Parameter Name filter
Data Type String (Primitive-type)
Value Space See Appendix A1.2.
Multiplicity [0..1]
Description The filtering rules to be applied when identifying the records to be supplied in the response message.

2.3.9.6 "fields" Query Parameter

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

Table 2.3.9.6 - The definition of the "fields" query parameter for the "getAllCategories" operation.
Descriptor Definition
Parameter Name fields
Data Type String (Primitive-type)
Value Space See Appendix A1.2.
Multiplicity [0..*]
Description To identify the range of fields that should be supplied in the response message.

2.3.10 "getAllLineItems" Endpoint Query Parameters

2.3.10.1 "limit" Query Parameter

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

Table 2.3.10.1 - The definition of the "limit" query parameter for the "getAllLineItems" operation.
Descriptor Definition
Parameter Name limit
Data Type PositiveInteger (Primitive-type)
Value Space See Appendix A1.2.
Default = "100".
Multiplicity [0..1]
Description To define the download segmentation value i.e. the maximum number of records to be contained in the response.

2.3.10.2 "offset" Query Parameter

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

Table 2.3.10.2 - The definition of the "offset" query parameter for the "getAllLineItems" operation.
Descriptor Definition
Parameter Name offset
Data Type NonNegativeInteger (Primitive-type)
Value Space See Appendix A1.2.
Default = "0".
Multiplicity [0..1]
Description The number of the first record to be supplied in the segmented response message.

2.3.10.3 "sort" Query Parameter

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

Table 2.3.10.3 - The definition of the "sort" query parameter for the "getAllLineItems" operation.
Descriptor Definition
Parameter Name sort
Data Type String (Primitive-type)
Value Space See Appendix A1.2.
Multiplicity [0..1]
Description Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.

2.3.10.4 "orderBy" Query Parameter

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

Table 2.3.10.4 - The definition of the "orderBy" query parameter for the "getAllLineItems" operation.
Descriptor Definition
Parameter Name orderBy
Data Type Enumeration
Value Space Enumerated value set of: { asc | desc }
Multiplicity [0..1]
Description The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.

2.3.10.5 "filter" Query Parameter

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

Table 2.3.10.5 - The definition of the "filter" query parameter for the "getAllLineItems" operation.
Descriptor Definition
Parameter Name filter
Data Type String (Primitive-type)
Value Space See Appendix A1.2.
Multiplicity [0..1]
Description The filtering rules to be applied when identifying the records to be supplied in the response message.

2.3.10.6 "fields" Query Parameter

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

Table 2.3.10.6 - The definition of the "fields" query parameter for the "getAllLineItems" operation.
Descriptor Definition
Parameter Name fields
Data Type String (Primitive-type)
Value Space See Appendix A1.2.
Multiplicity [0..*]
Description To identify the range of fields that should be supplied in the response message.

2.3.11 "getAllResults" Endpoint Query Parameters

2.3.11.1 "limit" Query Parameter

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

Table 2.3.11.1 - The definition of the "limit" query parameter for the "getAllResults" operation.
Descriptor Definition
Parameter Name limit
Data Type PositiveInteger (Primitive-type)
Value Space See Appendix A1.2.
Default = "100".
Multiplicity [0..1]
Description To define the download segmentation value i.e. the maximum number of records to be contained in the response.

2.3.11.2 "offset" Query Parameter

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

Table 2.3.11.2 - The definition of the "offset" query parameter for the "getAllResults" operation.
Descriptor Definition
Parameter Name offset
Data Type NonNegativeInteger (Primitive-type)
Value Space See Appendix A1.2.
Default = "0".
Multiplicity [0..1]
Description The number of the first record to be supplied in the segmented response message.

2.3.11.3 "sort" Query Parameter

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

Table 2.3.11.3 - The definition of the "sort" query parameter for the "getAllResults" operation.
Descriptor Definition
Parameter Name sort
Data Type String (Primitive-type)
Value Space See Appendix A1.2.
Multiplicity [0..1]
Description Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.

2.3.11.4 "orderBy" Query Parameter

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

Table 2.3.11.4 - The definition of the "orderBy" query parameter for the "getAllResults" operation.
Descriptor Definition
Parameter Name orderBy
Data Type Enumeration
Value Space Enumerated value set of: { asc | desc }
Multiplicity [0..1]
Description The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.

2.3.11.5 "filter" Query Parameter

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

Table 2.3.11.5 - The definition of the "filter" query parameter for the "getAllResults" operation.
Descriptor Definition
Parameter Name filter
Data Type String (Primitive-type)
Value Space See Appendix A1.2.
Multiplicity [0..1]
Description The filtering rules to be applied when identifying the records to be supplied in the response message.

2.3.11.6 "fields" Query Parameter

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

Table 2.3.11.6 - The definition of the "fields" query parameter for the "getAllResults" operation.
Descriptor Definition
Parameter Name fields
Data Type String (Primitive-type)
Value Space See Appendix A1.2.
Multiplicity [0..*]
Description To identify the range of fields that should be supplied in the response message.

2.3.12 "getAllScoreScales" Endpoint Query Parameters

2.3.12.1 "limit" Query Parameter

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

Table 2.3.12.1 - The definition of the "limit" query parameter for the "getAllScoreScales" operation.
Descriptor Definition
Parameter Name limit
Data Type PositiveInteger (Primitive-type)
Value Space See Appendix A1.2.
Default = "100".
Multiplicity [0..1]
Description To define the download segmentation value i.e. the maximum number of records to be contained in the response.

2.3.12.2 "offset" Query Parameter

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

Table 2.3.12.2 - The definition of the "offset" query parameter for the "getAllScoreScales" operation.
Descriptor Definition
Parameter Name offset
Data Type NonNegativeInteger (Primitive-type)
Value Space See Appendix A1.2.
Default = "0".
Multiplicity [0..1]
Description The number of the first record to be supplied in the segmented response message.

2.3.12.3 "sort" Query Parameter

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

Table 2.3.12.3 - The definition of the "sort" query parameter for the "getAllScoreScales" operation.
Descriptor Definition
Parameter Name sort
Data Type String (Primitive-type)
Value Space See Appendix A1.2.
Multiplicity [0..1]
Description Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.

2.3.12.4 "orderBy" Query Parameter

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

Table 2.3.12.4 - The definition of the "orderBy" query parameter for the "getAllScoreScales" operation.
Descriptor Definition
Parameter Name orderBy
Data Type Enumeration
Value Space Enumerated value set of: { asc | desc }
Multiplicity [0..1]
Description The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.

2.3.12.5 "filter" Query Parameter

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

Table 2.3.12.5 - The definition of the "filter" query parameter for the "getAllScoreScales" operation.
Descriptor Definition
Parameter Name filter
Data Type String (Primitive-type)
Value Space See Appendix A1.2.
Multiplicity [0..1]
Description The filtering rules to be applied when identifying the records to be supplied in the response message.

2.3.12.6 "fields" Query Parameter

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

Table 2.3.12.6 - The definition of the "fields" query parameter for the "getAllScoreScales" operation.
Descriptor Definition
Parameter Name fields
Data Type String (Primitive-type)
Value Space See Appendix A1.2.
Multiplicity [0..*]
Description To identify the range of fields that should be supplied in the response message.

2.3.13 "getAssessmentLineItem" Endpoint Query Parameters

2.3.13.1 "fields" Query Parameter

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

Table 2.3.13.1 - The definition of the "fields" query parameter for the "getAssessmentLineItem" operation.
Descriptor Definition
Parameter Name fields
Data Type String (Primitive-type)
Value Space See Appendix A1.2.
Multiplicity [0..*]
Description To identify the range of fields that should be supplied in the response message.

2.3.14 "getAssessmentResult" Endpoint Query Parameters

2.3.14.1 "fields" Query Parameter

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

Table 2.3.14.1 - The definition of the "fields" query parameter for the "getAssessmentResult" operation.
Descriptor Definition
Parameter Name fields
Data Type String (Primitive-type)
Value Space See Appendix A1.2.
Multiplicity [0..*]
Description To identify the range of fields that should be supplied in the response message.

2.3.15 "getCategoriesForClass" Endpoint Query Parameters

2.3.15.1 "limit" Query Parameter

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

Table 2.3.15.1 - The definition of the "limit" query parameter for the "getCategoriesForClass" operation.
Descriptor Definition
Parameter Name limit
Data Type PositiveInteger (Primitive-type)
Value Space See Appendix A1.2.
Default = "100".
Multiplicity [0..1]
Description To define the download segmentation value i.e. the maximum number of records to be contained in the response.

2.3.15.2 "offset" Query Parameter

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

Table 2.3.15.2 - The definition of the "offset" query parameter for the "getCategoriesForClass" operation.
Descriptor Definition
Parameter Name offset
Data Type NonNegativeInteger (Primitive-type)
Value Space See Appendix A1.2.
Default = "0".
Multiplicity [0..1]
Description The number of the first record to be supplied in the segmented response message.

2.3.15.3 "sort" Query Parameter

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

Table 2.3.15.3 - The definition of the "sort" query parameter for the "getCategoriesForClass" operation.
Descriptor Definition
Parameter Name sort
Data Type String (Primitive-type)
Value Space See Appendix A1.2.
Multiplicity [0..1]
Description Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.

2.3.15.4 "orderBy" Query Parameter

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

Table 2.3.15.4 - The definition of the "orderBy" query parameter for the "getCategoriesForClass" operation.
Descriptor Definition
Parameter Name orderBy
Data Type Enumeration
Value Space Enumerated value set of: { asc | desc }
Multiplicity [0..1]
Description The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.

2.3.15.5 "filter" Query Parameter

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

Table 2.3.15.5 - The definition of the "filter" query parameter for the "getCategoriesForClass" operation.
Descriptor Definition
Parameter Name filter
Data Type String (Primitive-type)
Value Space See Appendix A1.2.
Multiplicity [0..1]
Description The filtering rules to be applied when identifying the records to be supplied in the response message.

2.3.15.6 "fields" Query Parameter

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

Table 2.3.15.6 - The definition of the "fields" query parameter for the "getCategoriesForClass" operation.
Descriptor Definition
Parameter Name fields
Data Type String (Primitive-type)
Value Space See Appendix A1.2.
Multiplicity [0..*]
Description To identify the range of fields that should be supplied in the response message.

2.3.16 "getCategory" Endpoint Query Parameters

2.3.16.1 "fields" Query Parameter

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

Table 2.3.16.1 - The definition of the "fields" query parameter for the "getCategory" operation.
Descriptor Definition
Parameter Name fields
Data Type String (Primitive-type)
Value Space See Appendix A1.2.
Multiplicity [0..*]
Description To identify the range of fields that should be supplied in the response message.

2.3.17 "getLineItem" Endpoint Query Parameters

2.3.17.1 "fields" Query Parameter

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

Table 2.3.17.1 - The definition of the "fields" query parameter for the "getLineItem" operation.
Descriptor Definition
Parameter Name fields
Data Type String (Primitive-type)
Value Space See Appendix A1.2.
Multiplicity [0..*]
Description To identify the range of fields that should be supplied in the response message.

2.3.18 "getLineItemsForClass" Endpoint Query Parameters

2.3.18.1 "limit" Query Parameter

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

Table 2.3.18.1 - The definition of the "limit" query parameter for the "getLineItemsForClass" operation.
Descriptor Definition
Parameter Name limit
Data Type PositiveInteger (Primitive-type)
Value Space See Appendix A1.2.
Default = "100".
Multiplicity [0..1]
Description To define the download segmentation value i.e. the maximum number of records to be contained in the response.

2.3.18.2 "offset" Query Parameter

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

Table 2.3.18.2 - The definition of the "offset" query parameter for the "getLineItemsForClass" operation.
Descriptor Definition
Parameter Name offset
Data Type NonNegativeInteger (Primitive-type)
Value Space See Appendix A1.2.
Default = "0".
Multiplicity [0..1]
Description The number of the first record to be supplied in the segmented response message.

2.3.18.3 "sort" Query Parameter

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

Table 2.3.18.3 - The definition of the "sort" query parameter for the "getLineItemsForClass" operation.
Descriptor Definition
Parameter Name sort
Data Type String (Primitive-type)
Value Space See Appendix A1.2.
Multiplicity [0..1]
Description Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.

2.3.18.4 "orderBy" Query Parameter

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

Table 2.3.18.4 - The definition of the "orderBy" query parameter for the "getLineItemsForClass" operation.
Descriptor Definition
Parameter Name orderBy
Data Type Enumeration
Value Space Enumerated value set of: { asc | desc }
Multiplicity [0..1]
Description The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.

2.3.18.5 "filter" Query Parameter

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

Table 2.3.18.5 - The definition of the "filter" query parameter for the "getLineItemsForClass" operation.
Descriptor Definition
Parameter Name filter
Data Type String (Primitive-type)
Value Space See Appendix A1.2.
Multiplicity [0..1]
Description The filtering rules to be applied when identifying the records to be supplied in the response message.

2.3.18.6 "fields" Query Parameter

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

Table 2.3.18.6 - The definition of the "fields" query parameter for the "getLineItemsForClass" operation.
Descriptor Definition
Parameter Name fields
Data Type String (Primitive-type)
Value Space See Appendix A1.2.
Multiplicity [0..*]
Description To identify the range of fields that should be supplied in the response message.

2.3.19 "getResult" Endpoint Query Parameters

2.3.19.1 "fields" Query Parameter

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

Table 2.3.19.1 - The definition of the "fields" query parameter for the "getResult" operation.
Descriptor Definition
Parameter Name fields
Data Type String (Primitive-type)
Value Space See Appendix A1.2.
Multiplicity [0..*]
Description To identify the range of fields that should be supplied in the response message.

2.3.20 "getResultsForClass" Endpoint Query Parameters

2.3.20.1 "limit" Query Parameter

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

Table 2.3.20.1 - The definition of the "limit" query parameter for the "getResultsForClass" operation.
Descriptor Definition
Parameter Name limit
Data Type PositiveInteger (Primitive-type)
Value Space See Appendix A1.2.
Default = "100".
Multiplicity [0..1]
Description To define the download segmentation value i.e. the maximum number of records to be contained in the response.

2.3.20.2 "offset" Query Parameter

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

Table 2.3.20.2 - The definition of the "offset" query parameter for the "getResultsForClass" operation.
Descriptor Definition
Parameter Name offset
Data Type NonNegativeInteger (Primitive-type)
Value Space See Appendix A1.2.
Default = "0".
Multiplicity [0..1]
Description The number of the first record to be supplied in the segmented response message.

2.3.20.3 "sort" Query Parameter

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

Table 2.3.20.3 - The definition of the "sort" query parameter for the "getResultsForClass" operation.
Descriptor Definition
Parameter Name sort
Data Type String (Primitive-type)
Value Space See Appendix A1.2.
Multiplicity [0..1]
Description Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.

2.3.20.4 "orderBy" Query Parameter

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

Table 2.3.20.4 - The definition of the "orderBy" query parameter for the "getResultsForClass" operation.
Descriptor Definition
Parameter Name orderBy
Data Type Enumeration
Value Space Enumerated value set of: { asc | desc }
Multiplicity [0..1]
Description The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.

2.3.20.5 "filter" Query Parameter

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

Table 2.3.20.5 - The definition of the "filter" query parameter for the "getResultsForClass" operation.
Descriptor Definition
Parameter Name filter
Data Type String (Primitive-type)
Value Space See Appendix A1.2.
Multiplicity [0..1]
Description The filtering rules to be applied when identifying the records to be supplied in the response message.

2.3.20.6 "fields" Query Parameter

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

Table 2.3.20.6 - The definition of the "fields" query parameter for the "getResultsForClass" operation.
Descriptor Definition
Parameter Name fields
Data Type String (Primitive-type)
Value Space See Appendix A1.2.
Multiplicity [0..*]
Description To identify the range of fields that should be supplied in the response message.

2.3.21 "getResultsForLineItemForClass" Endpoint Query Parameters

2.3.21.1 "limit" Query Parameter

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

Table 2.3.21.1 - The definition of the "limit" query parameter for the "getResultsForLineItemForClass" operation.
Descriptor Definition
Parameter Name limit
Data Type PositiveInteger (Primitive-type)
Value Space See Appendix A1.2.
Default = "100".
Multiplicity [0..1]
Description To define the download segmentation value i.e. the maximum number of records to be contained in the response.

2.3.21.2 "offset" Query Parameter

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

Table 2.3.21.2 - The definition of the "offset" query parameter for the "getResultsForLineItemForClass" operation.
Descriptor Definition
Parameter Name offset
Data Type NonNegativeInteger (Primitive-type)
Value Space See Appendix A1.2.
Default = "0".
Multiplicity [0..1]
Description The number of the first record to be supplied in the segmented response message.

2.3.21.3 "sort" Query Parameter

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

Table 2.3.21.3 - The definition of the "sort" query parameter for the "getResultsForLineItemForClass" operation.
Descriptor Definition
Parameter Name sort
Data Type String (Primitive-type)
Value Space See Appendix A1.2.
Multiplicity [0..1]
Description Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.

2.3.21.4 "orderBy" Query Parameter

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

Table 2.3.21.4 - The definition of the "orderBy" query parameter for the "getResultsForLineItemForClass" operation.
Descriptor Definition
Parameter Name orderBy
Data Type Enumeration
Value Space Enumerated value set of: { asc | desc }
Multiplicity [0..1]
Description The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.

2.3.21.5 "filter" Query Parameter

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

Table 2.3.21.5 - The definition of the "filter" query parameter for the "getResultsForLineItemForClass" operation.
Descriptor Definition
Parameter Name filter
Data Type String (Primitive-type)
Value Space See Appendix A1.2.
Multiplicity [0..1]
Description The filtering rules to be applied when identifying the records to be supplied in the response message.

2.3.21.6 "fields" Query Parameter

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

Table 2.3.21.6 - The definition of the "fields" query parameter for the "getResultsForLineItemForClass" operation.
Descriptor Definition
Parameter Name fields
Data Type String (Primitive-type)
Value Space See Appendix A1.2.
Multiplicity [0..*]
Description To identify the range of fields that should be supplied in the response message.

2.3.22 "getResultsForStudentForClass" Endpoint Query Parameters

2.3.22.1 "limit" Query Parameter

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

Table 2.3.22.1 - The definition of the "limit" query parameter for the "getResultsForStudentForClass" operation.
Descriptor Definition
Parameter Name limit
Data Type PositiveInteger (Primitive-type)
Value Space See Appendix A1.2.
Default = "100".
Multiplicity [0..1]
Description To define the download segmentation value i.e. the maximum number of records to be contained in the response.

2.3.22.2 "offset" Query Parameter

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

Table 2.3.22.2 - The definition of the "offset" query parameter for the "getResultsForStudentForClass" operation.
Descriptor Definition
Parameter Name offset
Data Type NonNegativeInteger (Primitive-type)
Value Space See Appendix A1.2.
Default = "0".
Multiplicity [0..1]
Description The number of the first record to be supplied in the segmented response message.

2.3.22.3 "sort" Query Parameter

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

Table 2.3.22.3 - The definition of the "sort" query parameter for the "getResultsForStudentForClass" operation.
Descriptor Definition
Parameter Name sort
Data Type String (Primitive-type)
Value Space See Appendix A1.2.
Multiplicity [0..1]
Description Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.

2.3.22.4 "orderBy" Query Parameter

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

Table 2.3.22.4 - The definition of the "orderBy" query parameter for the "getResultsForStudentForClass" operation.
Descriptor Definition
Parameter Name orderBy
Data Type Enumeration
Value Space Enumerated value set of: { asc | desc }
Multiplicity [0..1]
Description The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.

2.3.22.5 "filter" Query Parameter

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

Table 2.3.22.5 - The definition of the "filter" query parameter for the "getResultsForStudentForClass" operation.
Descriptor Definition
Parameter Name filter
Data Type String (Primitive-type)
Value Space See Appendix A1.2.
Multiplicity [0..1]
Description The filtering rules to be applied when identifying the records to be supplied in the response message.

2.3.22.6 "fields" Query Parameter

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

Table 2.3.22.6 - The definition of the "fields" query parameter for the "getResultsForStudentForClass" operation.
Descriptor Definition
Parameter Name fields
Data Type String (Primitive-type)
Value Space See Appendix A1.2.
Multiplicity [0..*]
Description To identify the range of fields that should be supplied in the response message.

2.3.23 "getScoreScale" Endpoint Query Parameters

2.3.23.1 "fields" Query Parameter

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

Table 2.3.23.1 - The definition of the "fields" query parameter for the "getScoreScale" operation.
Descriptor Definition
Parameter Name fields
Data Type String (Primitive-type)
Value Space See Appendix A1.2.
Multiplicity [0..*]
Description To identify the range of fields that should be supplied in the response message.

2.3.24 "getScoreScalesForClass" Endpoint Query Parameters

2.3.24.1 "limit" Query Parameter

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

Table 2.3.24.1 - The definition of the "limit" query parameter for the "getScoreScalesForClass" operation.
Descriptor Definition
Parameter Name limit
Data Type PositiveInteger (Primitive-type)
Value Space See Appendix A1.2.
Default = "100".
Multiplicity [0..1]
Description To define the download segmentation value i.e. the maximum number of records to be contained in the response.

2.3.24.2 "offset" Query Parameter

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

Table 2.3.24.2 - The definition of the "offset" query parameter for the "getScoreScalesForClass" operation.
Descriptor Definition
Parameter Name offset
Data Type NonNegativeInteger (Primitive-type)
Value Space See Appendix A1.2.
Default = "0".
Multiplicity [0..1]
Description The number of the first record to be supplied in the segmented response message.

2.3.24.3 "sort" Query Parameter

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

Table 2.3.24.3 - The definition of the "sort" query parameter for the "getScoreScalesForClass" operation.
Descriptor Definition
Parameter Name sort
Data Type String (Primitive-type)
Value Space See Appendix A1.2.
Multiplicity [0..1]
Description Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.

2.3.24.4 "orderBy" Query Parameter

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

Table 2.3.24.4 - The definition of the "orderBy" query parameter for the "getScoreScalesForClass" operation.
Descriptor Definition
Parameter Name orderBy
Data Type Enumeration
Value Space Enumerated value set of: { asc | desc }
Multiplicity [0..1]
Description The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.

2.3.24.5 "filter" Query Parameter

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

Table 2.3.24.5 - The definition of the "filter" query parameter for the "getScoreScalesForClass" operation.
Descriptor Definition
Parameter Name filter
Data Type String (Primitive-type)
Value Space See Appendix A1.2.
Multiplicity [0..1]
Description The filtering rules to be applied when identifying the records to be supplied in the response message.

2.3.24.6 "fields" Query Parameter

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

Table 2.3.24.6 - The definition of the "fields" query parameter for the "getScoreScalesForClass" operation.
Descriptor Definition
Parameter Name fields
Data Type String (Primitive-type)
Value Space See Appendix A1.2.
Multiplicity [0..*]
Description To identify the range of fields that should be supplied in the response message.

2.3.25 "getScoreScalesForSchool" Endpoint Query Parameters

2.3.25.1 "limit" Query Parameter

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

Table 2.3.25.1 - The definition of the "limit" query parameter for the "getScoreScalesForSchool" operation.
Descriptor Definition
Parameter Name limit
Data Type PositiveInteger (Primitive-type)
Value Space See Appendix A1.2.
Default = "100".
Multiplicity [0..1]
Description To define the download segmentation value i.e. the maximum number of records to be contained in the response.

2.3.25.2 "offset" Query Parameter

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

Table 2.3.25.2 - The definition of the "offset" query parameter for the "getScoreScalesForSchool" operation.
Descriptor Definition
Parameter Name offset
Data Type NonNegativeInteger (Primitive-type)
Value Space See Appendix A1.2.
Default = "0".
Multiplicity [0..1]
Description The number of the first record to be supplied in the segmented response message.

2.3.25.3 "sort" Query Parameter

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

Table 2.3.25.3 - The definition of the "sort" query parameter for the "getScoreScalesForSchool" operation.
Descriptor Definition
Parameter Name sort
Data Type String (Primitive-type)
Value Space See Appendix A1.2.
Multiplicity [0..1]
Description Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.

2.3.25.4 "orderBy" Query Parameter

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

Table 2.3.25.4 - The definition of the "orderBy" query parameter for the "getScoreScalesForSchool" operation.
Descriptor Definition
Parameter Name orderBy
Data Type Enumeration
Value Space Enumerated value set of: { asc | desc }
Multiplicity [0..1]
Description The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.

2.3.25.5 "filter" Query Parameter

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

Table 2.3.25.5 - The definition of the "filter" query parameter for the "getScoreScalesForSchool" operation.
Descriptor Definition
Parameter Name filter
Data Type String (Primitive-type)
Value Space See Appendix A1.2.
Multiplicity [0..1]
Description The filtering rules to be applied when identifying the records to be supplied in the response message.

2.3.25.6 "fields" Query Parameter

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

Table 2.3.25.6 - The definition of the "fields" query parameter for the "getScoreScalesForSchool" operation.
Descriptor Definition
Parameter Name fields
Data Type String (Primitive-type)
Value Space See Appendix A1.2.
Multiplicity [0..*]
Description To identify the range of fields that should be supplied in the response message.

2.3.26 "postLineItemsForClass" Endpoint Query Parameters

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

2.3.27 "postLineItemsForSchool" Endpoint Query Parameters

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

2.3.28 "postResultsForAcademicSessionForClass" Endpoint Query Parameters

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

2.3.29 "postResultsForLineItem" Endpoint Query Parameters

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

2.3.30 "putAssessmentLineItem" Endpoint Query Parameters

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

2.3.31 "putAssessmentResult" Endpoint Query Parameters

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

2.3.32 "putCategory" Endpoint Query Parameters

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

2.3.33 "putLineItem" Endpoint Query Parameters

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

2.3.34 "putResult" Endpoint Query Parameters

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

2.3.35 "putScoreScale" Endpoint Query Parameters

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

2.4 HTTP Code Handling

A service provider will either return a data payload or a payload that indicates the cause of the failure. The list of HTTP 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 HTTP Codes and Handling for each Endpoint.
REST Endpoint HTTP Verb HTTP Codes and Handling
/assessmentLineItems GET
  • 200 - the request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'. The payload is defined by the structure AssessmentLineItemSetDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
  • 401 - the request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
  • 422 - this error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
/assessmentLineItems/{sourcedId} GET
  • 200 - the request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'. The payload is defined by the structure SingleAssessmentLineItemDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
  • 401 - the request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
  • 404 - either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. The payload is defined by the structure imsx_StatusInfoDType.
  • 422 - this error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
/assessmentLineItems/{sourcedId} DELETE
  • 204 - the object has been successfully deleted. There is no payload in the response message.
  • 401 - the request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
  • 404 - either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. The payload is defined by the structure imsx_StatusInfoDType.
  • 422 - this error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
/assessmentLineItems/{sourcedId} PUT
  • 201 - the object has been successfully stored in the Service Provider repository. There is no payload in the response message.
  • 401 - the request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
  • 404 - either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. The payload is defined by the structure imsx_StatusInfoDType.
  • 422 - this error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
/assessmentResults GET
  • 200 - the request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'. The payload is defined by the structure AssessmentResultSetDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
  • 401 - the request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
  • 422 - this error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
/assessmentResults/{sourcedId} GET
  • 200 - the request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'. The payload is defined by the structure SingleAssessmentResultDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
  • 401 - the request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
  • 404 - either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. The payload is defined by the structure imsx_StatusInfoDType.
  • 422 - this error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
/assessmentResults/{sourcedId} DELETE
  • 204 - the object has been successfully deleted. There is no payload in the response message.
  • 401 - the request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
  • 404 - either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. The payload is defined by the structure imsx_StatusInfoDType.
  • 422 - this error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
/assessmentResults/{sourcedId} PUT
  • 201 - the object has been successfully stored in the Service Provider repository. There is no payload in the response message.
  • 401 - the request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
  • 404 - either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. The payload is defined by the structure imsx_StatusInfoDType.
  • 422 - this error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
/categories GET
  • 200 - the request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'. The payload is defined by the structure CategoriesSetDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
  • 401 - the request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
  • 422 - this error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
/categories/{sourcedId} GET
  • 200 - the request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'. The payload is defined by the structure SingleCategoryDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
  • 401 - the request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
  • 404 - either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. The payload is defined by the structure imsx_StatusInfoDType.
  • 422 - this error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
/categories/{sourcedId} DELETE
  • 204 - the object has been successfully deleted. There is no payload in the response message.
  • 401 - the request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
  • 404 - either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. The payload is defined by the structure imsx_StatusInfoDType.
  • 422 - this error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
/categories/{sourcedId} PUT
  • 201 - the object has been successfully stored in the Service Provider repository. There is no payload in the response message.
  • 401 - the request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
  • 404 - either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. The payload is defined by the structure imsx_StatusInfoDType.
  • 422 - this error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
/classes/{classSourcedId}/results GET
  • 200 - the request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'. The payload is defined by the structure ResultSetDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
  • 401 - the request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
  • 404 - either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. The payload is defined by the structure imsx_StatusInfoDType.
  • 422 - this error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
/classes/{classSourcedId}/lineItems GET
  • 200 - the request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'. The payload is defined by the structure LineItemSetDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
  • 401 - the request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
  • 404 - either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. The payload is defined by the structure imsx_StatusInfoDType.
  • 422 - this error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
/classes/{classSourcedId}/lineItems/{lineItemSourcedId}/results GET
  • 200 - the request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'. The payload is defined by the structure ResultSetDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
  • 401 - the request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
  • 404 - either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. The payload is defined by the structure imsx_StatusInfoDType.
  • 422 - this error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
/classes/{classSourcedId}/students/{studentSourcedId}/results GET
  • 200 - the request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'. The payload is defined by the structure ResultSetDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
  • 401 - the request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
  • 404 - either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. The payload is defined by the structure imsx_StatusInfoDType.
  • 422 - this error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
/classes/{classSourcedId}/categories GET
  • 200 - the request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'. The payload is defined by the structure CategoriesSetDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
  • 401 - the request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
  • 404 - either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. The payload is defined by the structure imsx_StatusInfoDType.
  • 422 - this error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
/classes/{classSourcedId}/scoreScales GET
  • 200 - the request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'. The payload is defined by the structure ScoreScaleSetDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
  • 401 - the request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
  • 404 - either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. The payload is defined by the structure imsx_StatusInfoDType.
  • 422 - this error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
/classes/{classSourcedId}/academicSessions/{academicSessionSourcedId}/results POST
  • 201 - the object has been successfully stored in the Service Provider repository. The payload is defined by the structure GUIDPairSetDType.
  • 401 - the request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
  • 404 - either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. The payload is defined by the structure imsx_StatusInfoDType.
  • 422 - this error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
/classes/{classSourcedId}/lineItems POST
  • 201 - the object has been successfully stored in the Service Provider repository. The payload is defined by the structure GUIDPairSetDType.
  • 401 - the request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
  • 404 - either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. The payload is defined by the structure imsx_StatusInfoDType.
  • 422 - this error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
/lineItems GET
  • 200 - the request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'. The payload is defined by the structure LineItemSetDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
  • 401 - the request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
  • 422 - this error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
/lineItems/{sourcedId} GET
  • 200 - the request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'. The payload is defined by the structure SingleLineItemDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
  • 401 - the request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
  • 404 - either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. The payload is defined by the structure imsx_StatusInfoDType.
  • 422 - this error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
/lineItems/{sourcedId} DELETE
  • 204 - the object has been successfully deleted. There is no payload in the response message.
  • 401 - the request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
  • 404 - either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. The payload is defined by the structure imsx_StatusInfoDType.
  • 422 - this error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
/lineItems/{sourcedId} PUT
  • 201 - the object has been successfully stored in the Service Provider repository. There is no payload in the response message.
  • 401 - the request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
  • 404 - either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. The payload is defined by the structure imsx_StatusInfoDType.
  • 422 - this error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
/lineItems/{lineItemSourcedId}/results POST
  • 201 - the object has been successfully stored in the Service Provider repository. The payload is defined by the structure GUIDPairSetDType.
  • 401 - the request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
  • 404 - either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. The payload is defined by the structure imsx_StatusInfoDType.
  • 422 - this error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
/results GET
  • 200 - the request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'. The payload is defined by the structure ResultSetDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
  • 401 - the request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
  • 422 - this error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
/results/{sourcedId} GET
  • 200 - the request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'. The payload is defined by the structure SingleResultDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
  • 401 - the request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
  • 404 - either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. The payload is defined by the structure imsx_StatusInfoDType.
  • 422 - this error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
/results/{sourcedId} DELETE
  • 204 - the object has been successfully deleted. There is no payload in the response message.
  • 401 - the request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
  • 404 - either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. The payload is defined by the structure imsx_StatusInfoDType.
  • 422 - this error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
/results/{sourcedId} PUT
  • 201 - the object has been successfully stored in the Service Provider repository. There is no payload in the response message.
  • 401 - the request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
  • 404 - either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. The payload is defined by the structure imsx_StatusInfoDType.
  • 422 - this error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
/schools/{schoolSourcedId}/scoreScales GET
  • 200 - the request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'. The payload is defined by the structure ScoreScaleSetDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
  • 401 - the request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
  • 404 - either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. The payload is defined by the structure imsx_StatusInfoDType.
  • 422 - this error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
/schools/{schoolSourcedId}/lineItems POST
  • 201 - the object has been successfully stored in the Service Provider repository. The payload is defined by the structure GUIDPairSetDType.
  • 401 - the request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
  • 404 - either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. The payload is defined by the structure imsx_StatusInfoDType.
  • 422 - this error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
/scoreScales GET
  • 200 - the request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'. The payload is defined by the structure ScoreScaleSetDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
  • 401 - the request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
  • 422 - this error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
/scoreScales/{sourcedId} GET
  • 200 - the request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'. The payload is defined by the structure SingleScoreScaleDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
  • 401 - the request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
  • 404 - either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. The payload is defined by the structure imsx_StatusInfoDType.
  • 422 - this error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
/scoreScales/{sourcedId} DELETE
  • 204 - the object has been successfully deleted. There is no payload in the response message.
  • 401 - the request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
  • 404 - either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. The payload is defined by the structure imsx_StatusInfoDType.
  • 422 - this error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
/scoreScales/{sourcedId} PUT
  • 201 - the object has been successfully stored in the Service Provider repository. There is no payload in the response message.
  • 401 - the request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
  • 404 - either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. The payload is defined by the structure imsx_StatusInfoDType.
  • 422 - this error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The payload is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.
  • 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 is defined by the structure imsx_StatusInfoDType.

2.5 Service Discovery

A Service Provider MUST provide a localized version of the OpenAPI file (version 3 JSON file format) to enable service discovery [Security, 21].

This file MUST be located at: "...hostname.../ims/oneroster/gradebook/v1p2/discovery/".

The OpenAPI file MUST have the name: "onerosterv1p2gradebookservice_openapi3_v1p0.json".

Therefore the full URL for this service discovery file is: ...hostname.../ims/oneroster/gradebook/v1p2/discovery/onerosterv1p2gradebookservice_openapi3_v1p0.json

toc | top

3. Using the Endpoint Parameters

This Section is NORMATIVE.

3.1. Pagination

For requests of collections i.e. the response for the 'getAllLineItems()', 'getAllResults', etc. 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 lineItems:

    GET https://imsglobal.org/ims/oneroster/gradebook/v1p2/lineItems?limit=10

An example of a request to return the second 10 resources in a collection of lineItems:

    GET https://imsglobal.org/ims/oneroster/gradebook/v1p2/lineItems?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 resources exist in the collection. The pagination is in units of 10.

    Link:

    <https://imsglobal.org/ims/oneroster/gradebook/v1p2/lineItems?limit=10&offset=20>; rel="next",
    <https://imsglobal.org/ims/oneroster/gradebook/v1p2/lineItems?limit=3&offset=500>; rel="last",
    <https://imsglobal.org/ims/oneroster/gradebook/v1p2/lineItems?limit=10&offset=0>; rel="first",
    <https://imsglobal.org/ims/oneroster/gradebook/v1p2/lineItems?limit=10&offset=0>; rel="prev"

3.2. Sorting

It should be possible for collections, i.e. the response for the 'getAllResults()', 'getAllLineItems()', etc. calls, 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/oneroster/gradebook/v1p2/results?sort=score&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, data MAY be returned in the service provider's default sort order or an error response MAY be returned.

When sorting/ordering is requested on a property that is an array, the first value in the array is used as the basis of the sorting/ordering.

To sort/order on the properties of nested objects, (for example, with metadata properties), a dot-notation approach MUST be used. The format for this is:

    ?sort=<Nested_Object>.<Property>

3.3. Filtering

For the calls that request collections e.g. 'getAllLineItems()', 'getResults()', etc. 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 'results', it MUST be possible to filter on: 'sourcedId', 'score, 'dateLastModified', etc.

Predicates MUST be chosen from those listed in Table 3.1:

Table 3.1 List of predicates used for filtering.
Predicate Representation
Equal =
Not Equal !=
Greater Than >
Greater Than or Equal >=
Lesser Than <
Lesser Than or Equal <=
Contains ~

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 'lineItems' with a 'dueDate' of '2017-01-01T00:00:00Z' is:

    GET https://imsglobal.org/ims/oneroster/gradebook/v1p2/lineItems?filter=dueDate='2017-01-01T00:00:00Z'

URL encoded as:

    GET https://imsglobal.org/ims/oneroster/gradebook/v1p2/lineItems?filter=role%3D%272017-01-01T00:00:00Z%27

Filter queries MUST be URL encoded.

An example of a complex query for all 'lineItems' with a dueDate='2017-01-01T00:00:00Z' AND dateLastModified>'2016-12-12T00:00:00Z' is:

    GET https://imsglobal.org/ims/oneroster/gradebook/v1p2/lineItems?filter=dueDate%3D%272017%3D01%3D01T00%3A00%3A00Z%27%20AND%20dateLastModified%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' (this is not a field in 'lineItem' but is used as a generic example of filters for arrays) 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 read collection calls, such as 'getAllResults()', etc. 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 Results returning only the 'sourcedId' and 'score':

    GET https://imsglobal.org/ims/oneroster/gradebook/v1p2/results?fields=sourcedId,score

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

This Section is NORMATIVE.

The information in this section is taken from the IMS Security Framework [Security, 21]: that document describes the security approaches to be adopted in all IMS specifications.

4.1. Transport Security

As the service will be exposing personal data related to students and their grades, it is important that only authorized users have access to that data. Further, data exchanges should be encrypted to ensure that packet sniffing cannot be used to read the data in transit.

All Requests and Responses MUST be sent using Transport Layer Security (TLS). Exchange of the signed certificates for endpoints between clients and servers is beyond the scope of this specification. Implementers of clients and servers are advised to look at the various 3rd party certificate signing services in order to obtain signed certificates.

Support for TLS 1.2 and/or TLS 1.3 is REQUIRED and SSL MUST NOT be used.

4.2. Authorization

The use of OAuth 2.0 Client Credentials with the Bearer Token obtained using the mechanism described in [RFC 6749] (Section 4.4) is REQUIRED. Details of this are given in the IMS Security Framework [Security, 21].

Authorization will use the OAuth 2.0 Client Credentials Grant mechanism. In this mechanism the client can request an access token using only its client credentials (using the consumer key and secret information) when the client is requesting access to the protected resources under its control, or those of another resource owner that have been previously arranged with the authorization server. In this approach the client issues a client authentication request and receives in response an access token. Issuing of an access token is defined in Section 5 of [RFC 6749].

The request for an access token, including three scopes (scopename1, scopename2 and scopenamex) takes the form of (this uses TLS):

        POST /token HTTP/1.1
        Host: server.example.com
        Authorization: Basic czZCaGRSa3F0MzpnWDFmQmF0M2JW
        Content-Type: application/x-www-form-urlencoded

        grant_type=client_credentials&scope=scopename1%20scopename2%20scopenamex
        

The inclusion of scopes is REQUIRED and the set of scopes available for this service are defined in the following subsection. The authorization encoding is produced using the consumer key and secret. Note that the request for an access token MAY use a HTTP GET request.

The authorization encoding is produced using the consumer key and secret. Success results in the granting of the access token with a response of:

        HTTP/1.1 200 OK
        Content-Type: application/json;charset=UTF-8
        Cache-Control: no-store
        Pragma: no-cache

        {
            "access_token" : "2YotnFZFEjr1zCsicMWpAA",
            "token_type" : "bearer",
            "expires_in" : 3600,
            "scope" : "scopename1 scopename2 scopenamex"
        }
        

The recommended default value for the "expires_in" is 3600s. The authorization server MUST provide the scopes which are made available (either all or a subset of the scopes supplied in the request).

The client utilizes the access token to authenticate with the resource using the HTTP "Authorization" request header field [RFC 2617] with an authentication scheme defined by the specification of the access token type used, such as [RFC 6750]. An example of the use of the bearer token is:

        GET /resource/1 HTTP/1.1
        Host: provider.example.com
        Authorization: Bearer 2YotnFZFEjr1zCsicMWpAA
        

NOTE: This exchange assumes that TLS is used to secure the link.

4.3. Scopes

The set of scopes available in this service are listed in the following Tables.

4.3.1 "https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.createput" Scope

Access to all of the write assessment operations that permit the creation of a new single object in which the 'sourcedId' is supplied. The set of service operations covered by this scope are listed in Table 4.3.1.

Table 4.3.1 Service Operations for the "https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.createput" Scope.
Operation HTTP Verb Endpoint
putAssessmentLineItem PUT /assessmentLineItems/{sourcedId}
putAssessmentResult PUT /assessmentResults/{sourcedId}

4.3.2 "https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.delete" Scope

Access to the set of assessment operations that permit an object to be deleted. The set of service operations covered by this scope are listed in Table 4.3.2.

Table 4.3.2 Service Operations for the "https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.delete" Scope.
Operation HTTP Verb Endpoint
deleteAssessmentLineItem DELETE /assessmentLineItems/{sourcedId}
deleteAssessmentResult DELETE /assessmentResults/{sourcedId}

4.3.3 "https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.readonly" Scope

Access to ALL of the assessment read operations. The set of service operations covered by this scope are listed in Table 4.3.3.

Table 4.3.3 Service Operations for the "https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.readonly" Scope.
Operation HTTP Verb Endpoint
getAllAssessmentLineItems GET /assessmentLineItems
getAllAssessmentResults GET /assessmentResults
getAssessmentLineItem GET /assessmentLineItems/{sourcedId}
getAssessmentResult GET /assessmentResults/{sourcedId}

4.3.4 "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook-core.readonly" Scope

Access to the set of core read operations i.e. reading of all objects or a single object. The set of service operations covered by this scope are listed in Table 4.3.4.

Table 4.3.4 Service Operations for the "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook-core.readonly" Scope.
Operation HTTP Verb Endpoint
getAllCategories GET /categories
getAllLineItems GET /lineItems
getAllResults GET /results
getAllScoreScales GET /scoreScales
getCategory GET /categories/{sourcedId}
getLineItem GET /lineItems/{sourcedId}
getResult GET /results/{sourcedId}
getScoreScale GET /scoreScales/{sourcedId}

4.3.5 "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createpost" Scope

Access to the set of write operations that permit the creation of objects where the server allocates the 'sourcedIds'. The set of service operations covered by this scope are listed in Table 4.3.5.

Table 4.3.5 Service Operations for the "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createpost" Scope.
Operation HTTP Verb Endpoint
postLineItemsForClass POST /classes/{classSourcedId}/lineItems
postLineItemsForSchool POST /schools/{schoolSourcedId}/lineItems
postResultsForAcademicSessionForClass POST /classes/{classSourcedId}/academicSessions/{academicSessionSourcedId}/results
postResultsForLineItem POST /lineItems/{lineItemSourcedId}/results

4.3.6 "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createput" Scope

Access to all of the gradebook write operations that permit the creation of a new single object in which the 'sourcedId' is supplied. The set of service operations covered by this scope are listed in Table 4.3.6.

Table 4.3.6 Service Operations for the "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createput" Scope.
Operation HTTP Verb Endpoint
putCategory PUT /categories/{sourcedId}
putLineItem PUT /lineItems/{sourcedId}
putResult PUT /results/{sourcedId}
putScoreScale PUT /scoreScales/{sourcedId}

4.3.7 "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.delete" Scope

Access to the set of gradebook operations that permit an object to be deleted. The set of service operations covered by this scope are listed in Table 4.3.7.

Table 4.3.7 Service Operations for the "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.delete" Scope.
Operation HTTP Verb Endpoint
deleteCategory DELETE /categories/{sourcedId}
deleteLineItem DELETE /lineItems/{sourcedId}
deleteResult DELETE /results/{sourcedId}
deleteScoreScale DELETE /scoreScales/{sourcedId}

4.3.8 "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly" Scope

Access to ALL of the gradebook read operations. The set of service operations covered by this scope are listed in Table 4.3.8.

Table 4.3.8 Service Operations for the "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly" Scope.
Operation HTTP Verb Endpoint
getAllCategories GET /categories
getAllLineItems GET /lineItems
getAllResults GET /results
getAllScoreScales GET /scoreScales
getCategoriesForClass GET /classes/{classSourcedId}/categories
getCategory GET /categories/{sourcedId}
getLineItem GET /lineItems/{sourcedId}
getLineItemsForClass GET /classes/{classSourcedId}/lineItems
getResult GET /results/{sourcedId}
getResultsForClass GET /classes/{classSourcedId}/results
getResultsForLineItemForClass GET /classes/{classSourcedId}/lineItems/{lineItemSourcedId}/results
getResultsForStudentForClass GET /classes/{classSourcedId}/students/{studentSourcedId}/results
getScoreScale GET /scoreScales/{sourcedId}
getScoreScalesForClass GET /classes/{classSourcedId}/scoreScales
getScoreScalesForSchool GET /schools/{schoolSourcedId}/scoreScales

toc | top

5. UML to JSON Payload Mapping

This Section is NOT NORMATIVE.

5.1 Service Parameter Payload Properties UML/JSON Mapping

The UML/JSON Mapping for the Service Parameters (excluding those service parameters passed as query parameters on the endpoint URL) to the JSON Payload Properties is given in Table 5.1. The syntax and semantics for this representation is described in Appendix A2.1.

Table 5.1 UML/JSON Mapping for the Service Parameters.
Operation Name Parameter Name UML Class JSON Name JSON Type JSON Schema Data Type
getAllAssessmentLineItems assessmentLineItems AssessmentLineItemSet assessmentLineItems Array of Objects AssessmentLineItemSetDType
getAllAssessmentResults assessmentResults AssessmentResultSet assessmentResults Array of Objects AssessmentResultSetDType
getAllCategories categories CategoriesSet categories Array of Objects CategoriesSetDType
getAllLineItems lineItems LineItemSet lineItems Array of Objects LineItemSetDType
getAllResults results ResultSet results Array of Objects ResultSetDType
getAllScoreScales scoreScales ScoreScaleSet scoreScales Array of Objects ScoreScaleSetDType
getAssessmentLineItem assessmentLineItem SingleAssessmentLineItem assessmentLineItem Object SingleAssessmentLineItemDType
getAssessmentResult assessmentResult SingleAssessmentResult assessmentResult Object SingleAssessmentResultDType
getCategoriesForClass categories CategoriesSet categories Array of Objects CategoriesSetDType
getCategory category SingleCategory category Object SingleCategoryDType
getLineItem lineItem SingleLineItem lineItem Object SingleLineItemDType
getLineItemsForClass lineItems LineItemSet lineItems Array of Objects LineItemSetDType
getResult result SingleResult result Object SingleResultDType
getResultsForClass results ResultSet results Array of Objects ResultSetDType
getResultsForLineItemForClass results ResultSet results Array of Objects ResultSetDType
getResultsForStudentForClass results ResultSet results Array of Objects ResultSetDType
getScoreScale scoreScale SingleScoreScale scoreScale Object SingleScoreScaleDType
getScoreScalesForClass scoreScales ScoreScaleSet scoreScales Array of Objects ScoreScaleSetDType
getScoreScalesForSchool scoreScales ScoreScaleSet scoreScales Array of Objects ScoreScaleSetDType
postLineItemsForClass lineItems LineItemSet lineItems Array of Objects LineItemSetDType
postLineItemsForClass sourcedIdPairs GUIDPairSet sourcedIdPairs Array of Objects GUIDPairSetDType
postLineItemsForSchool lineItems LineItemSet lineItems Array of Objects LineItemSetDType
postLineItemsForSchool sourcedIdPairs GUIDPairSet sourcedIdPairs Array of Objects GUIDPairSetDType
postResultsForAcademicSessionForClass results ResultSet results Array of Objects ResultSetDType
postResultsForAcademicSessionForClass sourcedIdPairs GUIDPairSet sourcedIdPairs Array of Objects GUIDPairSetDType
postResultsForLineItem results ResultSet results Array of Objects ResultSetDType
postResultsForLineItem sourcedIdPairs GUIDPairSet sourcedIdPairs Array of Objects GUIDPairSetDType
putAssessmentLineItem assessmentLineItem SingleAssessmentLineItem assessmentLineItem Object SingleAssessmentLineItemDType
putAssessmentResult assessmentResult SingleAssessmentResult assessmentResult Object SingleAssessmentResultDType
putCategory category SingleCategory category Object SingleCategoryDType
putLineItem lineItem SingleLineItem lineItem Object SingleLineItemDType
putResult result SingleResult result Object SingleResultDType
putScoreScale scoreScale SingleScoreScale scoreScale Object SingleScoreScaleDType

5.2 Service Parameter Payload Class UML/JSON Mapping

The syntax and semantics for the Root Class UML/JSON mapping representations is described in Appendix A2.2.

5.2.1 CategoriesSet Service Parameter Payload Class Mapping

The UML/JSON Mapping for the "CategoriesSet" Service Parameter Payload Class is given in Table 5.2.1.

Table 5.2.1 UML/JSON Mapping for the "CategoriesSet" Service Parameter Payload Class.
Information Model Details JSON Binding Details
Name UML Artefact Data Type Multiplicity Name Type
CategoriesSet Payload Parameter Container [ Sequence ] - N/A - CategoriesSetDType Object
  • categories
Attribute Category [0.. *] categories Array of Properties

5.2.2 SingleCategory Service Parameter Payload Class Mapping

The UML/JSON Mapping for the "SingleCategory" Service Parameter Payload Class is given in Table 5.2.2.

Table 5.2.2 UML/JSON Mapping for the "SingleCategory" Service Parameter Payload Class.
Information Model Details JSON Binding Details
Name UML Artefact Data Type Multiplicity Name Type
SingleCategory Payload Parameter Container [ Sequence ] - N/A - SingleCategoryDType Object
  • category
Attribute Category [1] category Property

5.2.3 ResultSet Service Parameter Payload Class Mapping

The UML/JSON Mapping for the "ResultSet" Service Parameter Payload Class is given in Table 5.2.3.

Table 5.2.3 UML/JSON Mapping for the "ResultSet" Service Parameter Payload Class.
Information Model Details JSON Binding Details
Name UML Artefact Data Type Multiplicity Name Type
ResultSet Payload Parameter Container [ Sequence ] - N/A - ResultSetDType Object
  • results
Attribute Result [0.. *] results Array of Properties

5.2.4 LineItemSet Service Parameter Payload Class Mapping

The UML/JSON Mapping for the "LineItemSet" Service Parameter Payload Class is given in Table 5.2.4.

Table 5.2.4 UML/JSON Mapping for the "LineItemSet" Service Parameter Payload Class.
Information Model Details JSON Binding Details
Name UML Artefact Data Type Multiplicity Name Type
LineItemSet Payload Parameter Container [ Sequence ] - N/A - LineItemSetDType Object
  • lineItems
Attribute LineItem [0.. *] lineItems Array of Properties

5.2.5 ScoreScaleSet Service Parameter Payload Class Mapping

The UML/JSON Mapping for the "ScoreScaleSet" Service Parameter Payload Class is given in Table 5.2.5.

Table 5.2.5 UML/JSON Mapping for the "ScoreScaleSet" Service Parameter Payload Class.
Information Model Details JSON Binding Details
Name UML Artefact Data Type Multiplicity Name Type
ScoreScaleSet Payload Parameter Container [ Unordered ] - N/A - ScoreScaleSetDType Object
  • scoreScales
Attribute ScoreScale [0.. *] scoreScales Array of Properties

5.2.6 GUIDPairSet Service Parameter Payload Class Mapping

The UML/JSON Mapping for the "GUIDPairSet" Service Parameter Payload Class is given in Table 5.2.6.

Table 5.2.6 UML/JSON Mapping for the "GUIDPairSet" Service Parameter Payload Class.
Information Model Details JSON Binding Details
Name UML Artefact Data Type Multiplicity Name Type
GUIDPairSet Payload Parameter Container [ Unordered ] - N/A - GUIDPairSetDType Object
  • sourcedIdPairs
Attribute GUIDPair [0.. *] sourcedIdPairs Array of Properties

5.2.7 SingleResult Service Parameter Payload Class Mapping

The UML/JSON Mapping for the "SingleResult" Service Parameter Payload Class is given in Table 5.2.7.

Table 5.2.7 UML/JSON Mapping for the "SingleResult" Service Parameter Payload Class.
Information Model Details JSON Binding Details
Name UML Artefact Data Type Multiplicity Name Type
SingleResult Payload Parameter Container [ Sequence ] - N/A - SingleResultDType Object
  • result
Attribute Result [1] result Property

5.2.8 SingleLineItem Service Parameter Payload Class Mapping

The UML/JSON Mapping for the "SingleLineItem" Service Parameter Payload Class is given in Table 5.2.8.

Table 5.2.8 UML/JSON Mapping for the "SingleLineItem" Service Parameter Payload Class.
Information Model Details JSON Binding Details
Name UML Artefact Data Type Multiplicity Name Type
SingleLineItem Payload Parameter Container [ Sequence ] - N/A - SingleLineItemDType Object
  • lineItem
Attribute LineItem [1] lineItem Property

5.2.9 SingleScoreScale Service Parameter Payload Class Mapping

The UML/JSON Mapping for the "SingleScoreScale" Service Parameter Payload Class is given in Table 5.2.9.

Table 5.2.9 UML/JSON Mapping for the "SingleScoreScale" Service Parameter Payload Class.
Information Model Details JSON Binding Details
Name UML Artefact Data Type Multiplicity Name Type
SingleScoreScale Payload Parameter Container [ Unordered ] - N/A - SingleScoreScaleDType Object
  • scoreScale
Attribute ScoreScale [1] scoreScale Property

5.2.10 AssessmentLineItemSet Service Parameter Payload Class Mapping

The UML/JSON Mapping for the "AssessmentLineItemSet" Service Parameter Payload Class is given in Table 5.2.10.

Table 5.2.10 UML/JSON Mapping for the "AssessmentLineItemSet" Service Parameter Payload Class.
Information Model Details JSON Binding Details
Name UML Artefact Data Type Multiplicity Name Type
AssessmentLineItemSet Payload Parameter Container [ Sequence ] - N/A - AssessmentLineItemSetDType Object
  • assessmentLineItems
Attribute AssessmentLineItem [0.. *] assessmentLineItems Array of Properties

5.2.11 SingleAssessmentLineItem Service Parameter Payload Class Mapping

The UML/JSON Mapping for the "SingleAssessmentLineItem" Service Parameter Payload Class is given in Table 5.2.11.

Table 5.2.11 UML/JSON Mapping for the "SingleAssessmentLineItem" Service Parameter Payload Class.
Information Model Details JSON Binding Details
Name UML Artefact Data Type Multiplicity Name Type
SingleAssessmentLineItem Payload Parameter Container [ Sequence ] - N/A - SingleAssessmentLineItemDType Object
  • assessmentLineItem
Attribute AssessmentLineItem [1] assessmentLineItem Property

5.2.12 AssessmentResultSet Service Parameter Payload Class Mapping

The UML/JSON Mapping for the "AssessmentResultSet" Service Parameter Payload Class is given in Table 5.2.12.

Table 5.2.12 UML/JSON Mapping for the "AssessmentResultSet" Service Parameter Payload Class.
Information Model Details JSON Binding Details
Name UML Artefact Data Type Multiplicity Name Type
AssessmentResultSet Payload Parameter Container [ Sequence ] - N/A - AssessmentResultSetDType Object
  • assessmentResults
Attribute AssessmentResult [0.. *] assessmentResults Array of Properties

5.2.13 SingleAssessmentResult Service Parameter Payload Class Mapping

The UML/JSON Mapping for the "SingleAssessmentResult" Service Parameter Payload Class is given in Table 5.2.13.

Table 5.2.13 UML/JSON Mapping for the "SingleAssessmentResult" Service Parameter Payload Class.
Information Model Details JSON Binding Details
Name UML Artefact Data Type Multiplicity Name Type
SingleAssessmentResult Payload Parameter Container [ Sequence ] - N/A - SingleAssessmentResultDType Object
  • assessmentResult
Attribute AssessmentResult [1] assessmentResult Property

5.3 Payload Classes UML/JSON Mapping

The syntax and semantics for the Data Class UML/JSON mapping representations is described in Appendix A2.2.

5.3.1 AcadSessionGUIDRef Payload Class Mapping

The Payload UML/JSON Mapping for the "AcadSessionGUIDRef" Class is given in Table 5.3.1.

Table 5.3.1 Payload UML/JSON Mapping for the "AcadSessionGUIDRef" Class.
Information Model Details JSON Binding Details
Name UML Artefact Data Type Multiplicity Name Type
AcadSessionGUIDRef Core Container [ Sequence ] AND Inherits [ GUIDRef ] - N/A - AcadSessionGUIDRefDType
Object
  • href
    [ INHERITED ]
Attribute PT: AnyURI [1] href Property
  • sourcedId
    [ INHERITED ]
Attribute DT: GUID (PT: String) [1] sourcedId Property
  • type
Attribute [ Enumeration (AcadSessionGUIDRefTypeEnum) ] [1] type Property

5.3.2 AssessmentLineItem Payload Class Mapping

The Payload UML/JSON Mapping for the "AssessmentLineItem" Class is given in Table 5.3.2.

Table 5.3.2 Payload UML/JSON Mapping for the "AssessmentLineItem" Class.
Information Model Details JSON Binding Details
Name UML Artefact Data Type Multiplicity Name Type
AssessmentLineItem Core Container [ Sequence ] AND Inherits [ Base ] - N/A - AssessmentLineItemDType
Object
  • sourcedId
    [ INHERITED ]
Attribute DT: GUID (PT: String) [1] sourcedId Property
  • status
    [ INHERITED ]
Attribute [ Enumeration (BaseStatusEnum) ] [1] status Property
  • dateLastModified
    [ INHERITED ]
Attribute PT: DateTime [1] dateLastModified Property
  • metadata
    [ INHERITED ]
Attribute Metadata [0..1] metadata Property
  • title
Attribute PT: NormalizedString [1] title Property
  • description
Attribute PT: String [0..1] description Property
  • class
Attribute ClassGUIDRef [0..1] class Property
  • parentAssessmentLineItem
Attribute AssessmentLineItemGUIDRef [0..1] parentAssessmentLineItem Property
  • scoreScale
Attribute ScoreScaleGUIDRef [0..1] scoreScale Property
  • resultValueMin
Attribute PT: Float [0..1] resultValueMin Property
  • resultValueMax
Attribute PT: Float [0..1] resultValueMax Property
  • learningObjectiveSet
Attribute LearningObjectiveSet [0.. *] learningObjectiveSet Array of Properties

5.3.3 AssessmentLineItemGUIDRef Payload Class Mapping

The Payload UML/JSON Mapping for the "AssessmentLineItemGUIDRef" Class is given in Table 5.3.3.

Table 5.3.3 Payload UML/JSON Mapping for the "AssessmentLineItemGUIDRef" Class.
Information Model Details JSON Binding Details
Name UML Artefact Data Type Multiplicity Name Type
AssessmentLineItemGUIDRef Core Container [ Sequence ] AND Inherits [ GUIDRef ] - N/A - AssessmentLineItemGUIDRefDType
Object
  • href
    [ INHERITED ]
Attribute PT: AnyURI [1] href Property
  • sourcedId
    [ INHERITED ]
Attribute DT: GUID (PT: String) [1] sourcedId Property
  • type
Attribute [ Enumeration (AssessmentLineItemGUIDRefTypeEnum) ] [1] type Property

5.3.4 AssessmentResult Payload Class Mapping

The Payload UML/JSON Mapping for the "AssessmentResult" Class is given in Table 5.3.4.

Table 5.3.4 Payload UML/JSON Mapping for the "AssessmentResult" Class.
Information Model Details JSON Binding Details
Name UML Artefact Data Type Multiplicity Name Type
AssessmentResult Core Container [ Sequence ] AND Inherits [ Base ] - N/A - AssessmentResultDType
Object
  • sourcedId
    [ INHERITED ]
Attribute DT: GUID (PT: String) [1] sourcedId Property
  • status
    [ INHERITED ]
Attribute [ Enumeration (BaseStatusEnum) ] [1] status Property
  • dateLastModified
    [ INHERITED ]
Attribute PT: DateTime [1] dateLastModified Property
  • metadata
    [ INHERITED ]
Attribute Metadata [0..1] metadata Property
  • assessmentLineItem
Attribute AssessmentLineItemGUIDRef [1] assessmentLineItem Property
  • student
Attribute UserGUIDRef [1] student Property
  • score
Attribute PT: Float [0..1] score Property
  • textScore
Attribute PT: NormalizedString [0..1] textScore Property
  • scoreDate
Attribute PT: Date [1] scoreDate Property
  • scoreScale
Attribute ScoreScaleGUIDRef [0..1] scoreScale Property
  • scorePercentile
Attribute PT: Float [0..1] scorePercentile Property
  • scoreStatus
Attribute [ Union (ScoreStatusExtEnum) ] [1] scoreStatus Property
  • comment
Attribute PT: String [0..1] comment Property
  • learningObjectiveSet
Attribute LearningObjectiveScoreSet [0.. *] learningObjectiveSet Array of Properties
  • inProgress
Attribute [ Enumeration (BooleanTrueFalseEnum) ] [0..1] inProgress Property
  • incomplete
Attribute [ Enumeration (BooleanTrueFalseEnum) ] [0..1] incomplete Property
  • late
Attribute [ Enumeration (BooleanTrueFalseEnum) ] [0..1] late Property
  • missing
Attribute [ Enumeration (BooleanTrueFalseEnum) ] [0..1] missing Property

5.3.5 Base Payload Class Mapping

The Payload UML/JSON Mapping for the "Base" Class is given in Table 5.3.5.

Table 5.3.5 Payload UML/JSON Mapping for the "Base" Class.
Information Model Details JSON Binding Details
Name UML Artefact Data Type Multiplicity Name Type
Base Core Container [ Sequence ] - N/A - BaseDType Object
  • sourcedId
Attribute DT: GUID (PT: String) [1] sourcedId Property
  • status
Attribute [ Enumeration (BaseStatusEnum) ] [1] status Property
  • dateLastModified
Attribute PT: DateTime [1] dateLastModified Property
  • metadata
Attribute Metadata [0..1] metadata Property

5.3.6 Category Payload Class Mapping

The Payload UML/JSON Mapping for the "Category" Class is given in Table 5.3.6.

Table 5.3.6 Payload UML/JSON Mapping for the "Category" Class.
Information Model Details JSON Binding Details
Name UML Artefact Data Type Multiplicity Name Type
Category Core Container [ Sequence ] AND Inherits [ Base ] - N/A - CategoryDType
Object
  • sourcedId
    [ INHERITED ]
Attribute DT: GUID (PT: String) [1] sourcedId Property
  • status
    [ INHERITED ]
Attribute [ Enumeration (BaseStatusEnum) ] [1] status Property
  • dateLastModified
    [ INHERITED ]
Attribute PT: DateTime [1] dateLastModified Property
  • metadata
    [ INHERITED ]
Attribute Metadata [0..1] metadata Property
  • title
Attribute PT: NormalizedString [1] title Property
  • weight
Attribute PT: Float [0..1] weight Property

5.3.7 CategoryGUIDRef Payload Class Mapping

The Payload UML/JSON Mapping for the "CategoryGUIDRef" Class is given in Table 5.3.7.

Table 5.3.7 Payload UML/JSON Mapping for the "CategoryGUIDRef" Class.
Information Model Details JSON Binding Details
Name UML Artefact Data Type Multiplicity Name Type
CategoryGUIDRef Core Container [ Sequence ] AND Inherits [ GUIDRef ] - N/A - CategoryGUIDRefDType
Object
  • href
    [ INHERITED ]
Attribute PT: AnyURI [1] href Property
  • sourcedId
    [ INHERITED ]
Attribute DT: GUID (PT: String) [1] sourcedId Property
  • type
Attribute [ Enumeration (CategoryGUIDRefTypeEnum) ] [1] type Property

5.3.8 ClassGUIDRef Payload Class Mapping

The Payload UML/JSON Mapping for the "ClassGUIDRef" Class is given in Table 5.3.8.

Table 5.3.8 Payload UML/JSON Mapping for the "ClassGUIDRef" Class.
Information Model Details JSON Binding Details
Name UML Artefact Data Type Multiplicity Name Type
ClassGUIDRef Core Container [ Sequence ] AND Inherits [ GUIDRef ] - N/A - ClassGUIDRefDType
Object
  • href
    [ INHERITED ]
Attribute PT: AnyURI [1] href Property
  • sourcedId
    [ INHERITED ]
Attribute DT: GUID (PT: String) [1] sourcedId Property
  • type
Attribute [ Enumeration (ClassGUIDRefTypeEnum) ] [1] type Property

5.3.9 CourseGUIDRef Payload Class Mapping

The Payload UML/JSON Mapping for the "CourseGUIDRef" Class is given in Table 5.3.9.

Table 5.3.9 Payload UML/JSON Mapping for the "CourseGUIDRef" Class.
Information Model Details JSON Binding Details
Name UML Artefact Data Type Multiplicity Name Type
CourseGUIDRef Core Container [ Sequence ] AND Inherits [ GUIDRef ] - N/A - CourseGUIDRefDType
Object
  • href
    [ INHERITED ]
Attribute PT: AnyURI [1] href Property
  • sourcedId
    [ INHERITED ]
Attribute DT: GUID (PT: String) [1] sourcedId Property
  • type
Attribute [ Enumeration (CourseGUIDRefTypeEnum) ] [1] type Property

5.3.10 GUIDPair Payload Class Mapping

The Payload UML/JSON Mapping for the "GUIDPair" Class is given in Table 5.3.10.

Table 5.3.10 Payload UML/JSON Mapping for the "GUIDPair" Class.
Information Model Details JSON Binding Details
Name UML Artefact Data Type Multiplicity Name Type
GUIDPair Core Container [ Unordered ] - N/A - GUIDPairDType Object
  • suppliedSourcedId
Attribute DT: GUID (PT: String) [1] suppliedSourcedId Property
  • allocatedSourcedId
Attribute DT: GUID (PT: String) [1] allocatedSourcedId Property

5.3.11 GUIDRef Payload Class Mapping

The Payload UML/JSON Mapping for the "GUIDRef" Class is given in Table 5.3.11.

Table 5.3.11 Payload UML/JSON Mapping for the "GUIDRef" Class.
Information Model Details JSON Binding Details
Name UML Artefact Data Type Multiplicity Name Type
GUIDRef Core Container [ Sequence ] - N/A - GUIDRefDType Object
  • href
Attribute PT: AnyURI [1] href Property
  • sourcedId
Attribute DT: GUID (PT: String) [1] sourcedId Property

5.3.12 LearningObjectiveResults Payload Class Mapping

The Payload UML/JSON Mapping for the "LearningObjectiveResults" Class is given in Table 5.3.12.

Table 5.3.12 Payload UML/JSON Mapping for the "LearningObjectiveResults" Class.
Information Model Details JSON Binding Details
Name UML Artefact Data Type Multiplicity Name Type
LearningObjectiveResults Core Container [ Sequence ] - N/A - LearningObjectiveResultsDType Object
  • learningObjectiveId
Attribute PT: NormalizedString [1] learningObjectiveId Property
  • score
Attribute PT: Float [0..1] score Property
  • textScore
Attribute PT: NormalizedString [0..1] textScore Property

5.3.13 LearningObjectiveScoreSet Payload Class Mapping

The Payload UML/JSON Mapping for the "LearningObjectiveScoreSet" Class is given in Table 5.3.13.

Table 5.3.13 Payload UML/JSON Mapping for the "LearningObjectiveScoreSet" Class.
Information Model Details JSON Binding Details
Name UML Artefact Data Type Multiplicity Name Type
LearningObjectiveScoreSet Core Container [ Sequence ] - N/A - LearningObjectiveScoreSetDType Object
  • source
Attribute [ Union (SourceExtEnum) ] [1] source Property
  • learningObjectiveResults
Attribute LearningObjectiveResults [1.. *] learningObjectiveResults Array of Properties

5.3.14 LearningObjectiveSet Payload Class Mapping

The Payload UML/JSON Mapping for the "LearningObjectiveSet" Class is given in Table 5.3.14.

Table 5.3.14 Payload UML/JSON Mapping for the "LearningObjectiveSet" Class.
Information Model Details JSON Binding Details
Name UML Artefact Data Type Multiplicity Name Type
LearningObjectiveSet Core Container [ Sequence ] - N/A - LearningObjectiveSetDType Object
  • source
Attribute [ Union (SourceExtEnum) ] [1] source Property
  • learningObjectiveIds
Attribute PT: NormalizedString [1.. *] learningObjectiveIds Array of Properties

5.3.15 LineItem Payload Class Mapping

The Payload UML/JSON Mapping for the "LineItem" Class is given in Table 5.3.15.

Table 5.3.15 Payload UML/JSON Mapping for the "LineItem" Class.
Information Model Details JSON Binding Details
Name UML Artefact Data Type Multiplicity Name Type
LineItem Core Container [ Sequence ] AND Inherits [ Base ] - N/A - LineItemDType
Object
  • sourcedId
    [ INHERITED ]
Attribute DT: GUID (PT: String) [1] sourcedId Property
  • status
    [ INHERITED ]
Attribute [ Enumeration (BaseStatusEnum) ] [1] status Property
  • dateLastModified
    [ INHERITED ]
Attribute PT: DateTime [1] dateLastModified Property
  • metadata
    [ INHERITED ]
Attribute Metadata [0..1] metadata Property
  • title
Attribute PT: NormalizedString [1] title Property
  • description
Attribute PT: String [0..1] description Property
  • assignDate
Attribute PT: DateTime [1] assignDate Property
  • dueDate
Attribute PT: DateTime [1] dueDate Property
  • class
Attribute ClassGUIDRef [1] class Property
  • school
Attribute OrgGUIDRef [1] school Property
  • category
Attribute CategoryGUIDRef [1] category Property
  • gradingPeriod
Attribute AcadSessionGUIDRef [0..1] gradingPeriod Property
  • academicSession
Attribute AcadSessionGUIDRef [0..1] academicSession Property
  • scoreScale
Attribute ScoreScaleGUIDRef [0..1] scoreScale Property
  • resultValueMin
Attribute PT: Float [0..1] resultValueMin Property
  • resultValueMax
Attribute PT: Float [0..1] resultValueMax Property
  • learningObjectiveSet
Attribute LearningObjectiveSet [0.. *] learningObjectiveSet Array of Properties

5.3.16 LineItemGUIDRef Payload Class Mapping

The Payload UML/JSON Mapping for the "LineItemGUIDRef" Class is given in Table 5.3.16.

Table 5.3.16 Payload UML/JSON Mapping for the "LineItemGUIDRef" Class.
Information Model Details JSON Binding Details
Name UML Artefact Data Type Multiplicity Name Type
LineItemGUIDRef Core Container [ Sequence ] AND Inherits [ GUIDRef ] - N/A - LineItemGUIDRefDType
Object
  • href
    [ INHERITED ]
Attribute PT: AnyURI [1] href Property
  • sourcedId
    [ INHERITED ]
Attribute DT: GUID (PT: String) [1] sourcedId Property
  • type
Attribute [ Enumeration (LineItemGUIDRefTypeEnum) ] [1] type Property

5.3.17 Metadata Payload Class Mapping

The Payload UML/JSON Mapping for the "Metadata" Class is given in Table 5.3.17.

Table 5.3.17 Payload UML/JSON Mapping for the "Metadata" Class.
Information Model Details JSON Binding Details
Name UML Artefact Data Type Multiplicity Name Type
Metadata Core Container [ Sequence ] - N/A - MetadataDType Object
  • extensions
Attribute PT: Namespace [0.. *] Set of Proprietary Properties Set of Proprietary Properties

5.3.18 OrgGUIDRef Payload Class Mapping

The Payload UML/JSON Mapping for the "OrgGUIDRef" Class is given in Table 5.3.18.

Table 5.3.18 Payload UML/JSON Mapping for the "OrgGUIDRef" Class.
Information Model Details JSON Binding Details
Name UML Artefact Data Type Multiplicity Name Type
OrgGUIDRef Core Container [ Sequence ] AND Inherits [ GUIDRef ] - N/A - OrgGUIDRefDType
Object
  • href
    [ INHERITED ]
Attribute PT: AnyURI [1] href Property
  • sourcedId
    [ INHERITED ]
Attribute DT: GUID (PT: String) [1] sourcedId Property
  • type
Attribute [ Enumeration (OrgGUIDRefTypeEnum) ] [1] type Property

5.3.19 Result Payload Class Mapping

The Payload UML/JSON Mapping for the "Result" Class is given in Table 5.3.19.

Table 5.3.19 Payload UML/JSON Mapping for the "Result" Class.
Information Model Details JSON Binding Details
Name UML Artefact Data Type Multiplicity Name Type
Result Core Container [ Sequence ] AND Inherits [ Base ] - N/A - ResultDType
Object
  • sourcedId
    [ INHERITED ]
Attribute DT: GUID (PT: String) [1] sourcedId Property
  • status
    [ INHERITED ]
Attribute [ Enumeration (BaseStatusEnum) ] [1] status Property
  • dateLastModified
    [ INHERITED ]
Attribute PT: DateTime [1] dateLastModified Property
  • metadata
    [ INHERITED ]
Attribute Metadata [0..1] metadata Property
  • lineItem
Attribute LineItemGUIDRef [1] lineItem Property
  • student
Attribute UserGUIDRef [1] student Property
  • class
Attribute ClassGUIDRef [0..1] class Property
  • scoreScale
Attribute ScoreScaleGUIDRef [0..1] scoreScale Property
  • scoreStatus
Attribute [ Union (ScoreStatusExtEnum) ] [1] scoreStatus Property
  • score
Attribute PT: Float [0..1] score Property
  • textScore
Attribute PT: NormalizedString [0..1] textScore Property
  • scoreDate
Attribute PT: Date [1] scoreDate Property
  • comment
Attribute PT: String [0..1] comment Property
  • learningObjectiveSet
Attribute LearningObjectiveScoreSet [0.. *] learningObjectiveSet Array of Properties
  • inProgress
Attribute [ Enumeration (BooleanTrueFalseEnum) ] [0..1] inProgress Property
  • incomplete
Attribute [ Enumeration (BooleanTrueFalseEnum) ] [0..1] incomplete Property
  • late
Attribute [ Enumeration (BooleanTrueFalseEnum) ] [0..1] late Property
  • missing
Attribute [ Enumeration (BooleanTrueFalseEnum) ] [0..1] missing Property

5.3.20 ScoreScale Payload Class Mapping

The Payload UML/JSON Mapping for the "ScoreScale" Class is given in Table 5.3.20.

Table 5.3.20 Payload UML/JSON Mapping for the "ScoreScale" Class.
Information Model Details JSON Binding Details
Name UML Artefact Data Type Multiplicity Name Type
ScoreScale Core Container [ Unordered ] AND Inherits [ Base ] - N/A - ScoreScaleDType
Object
  • sourcedId
    [ INHERITED ]
Attribute DT: GUID (PT: String) [1] sourcedId Property
  • status
    [ INHERITED ]
Attribute [ Enumeration (BaseStatusEnum) ] [1] status Property
  • dateLastModified
    [ INHERITED ]
Attribute PT: DateTime [1] dateLastModified Property
  • metadata
    [ INHERITED ]
Attribute Metadata [0..1] metadata Property
  • title
Attribute PT: NormalizedString [1] title Property
  • type
Attribute PT: NormalizedString [1] type Property
  • course
Attribute CourseGUIDRef [0..1] course Property
  • class
Attribute ClassGUIDRef [1] class Property
  • scoreScaleValue
Attribute ScoreScaleValue [1.. *] scoreScaleValue Array of Properties

5.3.21 ScoreScaleGUIDRef Payload Class Mapping

The Payload UML/JSON Mapping for the "ScoreScaleGUIDRef" Class is given in Table 5.3.21.

Table 5.3.21 Payload UML/JSON Mapping for the "ScoreScaleGUIDRef" Class.
Information Model Details JSON Binding Details
Name UML Artefact Data Type Multiplicity Name Type
ScoreScaleGUIDRef Core Container [ Sequence ] AND Inherits [ GUIDRef ] - N/A - ScoreScaleGUIDRefDType
Object
  • href
    [ INHERITED ]
Attribute PT: AnyURI [1] href Property
  • sourcedId
    [ INHERITED ]
Attribute DT: GUID (PT: String) [1] sourcedId Property
  • type
Attribute [ Enumeration (ScoreScaleGUIDRefTypeEnum) ] [1] type Property

5.3.22 ScoreScaleValue Payload Class Mapping

The Payload UML/JSON Mapping for the "ScoreScaleValue" Class is given in Table 5.3.22.

Table 5.3.22 Payload UML/JSON Mapping for the "ScoreScaleValue" Class.
Information Model Details JSON Binding Details
Name UML Artefact Data Type Multiplicity Name Type
ScoreScaleValue Core Container [ Unordered ] - N/A - ScoreScaleValueDType Object
  • itemValueLHS
Attribute PT: NormalizedString [1] itemValueLHS Property
  • itemValueRHS
Attribute PT: NormalizedString [1] itemValueRHS Property

5.3.23 UserGUIDRef Payload Class Mapping

The Payload UML/JSON Mapping for the "UserGUIDRef" Class is given in Table 5.3.23.

Table 5.3.23 Payload UML/JSON Mapping for the "UserGUIDRef" Class.
Information Model Details JSON Binding Details
Name UML Artefact Data Type Multiplicity Name Type
UserGUIDRef Core Container [ Sequence ] AND Inherits [ GUIDRef ] - N/A - UserGUIDRefDType
Object
  • href
    [ INHERITED ]
Attribute PT: AnyURI [1] href Property
  • sourcedId
    [ INHERITED ]
Attribute DT: GUID (PT: String) [1] sourcedId Property
  • type
Attribute [ Enumeration (UserGUIDRefTypeEnum) ] [1] type Property

5.3.24 imsx_CodeMinor Payload Class Mapping

The Payload UML/JSON Mapping for the "imsx_CodeMinor" Class is given in Table 5.3.24.

Table 5.3.24 Payload UML/JSON Mapping for the "imsx_CodeMinor" Class.
Information Model Details JSON Binding Details
Name UML Artefact Data Type Multiplicity Name Type
imsx_CodeMinor Core Container [ Sequence ] - N/A - imsx_CodeMinorDType Object
  • imsx_codeMinorField
Attribute imsx_CodeMinorField [1.. *] imsx_codeMinorField Array of Properties

5.3.25 imsx_CodeMinorField Payload Class Mapping

The Payload UML/JSON Mapping for the "imsx_CodeMinorField" Class is given in Table 5.3.25.

Table 5.3.25 Payload UML/JSON Mapping for the "imsx_CodeMinorField" Class.
Information Model Details JSON Binding Details
Name UML Artefact Data Type Multiplicity Name Type
imsx_CodeMinorField Core Container [ Sequence ] - N/A - imsx_CodeMinorFieldDType Object
  • imsx_codeMinorFieldName
Attribute PT: NormalizedString [1] imsx_codeMinorFieldName Property
  • imsx_codeMinorFieldValue
Attribute [ Enumeration (imsx_CodeMinorValueEnum) ] [1] imsx_codeMinorFieldValue Property

5.3.26 imsx_StatusInfo Payload Class Mapping

The Payload UML/JSON Mapping for the "imsx_StatusInfo" Class is given in Table 5.3.26.

Table 5.3.26 Payload UML/JSON Mapping for the "imsx_StatusInfo" Class.
Information Model Details JSON Binding Details
Name UML Artefact Data Type Multiplicity Name Type
imsx_StatusInfo Core Container [ Sequence ] - N/A - imsx_StatusInfoDType Object
  • imsx_codeMajor
Attribute [ Enumeration (imsx_CodeMajorEnum) ] [1] imsx_codeMajor Property
  • imsx_severity
Attribute [ Enumeration (imsx_SeverityEnum) ] [1] imsx_severity Property
  • imsx_description
Attribute PT: String [0..1] imsx_description Property
  • imsx_CodeMinor
Attribute imsx_CodeMinor [0..1] imsx_CodeMinor Property

5.4 Enumerated Class UML/JSON Mapping

The definition of the set of enumerated data-types used in this specification is given in Table 5.4. The syntax and semantics for the Enumerated Class UML/JSON mapping representations is described in Appendix A2.3.

Table 5.4 The UML/JSON Map Enumerated Class Definitions.
Enumeration Class Name Description
AcadSessionGUIDRefTypeEnum Enumerated value set of: { academicSession }.
AssessmentLineItemGUIDRefTypeEnum Enumerated value set of: { assessmentLineItem }.
BaseStatusEnum Enumerated value set of: { active | tobedeleted }.
BooleanTrueFalseEnum Enumerated value set of: { true | false }.
CategoryGUIDRefTypeEnum Enumerated value set of: { category }.
ClassGUIDRefTypeEnum Enumerated value set of: { class }.
CourseGUIDRefTypeEnum Enumerated value set of: { course }.
LineItemGUIDRefTypeEnum Enumerated value set of: { lineItem }.
OrgGUIDRefTypeEnum Enumerated value set of: { org }.
ScoreScaleGUIDRefTypeEnum Enumerated value set of: { scoreScale }.
ScoreStatusEnum Enumerated value set of: { exempt | fully graded | not submitted | partially graded | submitted }.
SourceEnum Enumerated value set of: { case | unknown }.
UserGUIDRefTypeEnum Enumerated value set of: { user }.
imsx_CodeMajorEnum Enumerated value set of: { success | processing | failure | unsupported }.
imsx_CodeMinorValueEnum Enumerated value set of: { fullsuccess | invalid_filter_field | invalid_selection_field | invaliddata | unauthorisedrequest | internal_server_error | server_busy | deletefailure | unknownobject | forbidden }.
imsx_SeverityEnum Enumerated value set of: { status | warning | error }.

5.5 Enumerated List Class UML/JSON Mapping

There are no enumerated list class definitions.

5.6 Union Class UML/JSON Mapping

The definition of the set of union data-types used in this specification is given in Table 5.6. The syntax and semantics for the Union Class UML/JSON mapping representations is described in Appendix A2.4.

Table 5.6 The UML/JSON Map Union Class Definitions.
Union Class Name Description
ScoreStatusExtEnum This is a value from one of the set of data-types: ScoreStatusExtString, ScoreStatusEnum
SourceExtEnum This is a value from one of the set of data-types: SourceExtensionString, SourceEnum

5.7 Primitive Type UML/JSON Mapping

The definition of the set of primitive data-types used in this specification is given in Table 5.7. The syntax and semantics for the Primitive Type UML/JSON mapping representations is described in Appendix A2.4.

Table 5.7 The UML/JSON Map Primitive Type Definitions.
Primitive Type Name Description
AnyURI This is mapped to the JSON "string" data-type with the format of "uri".
Date This is mapped to the JSON "string" data-type with the format of "date".
DateTime This is mapped to the JSON "string" data-type with the format of "dateTime".
Float This is mapped to the JSON "number" data-type with the format of "float".
Namespace This denotes an extension facility. The class is permitted to have proprietary JSON properties i.e. "additionalProperties: true".
NormalizedString This is mapped to the JSON "string" data-type.
String This is mapped to the JSON "string" data-type.

toc | top

6. JSON Payloads

This Section is NOT NORMATIVE.

6.1 "deleteAssessmentLineItem" Request Payload

There is no payload for this request.

6.2 "deleteAssessmentLineItem" Response Payloads

6.2.1 Response Payloads for the HTTP Codes (204)

There is no payload for these responses i.e. only a HTTP response header is returned.

6.2.2 Response Payloads for the HTTP Codes (default, 401, 403, 404, 422, 429, 500)

A tabular description of the response payload is shown in the Table below.

Table 6.2.2 - Tabular representation of the JSON payload for "default, 401, 403, 404, 422, 429, 500" response messages for a "deleteAssessmentLineItem" operation.
Property Name Multiplicity JSON Data-type Description
    imsx_codeMajor [1..1] Enumeration The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.
    imsx_severity [1..1] Enumeration The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.
    imsx_description [0..1] String A human readable description supplied by the entity creating the status code information.
    imsx_CodeMinor [0..1] Object The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.
            imsx_codeMinorField [1..*] Array [ Object ] Each reported code minor status code.
                    imsx_codeMinorFieldName [1..1] String This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.
                    imsx_codeMinorFieldValue [1..1] Enumeration The code minor status code (this is a value from the corresponding enumerated vocabulary).

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.1c.

Code 6.2.2 - JSON payload example for "default, 401, 403, 404, 422, 429, 500" response messages for a "deleteAssessmentLineItem" 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_filter_field"|"invalid_selection_field"|"invaliddata"|"unauthorisedrequest"|"internal_server_error"|"server_busy"|"deletefailure"|"unknownobject"|"forbidden"
                },
                {...},
                {...}
            ]
        }
    }
                        

6.3 "deleteAssessmentResult" Request Payload

There is no payload for this request.

6.4 "deleteAssessmentResult" Response Payloads

6.4.1 Response Payloads for the HTTP Codes (204)

There is no payload for these responses i.e. only a HTTP response header is returned.

6.4.2 Response Payloads for the HTTP Codes (default, 401, 403, 404, 422, 429, 500)

A tabular description of the response payload is shown in the Table below.

Table 6.4.2 - Tabular representation of the JSON payload for "default, 401, 403, 404, 422, 429, 500" response messages for a "deleteAssessmentResult" operation.
Property Name Multiplicity JSON Data-type Description
    imsx_codeMajor [1..1] Enumeration The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.
    imsx_severity [1..1] Enumeration The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.
    imsx_description [0..1] String A human readable description supplied by the entity creating the status code information.
    imsx_CodeMinor [0..1] Object The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.
            imsx_codeMinorField [1..*] Array [ Object ] Each reported code minor status code.
                    imsx_codeMinorFieldName [1..1] String This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.
                    imsx_codeMinorFieldValue [1..1] Enumeration The code minor status code (this is a value from the corresponding enumerated vocabulary).

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.2c.

Code 6.4.2 - JSON payload example for "default, 401, 403, 404, 422, 429, 500" response messages for a "deleteAssessmentResult" 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_filter_field"|"invalid_selection_field"|"invaliddata"|"unauthorisedrequest"|"internal_server_error"|"server_busy"|"deletefailure"|"unknownobject"|"forbidden"
                },
                {...},
                {...}
            ]
        }
    }
                        

6.5 "deleteCategory" Request Payload

There is no payload for this request.

6.6 "deleteCategory" Response Payloads

6.6.1 Response Payloads for the HTTP Codes (204)

There is no payload for these responses i.e. only a HTTP response header is returned.

6.6.2 Response Payloads for the HTTP Codes (default, 401, 403, 404, 422, 429, 500)

A tabular description of the response payload is shown in the Table below.

Table 6.6.2 - Tabular representation of the JSON payload for "default, 401, 403, 404, 422, 429, 500" response messages for a "deleteCategory" operation.
Property Name Multiplicity JSON Data-type Description
    imsx_codeMajor [1..1] Enumeration The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.
    imsx_severity [1..1] Enumeration The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.
    imsx_description [0..1] String A human readable description supplied by the entity creating the status code information.
    imsx_CodeMinor [0..1] Object The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.
            imsx_codeMinorField [1..*] Array [ Object ] Each reported code minor status code.
                    imsx_codeMinorFieldName [1..1] String This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.
                    imsx_codeMinorFieldValue [1..1] Enumeration The code minor status code (this is a value from the corresponding enumerated vocabulary).

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.3c.

Code 6.6.2 - JSON payload example for "default, 401, 403, 404, 422, 429, 500" response messages for a "deleteCategory" 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_filter_field"|"invalid_selection_field"|"invaliddata"|"unauthorisedrequest"|"internal_server_error"|"server_busy"|"deletefailure"|"unknownobject"|"forbidden"
                },
                {...},
                {...}
            ]
        }
    }
                        

6.7 "deleteLineItem" Request Payload

There is no payload for this request.

6.8 "deleteLineItem" Response Payloads

6.8.1 Response Payloads for the HTTP Codes (204)

There is no payload for these responses i.e. only a HTTP response header is returned.

6.8.2 Response Payloads for the HTTP Codes (default, 401, 403, 404, 422, 429, 500)

A tabular description of the response payload is shown in the Table below.

Table 6.8.2 - Tabular representation of the JSON payload for "default, 401, 403, 404, 422, 429, 500" response messages for a "deleteLineItem" operation.
Property Name Multiplicity JSON Data-type Description
    imsx_codeMajor [1..1] Enumeration The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.
    imsx_severity [1..1] Enumeration The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.
    imsx_description [0..1] String A human readable description supplied by the entity creating the status code information.
    imsx_CodeMinor [0..1] Object The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.
            imsx_codeMinorField [1..*] Array [ Object ] Each reported code minor status code.
                    imsx_codeMinorFieldName [1..1] String This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.
                    imsx_codeMinorFieldValue [1..1] Enumeration The code minor status code (this is a value from the corresponding enumerated vocabulary).

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.4c.

Code 6.8.2 - JSON payload example for "default, 401, 403, 404, 422, 429, 500" response messages for a "deleteLineItem" 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_filter_field"|"invalid_selection_field"|"invaliddata"|"unauthorisedrequest"|"internal_server_error"|"server_busy"|"deletefailure"|"unknownobject"|"forbidden"
                },
                {...},
                {...}
            ]
        }
    }
                        

6.9 "deleteResult" Request Payload

There is no payload for this request.

6.10 "deleteResult" Response Payloads

6.10.1 Response Payloads for the HTTP Codes (204)

There is no payload for these responses i.e. only a HTTP response header is returned.

6.10.2 Response Payloads for the HTTP Codes (default, 401, 403, 404, 422, 429, 500)

A tabular description of the response payload is shown in the Table below.

Table 6.10.2 - Tabular representation of the JSON payload for "default, 401, 403, 404, 422, 429, 500" response messages for a "deleteResult" operation.
Property Name Multiplicity JSON Data-type Description
    imsx_codeMajor [1..1] Enumeration The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.
    imsx_severity [1..1] Enumeration The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.
    imsx_description [0..1] String A human readable description supplied by the entity creating the status code information.
    imsx_CodeMinor [0..1] Object The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.
            imsx_codeMinorField [1..*] Array [ Object ] Each reported code minor status code.
                    imsx_codeMinorFieldName [1..1] String This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.
                    imsx_codeMinorFieldValue [1..1] Enumeration The code minor status code (this is a value from the corresponding enumerated vocabulary).

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.5c.

Code 6.10.2 - JSON payload example for "default, 401, 403, 404, 422, 429, 500" response messages for a "deleteResult" 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_filter_field"|"invalid_selection_field"|"invaliddata"|"unauthorisedrequest"|"internal_server_error"|"server_busy"|"deletefailure"|"unknownobject"|"forbidden"
                },
                {...},
                {...}
            ]
        }
    }
                        

6.11 "deleteScoreScale" Request Payload

There is no payload for this request.

6.12 "deleteScoreScale" Response Payloads

6.12.1 Response Payloads for the HTTP Codes (204)

There is no payload for these responses i.e. only a HTTP response header is returned.

6.12.2 Response Payloads for the HTTP Codes (default, 401, 403, 404, 422, 429, 500)

A tabular description of the response payload is shown in the Table below.

Table 6.12.2 - Tabular representation of the JSON payload for "default, 401, 403, 404, 422, 429, 500" response messages for a "deleteScoreScale" operation.
Property Name Multiplicity JSON Data-type Description
    imsx_codeMajor [1..1] Enumeration The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.
    imsx_severity [1..1] Enumeration The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.
    imsx_description [0..1] String A human readable description supplied by the entity creating the status code information.
    imsx_CodeMinor [0..1] Object The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.
            imsx_codeMinorField [1..*] Array [ Object ] Each reported code minor status code.
                    imsx_codeMinorFieldName [1..1] String This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.
                    imsx_codeMinorFieldValue [1..1] Enumeration The code minor status code (this is a value from the corresponding enumerated vocabulary).

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.6c.

Code 6.12.2 - JSON payload example for "default, 401, 403, 404, 422, 429, 500" response messages for a "deleteScoreScale" 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_filter_field"|"invalid_selection_field"|"invaliddata"|"unauthorisedrequest"|"internal_server_error"|"server_busy"|"deletefailure"|"unknownobject"|"forbidden"
                },
                {...},
                {...}
            ]
        }
    }
                        

6.13 "getAllAssessmentLineItems" Request Payload

There is no payload for this request.

6.14 "getAllAssessmentLineItems" Response Payloads

6.14.1 Response Payloads for the HTTP Codes (200)

A tabular description of the response payload is shown in the Table below.

Table 6.14.1 - Tabular representation of the JSON payload for "200" response messages for a "getAllAssessmentLineItems" operation.
Property Name Multiplicity JSON Data-type Description
    assessmentLineItems [0..*] Array [ Object ] The collection of assessment lineItem instances. The order is not significant. The corresponding query constraints may result in no instances being returned.
            sourcedId [1..1] String The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.
            status [1..1] Enumeration All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
            dateLastModified [1..1] String (Format: date-time) All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.
            metadata [0..1] Object All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.
                    extensions [0..*] Set of Proprietary Properties The form of the extension is dependent on the binding technology being used. This specification is silent on what implementers may consider to be appropriate extensions.
            title [1..1] String The title, human readable, for the assessment lineItem. This should allow the assessment lineItem to be distinguished from its peer assessment lineItems.
            description [0..1] String A human readable description of the usage of the assessment lineItem.
            class [0..1] Object The GUID of the class to which the assessment lineItem has been assigned. Note that an assessment LineItem MAY be assigned tio a class.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'class'.
            parentAssessmentLineItem [0..1] Object The GUID of the parent assessment lineItem. This enables the assessment lineItems to be chained together in a parent/child hierarchy.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. an 'assessmentLineItem'.
            scoreScale [0..1] Object The GUID of the score scale to be used for the lineItem. This attribute was added in the OR 1.2 release.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'scoreScale'.
            resultValueMin [0..1] Float The minimum value (numeric) that can be assigned to the score attribute in a result. The score scale mapping should be used to map to other scores.
            resultValueMax [0..1] Float The maximum value (numeric) that can be assigned to the score attribute in a result. The score scale mapping should be used to map to other scores.
            learningObjectiveSet [0..*] Array [ Object ] The set of identifiers for the learning objectives to which this assessment is aligned. Any number groups of learning objectives can be assigned.
                    source [1..1] Union(SourceExtEnum) The source responsible for creating the learning objective identifiers. The permitted values are from an extensible vocabulary.
                    learningObjectiveIds [1..*] Array [ String ] The set of unique identifiers for the associated learning objectives. If these are CASE identifiers they MUST be valid UUIDs.

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.7b.

Code 6.14.1 - JSON payload example for "200" response messages for a "getAllAssessmentLineItems" operation.
    {
        "assessmentLineItems" : [
            {
                "sourcedId" : "..String..",
                "status" : "active"|"tobedeleted",
                "dateLastModified" : "..Date/Time..",
                "metadata" : {
                    "..permitted extension point.." : "..user defined value.."
                },
                "title" : "..NormalizedString..",
                "description" : "..String..",
                "class" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "class"
                },
                "parentAssessmentLineItem" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "assessmentLineItem"
                },
                "scoreScale" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "scoreScale"
                },
                "resultValueMin" : ..Number(Float)..,
                "resultValueMax" : ..Number(Float)..,
                "learningObjectiveSet" : [
                    {
                        "source" : "..select from Union..",
                        "learningObjectiveIds" : [ "..NormalizedString..", ..., "..NormalizedString.." ]
                    },
                    {...},
                    {...}
                ]
            },
            {...},
            {...}
        ]
    }
                        

6.14.2 Response Payloads for the HTTP Codes (default, 400, 401, 403, 422, 429, 500)

A tabular description of the response payload is shown in the Table below.

Table 6.14.2 - Tabular representation of the JSON payload for "default, 400, 401, 403, 422, 429, 500" response messages for a "getAllAssessmentLineItems" operation.
Property Name Multiplicity JSON Data-type Description
    imsx_codeMajor [1..1] Enumeration The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.
    imsx_severity [1..1] Enumeration The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.
    imsx_description [0..1] String A human readable description supplied by the entity creating the status code information.
    imsx_CodeMinor [0..1] Object The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.
            imsx_codeMinorField [1..*] Array [ Object ] Each reported code minor status code.
                    imsx_codeMinorFieldName [1..1] String This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.
                    imsx_codeMinorFieldValue [1..1] Enumeration The code minor status code (this is a value from the corresponding enumerated vocabulary).

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.7c.

Code 6.14.2 - JSON payload example for "default, 400, 401, 403, 422, 429, 500" response messages for a "getAllAssessmentLineItems" 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_filter_field"|"invalid_selection_field"|"invaliddata"|"unauthorisedrequest"|"internal_server_error"|"server_busy"|"deletefailure"|"unknownobject"|"forbidden"
                },
                {...},
                {...}
            ]
        }
    }
                        

6.15 "getAllAssessmentResults" Request Payload

There is no payload for this request.

6.16 "getAllAssessmentResults" Response Payloads

6.16.1 Response Payloads for the HTTP Codes (200)

A tabular description of the response payload is shown in the Table below.

Table 6.16.1 - Tabular representation of the JSON payload for "200" response messages for a "getAllAssessmentResults" operation.
Property Name Multiplicity JSON Data-type Description
    assessmentResults [0..*] Array [ Object ] The collection of assessment result instances. The order is not significant. The corresponding query constraints may result in no instances being returned.
            sourcedId [1..1] String The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.
            status [1..1] Enumeration All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
            dateLastModified [1..1] String (Format: date-time) All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.
            metadata [0..1] Object All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.
                    extensions [0..*] Set of Proprietary Properties The form of the extension is dependent on the binding technology being used. This specification is silent on what implementers may consider to be appropriate extensions.
            assessmentLineItem [1..1] Object The GUID of the assessment lineItem to which the assessment result is aligned.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. an 'assessmentLineItem'.
            student [1..1] Object The GUID of the student for whom the assessment result is assigned.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'user'.
            score [0..1] Float The score for the result. If a scoreScale is assigned then the value must align with the scale.
            textScore [0..1] String An optional non-numeric score value. If a scoreScale is assigned then the value must align with the scale.
            scoreDate [1..1] String (Format: date) The date at which the score is assigned or there is an update to the result e.g. change in the 'scoreStatus'.. The format is YYYY-MM-DD as defined in [ISO 8601].
            scoreScale [0..1] Object The GUID of the scoreScale against which the result is aligned.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'scoreScale'.
            scorePercentile [0..1] Float The percentile rank of a score is the percentage of scores in its frequency distribution that are equal to or lower than it.
            scoreStatus [1..1] Union(ScoreStatusExtEnum) The status of the score. The value is from an extensible enumerated vocabulary.
            comment [0..1] String A human readable comment about the score.
            learningObjectiveSet [0..*] Array [ Object ] The set of identifiers for the learning objectives to which this result is aligned. Any number groups of learning objectives can be assigned.
                    source [1..1] Union(SourceExtEnum) The source responsible for creating the learning objective identifiers. The permitted values are from an extensible vocabulary.
                    learningObjectiveResults [1..*] Array [ Object ] The set of unique identifiers for the associated learning objectives (these may have alignment with a mastery score). If these are CASE identifiers they MUST be valid UUIDs.
                            learningObjectiveId [1..1] String The unique identifier for the associated learning objective. If this is a CASE identifier it MUST be a valid UUID.
                            score [0..1] Float The optional mastery score supplied as a numeric value.
                            textScore [0..1] String The optional mastery score supplied in a non-numeric form.
            inProgress [0..1] Enumeration This is used to indicate that the associated work activity has been assigned and student's work product is not yet expected to have been submitted.
            incomplete [0..1] Enumeration This is used to indicate that the student's work product has been submitted but it is deemed incomplete by the teacher.
            late [0..1] Enumeration This is used to indicate that the student's work product is either past due or it has been submitted past the due date. The score on this result may be impacted as as result of this flag.
            missing [0..1] Enumeration This is used to indicate that the student's work product as not been submitted.

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.8b.

Code 6.16.1 - JSON payload example for "200" response messages for a "getAllAssessmentResults" operation.
    {
        "assessmentResults" : [
            {
                "sourcedId" : "..String..",
                "status" : "active"|"tobedeleted",
                "dateLastModified" : "..Date/Time..",
                "metadata" : {
                    "..permitted extension point.." : "..user defined value.."
                },
                "assessmentLineItem" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "assessmentLineItem"
                },
                "student" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "user"
                },
                "score" : ..Number(Float)..,
                "textScore" : "..NormalizedString..",
                "scoreDate" : "..String(Date)..",
                "scoreScale" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "scoreScale"
                },
                "scorePercentile" : ..Number(Float)..,
                "scoreStatus" : "..select from Union..",
                "comment" : "..String..",
                "learningObjectiveSet" : [
                    {
                        "source" : "..select from Union..",
                        "learningObjectiveResults" : [
                            {
                                "learningObjectiveId" : "..NormalizedString..",
                                "score" : ..Number(Float)..,
                                "textScore" : "..NormalizedString.."
                            },
                            {...},
                            {...}
                        ]
                    },
                    {...},
                    {...}
                ],
                "inProgress" : "true"|"false",
                "incomplete" : "true"|"false",
                "late" : "true"|"false",
                "missing" : "true"|"false"
            },
            {...},
            {...}
        ]
    }
                        

6.16.2 Response Payloads for the HTTP Codes (default, 400, 401, 403, 422, 429, 500)

A tabular description of the response payload is shown in the Table below.

Table 6.16.2 - Tabular representation of the JSON payload for "default, 400, 401, 403, 422, 429, 500" response messages for a "getAllAssessmentResults" operation.
Property Name Multiplicity JSON Data-type Description
    imsx_codeMajor [1..1] Enumeration The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.
    imsx_severity [1..1] Enumeration The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.
    imsx_description [0..1] String A human readable description supplied by the entity creating the status code information.
    imsx_CodeMinor [0..1] Object The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.
            imsx_codeMinorField [1..*] Array [ Object ] Each reported code minor status code.
                    imsx_codeMinorFieldName [1..1] String This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.
                    imsx_codeMinorFieldValue [1..1] Enumeration The code minor status code (this is a value from the corresponding enumerated vocabulary).

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.8c.

Code 6.16.2 - JSON payload example for "default, 400, 401, 403, 422, 429, 500" response messages for a "getAllAssessmentResults" 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_filter_field"|"invalid_selection_field"|"invaliddata"|"unauthorisedrequest"|"internal_server_error"|"server_busy"|"deletefailure"|"unknownobject"|"forbidden"
                },
                {...},
                {...}
            ]
        }
    }
                        

6.17 "getAllCategories" Request Payload

There is no payload for this request.

6.18 "getAllCategories" Response Payloads

6.18.1 Response Payloads for the HTTP Codes (200)

A tabular description of the response payload is shown in the Table below.

Table 6.18.1 - Tabular representation of the JSON payload for "200" response messages for a "getAllCategories" operation.
Property Name Multiplicity JSON Data-type Description
    categories [0..*] Array [ Object ] The collection of category instances. The order is not significant. The corresponding query constraints may result in no instances being returned.
            sourcedId [1..1] String The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.
            status [1..1] Enumeration All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
            dateLastModified [1..1] String (Format: date-time) All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.
            metadata [0..1] Object All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.
                    extensions [0..*] Set of Proprietary Properties The form of the extension is dependent on the binding technology being used. This specification is silent on what implementers may consider to be appropriate extensions.
            title [1..1] String The human readable title for the category.
            weight [0..1] Float Total weight of this grading category in calculation of the course final score.

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.9b.

Code 6.18.1 - JSON payload example for "200" response messages for a "getAllCategories" operation.
    {
        "categories" : [
            {
                "sourcedId" : "..String..",
                "status" : "active"|"tobedeleted",
                "dateLastModified" : "..Date/Time..",
                "metadata" : {
                    "..permitted extension point.." : "..user defined value.."
                },
                "title" : "..NormalizedString..",
                "weight" : ..Number(Float)..
            },
            {...},
            {...}
        ]
    }
                        

6.18.2 Response Payloads for the HTTP Codes (default, 400, 401, 403, 422, 429, 500)

A tabular description of the response payload is shown in the Table below.

Table 6.18.2 - Tabular representation of the JSON payload for "default, 400, 401, 403, 422, 429, 500" response messages for a "getAllCategories" operation.
Property Name Multiplicity JSON Data-type Description
    imsx_codeMajor [1..1] Enumeration The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.
    imsx_severity [1..1] Enumeration The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.
    imsx_description [0..1] String A human readable description supplied by the entity creating the status code information.
    imsx_CodeMinor [0..1] Object The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.
            imsx_codeMinorField [1..*] Array [ Object ] Each reported code minor status code.
                    imsx_codeMinorFieldName [1..1] String This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.
                    imsx_codeMinorFieldValue [1..1] Enumeration The code minor status code (this is a value from the corresponding enumerated vocabulary).

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.9c.

Code 6.18.2 - JSON payload example for "default, 400, 401, 403, 422, 429, 500" response messages for a "getAllCategories" 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_filter_field"|"invalid_selection_field"|"invaliddata"|"unauthorisedrequest"|"internal_server_error"|"server_busy"|"deletefailure"|"unknownobject"|"forbidden"
                },
                {...},
                {...}
            ]
        }
    }
                        

6.19 "getAllLineItems" Request Payload

There is no payload for this request.

6.20 "getAllLineItems" Response Payloads

6.20.1 Response Payloads for the HTTP Codes (200)

A tabular description of the response payload is shown in the Table below.

Table 6.20.1 - Tabular representation of the JSON payload for "200" response messages for a "getAllLineItems" operation.
Property Name Multiplicity JSON Data-type Description
    lineItems [0..*] Array [ Object ] The collection of lineItem instances. The order is not significant. The corresponding query constraints may result in no instances being returned.
            sourcedId [1..1] String The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.
            status [1..1] Enumeration All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
            dateLastModified [1..1] String (Format: date-time) All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.
            metadata [0..1] Object All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.
                    extensions [0..*] Set of Proprietary Properties The form of the extension is dependent on the binding technology being used. This specification is silent on what implementers may consider to be appropriate extensions.
            title [1..1] String The title, human readable, for the lineItem. This should allow the lineItem to be distinguished from its peer lineItems.
            description [0..1] String A human readable description of the usage of the lineItem.
            assignDate [1..1] String (Format: date-time) The date/time the activity being addressed by the lineItem was assigned to the student. This has a format as defined in [ISO 8601].
            dueDate [1..1] String (Format: date-time) The date/time by which the assignment must be completed and submitted. This has the dateTime format as defined in [ISO 8601].
            class [1..1] Object The GUID of the class to which the lineItem has been assigned.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'class'.
            school [1..1] Object The GUID of the school for whom the lineItem has been assigned. This attribute was added in the OR 1.2 release.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. an 'org'.
            category [1..1] Object The GUID of the category to which the lineItem has been assigned.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'category'.
            gradingPeriod [0..1] Object The GUID of the grading period for the lineItem. This attribute was added in the OR 1.2 release.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. an 'academicSession'.
            academicSession [0..1] Object The GUID of the academic session for the lineItem. This should NOT be defined if the 'gradingPeriod' attribute has been used.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. an 'academicSession'.
            scoreScale [0..1] Object The GUID of the score scale to be used for the lineItem. This attribute was added in the OR 1.2 release.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'scoreScale'.
            resultValueMin [0..1] Float The minimum value (numeric) that can be assigned to the score attribute in a result. The score scale mapping should be used to map to other scores.
            resultValueMax [0..1] Float The maximum value (numeric) that can be assigned to the score attribute in a result. The score scale mapping should be used to map to other scores.
            learningObjectiveSet [0..*] Array [ Object ] The set of identifiers for the learning objectives to which this assessment is aligned. Any number groups of learning objectives can be assigned.
                    source [1..1] Union(SourceExtEnum) The source responsible for creating the learning objective identifiers. The permitted values are from an extensible vocabulary.
                    learningObjectiveIds [1..*] Array [ String ] The set of unique identifiers for the associated learning objectives. If these are CASE identifiers they MUST be valid UUIDs.

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.10b.

Code 6.20.1 - JSON payload example for "200" response messages for a "getAllLineItems" operation.
    {
        "lineItems" : [
            {
                "sourcedId" : "..String..",
                "status" : "active"|"tobedeleted",
                "dateLastModified" : "..Date/Time..",
                "metadata" : {
                    "..permitted extension point.." : "..user defined value.."
                },
                "title" : "..NormalizedString..",
                "description" : "..String..",
                "assignDate" : "..Date/Time..",
                "dueDate" : "..Date/Time..",
                "class" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "class"
                },
                "school" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "org"
                },
                "category" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "category"
                },
                "gradingPeriod" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "academicSession"
                },
                "academicSession" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "academicSession"
                },
                "scoreScale" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "scoreScale"
                },
                "resultValueMin" : ..Number(Float)..,
                "resultValueMax" : ..Number(Float)..,
                "learningObjectiveSet" : [
                    {
                        "source" : "..select from Union..",
                        "learningObjectiveIds" : [ "..NormalizedString..", ..., "..NormalizedString.." ]
                    },
                    {...},
                    {...}
                ]
            },
            {...},
            {...}
        ]
    }
                        

6.20.2 Response Payloads for the HTTP Codes (default, 400, 401, 403, 422, 429, 500)

A tabular description of the response payload is shown in the Table below.

Table 6.20.2 - Tabular representation of the JSON payload for "default, 400, 401, 403, 422, 429, 500" response messages for a "getAllLineItems" operation.
Property Name Multiplicity JSON Data-type Description
    imsx_codeMajor [1..1] Enumeration The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.
    imsx_severity [1..1] Enumeration The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.
    imsx_description [0..1] String A human readable description supplied by the entity creating the status code information.
    imsx_CodeMinor [0..1] Object The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.
            imsx_codeMinorField [1..*] Array [ Object ] Each reported code minor status code.
                    imsx_codeMinorFieldName [1..1] String This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.
                    imsx_codeMinorFieldValue [1..1] Enumeration The code minor status code (this is a value from the corresponding enumerated vocabulary).

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.10c.

Code 6.20.2 - JSON payload example for "default, 400, 401, 403, 422, 429, 500" response messages for a "getAllLineItems" 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_filter_field"|"invalid_selection_field"|"invaliddata"|"unauthorisedrequest"|"internal_server_error"|"server_busy"|"deletefailure"|"unknownobject"|"forbidden"
                },
                {...},
                {...}
            ]
        }
    }
                        

6.21 "getAllResults" Request Payload

There is no payload for this request.

6.22 "getAllResults" Response Payloads

6.22.1 Response Payloads for the HTTP Codes (200)

A tabular description of the response payload is shown in the Table below.

Table 6.22.1 - Tabular representation of the JSON payload for "200" response messages for a "getAllResults" operation.
Property Name Multiplicity JSON Data-type Description
    results [0..*] Array [ Object ] The collection of result instances. The order is not significant. The corresponding query constraints may result in no instances being returned.
            sourcedId [1..1] String The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.
            status [1..1] Enumeration All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
            dateLastModified [1..1] String (Format: date-time) All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.
            metadata [0..1] Object All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.
                    extensions [0..*] Set of Proprietary Properties The form of the extension is dependent on the binding technology being used. This specification is silent on what implementers may consider to be appropriate extensions.
            lineItem [1..1] Object The GUID of the lineItem to which the result is aligned.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'lineItem'.
            student [1..1] Object The GUID of the student for whom the result is assigned.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'user'.
            class [0..1] Object The GUID of the class to which the result is aligned.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'class'.
            scoreScale [0..1] Object The GUID of the scoreScale against which the result is aligned.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'scoreScale'.
            scoreStatus [1..1] Union(ScoreStatusExtEnum) The status of the score. The value is from an extensible enumerated vocabulary.
            score [0..1] Float The score for the result. If a scoreScale is assigned then the value must align with the scale.
            textScore [0..1] String An optional non-numeric score value. If a scoreScale is assigned then the value must align with the scale. This attribute was added in OR 1.2.
            scoreDate [1..1] String (Format: date) The date at which the score is assigned or there is an update to the result e.g. change in the 'scoreStatus'. The format is YYYY-MM-DD as defined in [ISO 8601].
            comment [0..1] String A human readable comment about the score.
            learningObjectiveSet [0..*] Array [ Object ] The set of identifiers for the learning objectives to which this result is aligned. Any number groups of learning objectives can be assigned.
                    source [1..1] Union(SourceExtEnum) The source responsible for creating the learning objective identifiers. The permitted values are from an extensible vocabulary.
                    learningObjectiveResults [1..*] Array [ Object ] The set of unique identifiers for the associated learning objectives (these may have alignment with a mastery score). If these are CASE identifiers they MUST be valid UUIDs.
                            learningObjectiveId [1..1] String The unique identifier for the associated learning objective. If this is a CASE identifier it MUST be a valid UUID.
                            score [0..1] Float The optional mastery score supplied as a numeric value.
                            textScore [0..1] String The optional mastery score supplied in a non-numeric form.
            inProgress [0..1] Enumeration This is used to indicate that the associated work activity has been assigned and student's work product is not yet expected to have been submitted.
            incomplete [0..1] Enumeration This is used to indicate that the student's work product has been submitted but it is deemed incomplete by the teacher.
            late [0..1] Enumeration This is used to indicate that the student's work product is either past due or it has been submitted past the due date. The score on this result may be impacted as as result of this flag.
            missing [0..1] Enumeration This is used to indicate that the student's work product as not been submitted.

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.11b.

Code 6.22.1 - JSON payload example for "200" response messages for a "getAllResults" operation.
    {
        "results" : [
            {
                "sourcedId" : "..String..",
                "status" : "active"|"tobedeleted",
                "dateLastModified" : "..Date/Time..",
                "metadata" : {
                    "..permitted extension point.." : "..user defined value.."
                },
                "lineItem" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "lineItem"
                },
                "student" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "user"
                },
                "class" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "class"
                },
                "scoreScale" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "scoreScale"
                },
                "scoreStatus" : "..select from Union..",
                "score" : ..Number(Float)..,
                "textScore" : "..NormalizedString..",
                "scoreDate" : "..String(Date)..",
                "comment" : "..String..",
                "learningObjectiveSet" : [
                    {
                        "source" : "..select from Union..",
                        "learningObjectiveResults" : [
                            {
                                "learningObjectiveId" : "..NormalizedString..",
                                "score" : ..Number(Float)..,
                                "textScore" : "..NormalizedString.."
                            },
                            {...},
                            {...}
                        ]
                    },
                    {...},
                    {...}
                ],
                "inProgress" : "true"|"false",
                "incomplete" : "true"|"false",
                "late" : "true"|"false",
                "missing" : "true"|"false"
            },
            {...},
            {...}
        ]
    }
                        

6.22.2 Response Payloads for the HTTP Codes (default, 400, 401, 403, 422, 429, 500)

A tabular description of the response payload is shown in the Table below.

Table 6.22.2 - Tabular representation of the JSON payload for "default, 400, 401, 403, 422, 429, 500" response messages for a "getAllResults" operation.
Property Name Multiplicity JSON Data-type Description
    imsx_codeMajor [1..1] Enumeration The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.
    imsx_severity [1..1] Enumeration The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.
    imsx_description [0..1] String A human readable description supplied by the entity creating the status code information.
    imsx_CodeMinor [0..1] Object The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.
            imsx_codeMinorField [1..*] Array [ Object ] Each reported code minor status code.
                    imsx_codeMinorFieldName [1..1] String This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.
                    imsx_codeMinorFieldValue [1..1] Enumeration The code minor status code (this is a value from the corresponding enumerated vocabulary).

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.11c.

Code 6.22.2 - JSON payload example for "default, 400, 401, 403, 422, 429, 500" response messages for a "getAllResults" 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_filter_field"|"invalid_selection_field"|"invaliddata"|"unauthorisedrequest"|"internal_server_error"|"server_busy"|"deletefailure"|"unknownobject"|"forbidden"
                },
                {...},
                {...}
            ]
        }
    }
                        

6.23 "getAllScoreScales" Request Payload

There is no payload for this request.

6.24 "getAllScoreScales" Response Payloads

6.24.1 Response Payloads for the HTTP Codes (200)

A tabular description of the response payload is shown in the Table below.

Table 6.24.1 - Tabular representation of the JSON payload for "200" response messages for a "getAllScoreScales" operation.
Property Name Multiplicity JSON Data-type Description
    scoreScales [0..*] Array [ Object ] The collection of scoreScale instances. The order is not significant. The corresponding query constraints may result in no instances being returned.
            sourcedId [1..1] String The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.
            status [1..1] Enumeration All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
            dateLastModified [1..1] String (Format: date-time) All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.
            metadata [0..1] Object All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.
                    extensions [0..*] Set of Proprietary Properties The form of the extension is dependent on the binding technology being used. This specification is silent on what implementers may consider to be appropriate extensions.
            title [1..1] String The human readable title for the score scale mapping.
            type [1..1] String The type of score scale mapping. At present there is no predefined vocabulary. This should be used by an organization to differentiate between the score scales that it produces.
            course [0..1] Object The GUID for the course for which this scale will be used.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'course'.
            class [1..1] Object The GUID for the class for which this scale will be used.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'class'.
            scoreScaleValue [1..*] Array [ Object ] The set of mappings for this score scale.
                    itemValueLHS [1..1] String The left hand side value of the mapping relationship. The format is either a single value ('x') or a range ('x' - 'y'). In the case of a single value this is considered to be the inclusive lower value for the implied range. When a range is specified (lower-to-upper) the values are inclusive.
                    itemValueRHS [1..1] String The right hand side value of the mapping relationship i.e. the equivalent value to the reference point defined in the LHS.

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.12b.

Code 6.24.1 - JSON payload example for "200" response messages for a "getAllScoreScales" operation.
    {
        "scoreScales" : [
            {
                "sourcedId" : "..String..",
                "status" : "active"|"tobedeleted",
                "dateLastModified" : "..Date/Time..",
                "metadata" : {
                    "..permitted extension point.." : "..user defined value.."
                },
                "title" : "..NormalizedString..",
                "type" : "..NormalizedString..",
                "course" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "course"
                },
                "class" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "class"
                },
                "scoreScaleValue" : [
                    {
                        "itemValueLHS" : "..NormalizedString..",
                        "itemValueRHS" : "..NormalizedString.."
                    },
                    {...},
                    {...}
                ]
            },
            {...},
            {...}
        ]
    }
                        

6.24.2 Response Payloads for the HTTP Codes (default, 400, 401, 403, 422, 429, 500)

A tabular description of the response payload is shown in the Table below.

Table 6.24.2 - Tabular representation of the JSON payload for "default, 400, 401, 403, 422, 429, 500" response messages for a "getAllScoreScales" operation.
Property Name Multiplicity JSON Data-type Description
    imsx_codeMajor [1..1] Enumeration The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.
    imsx_severity [1..1] Enumeration The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.
    imsx_description [0..1] String A human readable description supplied by the entity creating the status code information.
    imsx_CodeMinor [0..1] Object The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.
            imsx_codeMinorField [1..*] Array [ Object ] Each reported code minor status code.
                    imsx_codeMinorFieldName [1..1] String This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.
                    imsx_codeMinorFieldValue [1..1] Enumeration The code minor status code (this is a value from the corresponding enumerated vocabulary).

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.12c.

Code 6.24.2 - JSON payload example for "default, 400, 401, 403, 422, 429, 500" response messages for a "getAllScoreScales" 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_filter_field"|"invalid_selection_field"|"invaliddata"|"unauthorisedrequest"|"internal_server_error"|"server_busy"|"deletefailure"|"unknownobject"|"forbidden"
                },
                {...},
                {...}
            ]
        }
    }
                        

6.25 "getAssessmentLineItem" Request Payload

There is no payload for this request.

6.26 "getAssessmentLineItem" Response Payloads

6.26.1 Response Payloads for the HTTP Codes (200)

A tabular description of the response payload is shown in the Table below.

Table 6.26.1 - Tabular representation of the JSON payload for "200" response messages for a "getAssessmentLineItem" operation.
Property Name Multiplicity JSON Data-type Description
    assessmentLineItem [1..1] Object The instance of the single assessment lineItem for a message payload. There must be a data payload otherwise an error report payload for the record not being located should be returned.
            sourcedId [1..1] String The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.
            status [1..1] Enumeration All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
            dateLastModified [1..1] String (Format: date-time) All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.
            metadata [0..1] Object All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.
                    extensions [0..*] Set of Proprietary Properties The form of the extension is dependent on the binding technology being used. This specification is silent on what implementers may consider to be appropriate extensions.
            title [1..1] String The title, human readable, for the assessment lineItem. This should allow the assessment lineItem to be distinguished from its peer assessment lineItems.
            description [0..1] String A human readable description of the usage of the assessment lineItem.
            class [0..1] Object The GUID of the class to which the assessment lineItem has been assigned. Note that an assessment LineItem MAY be assigned tio a class.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'class'.
            parentAssessmentLineItem [0..1] Object The GUID of the parent assessment lineItem. This enables the assessment lineItems to be chained together in a parent/child hierarchy.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. an 'assessmentLineItem'.
            scoreScale [0..1] Object The GUID of the score scale to be used for the lineItem. This attribute was added in the OR 1.2 release.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'scoreScale'.
            resultValueMin [0..1] Float The minimum value (numeric) that can be assigned to the score attribute in a result. The score scale mapping should be used to map to other scores.
            resultValueMax [0..1] Float The maximum value (numeric) that can be assigned to the score attribute in a result. The score scale mapping should be used to map to other scores.
            learningObjectiveSet [0..*] Array [ Object ] The set of identifiers for the learning objectives to which this assessment is aligned. Any number groups of learning objectives can be assigned.
                    source [1..1] Union(SourceExtEnum) The source responsible for creating the learning objective identifiers. The permitted values are from an extensible vocabulary.
                    learningObjectiveIds [1..*] Array [ String ] The set of unique identifiers for the associated learning objectives. If these are CASE identifiers they MUST be valid UUIDs.

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.13b.

Code 6.26.1 - JSON payload example for "200" response messages for a "getAssessmentLineItem" operation.
    {
        "assessmentLineItem" : {
            "sourcedId" : "..String..",
            "status" : "active"|"tobedeleted",
            "dateLastModified" : "..Date/Time..",
            "metadata" : {
                "..permitted extension point.." : "..user defined value.."
            },
            "title" : "..NormalizedString..",
            "description" : "..String..",
            "class" : {
                "href" : "..URI..",
                "sourcedId" : "..String..",
                "type" : "class"
            },
            "parentAssessmentLineItem" : {
                "href" : "..URI..",
                "sourcedId" : "..String..",
                "type" : "assessmentLineItem"
            },
            "scoreScale" : {
                "href" : "..URI..",
                "sourcedId" : "..String..",
                "type" : "scoreScale"
            },
            "resultValueMin" : ..Number(Float)..,
            "resultValueMax" : ..Number(Float)..,
            "learningObjectiveSet" : [
                {
                    "source" : "..select from Union..",
                    "learningObjectiveIds" : [ "..NormalizedString..", ..., "..NormalizedString.." ]
                },
                {...},
                {...}
            ]
        }
    }
                        

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

A tabular description of the response payload is shown in the Table below.

Table 6.26.2 - Tabular representation of the JSON payload for "default, 400, 401, 403, 404, 422, 429, 500" response messages for a "getAssessmentLineItem" operation.
Property Name Multiplicity JSON Data-type Description
    imsx_codeMajor [1..1] Enumeration The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.
    imsx_severity [1..1] Enumeration The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.
    imsx_description [0..1] String A human readable description supplied by the entity creating the status code information.
    imsx_CodeMinor [0..1] Object The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.
            imsx_codeMinorField [1..*] Array [ Object ] Each reported code minor status code.
                    imsx_codeMinorFieldName [1..1] String This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.
                    imsx_codeMinorFieldValue [1..1] Enumeration The code minor status code (this is a value from the corresponding enumerated vocabulary).

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.13c.

Code 6.26.2 - JSON payload example for "default, 400, 401, 403, 404, 422, 429, 500" response messages for a "getAssessmentLineItem" 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_filter_field"|"invalid_selection_field"|"invaliddata"|"unauthorisedrequest"|"internal_server_error"|"server_busy"|"deletefailure"|"unknownobject"|"forbidden"
                },
                {...},
                {...}
            ]
        }
    }
                        

6.27 "getAssessmentResult" Request Payload

There is no payload for this request.

6.28 "getAssessmentResult" Response Payloads

6.28.1 Response Payloads for the HTTP Codes (200)

A tabular description of the response payload is shown in the Table below.

Table 6.28.1 - Tabular representation of the JSON payload for "200" response messages for a "getAssessmentResult" operation.
Property Name Multiplicity JSON Data-type Description
    assessmentResult [1..1] Object The instance of the single assessment result for a message payload. There must be a data payload otherwise an error report payload for the record not being located should be returned.
            sourcedId [1..1] String The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.
            status [1..1] Enumeration All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
            dateLastModified [1..1] String (Format: date-time) All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.
            metadata [0..1] Object All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.
                    extensions [0..*] Set of Proprietary Properties The form of the extension is dependent on the binding technology being used. This specification is silent on what implementers may consider to be appropriate extensions.
            assessmentLineItem [1..1] Object The GUID of the assessment lineItem to which the assessment result is aligned.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. an 'assessmentLineItem'.
            student [1..1] Object The GUID of the student for whom the assessment result is assigned.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'user'.
            score [0..1] Float The score for the result. If a scoreScale is assigned then the value must align with the scale.
            textScore [0..1] String An optional non-numeric score value. If a scoreScale is assigned then the value must align with the scale.
            scoreDate [1..1] String (Format: date) The date at which the score is assigned or there is an update to the result e.g. change in the 'scoreStatus'.. The format is YYYY-MM-DD as defined in [ISO 8601].
            scoreScale [0..1] Object The GUID of the scoreScale against which the result is aligned.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'scoreScale'.
            scorePercentile [0..1] Float The percentile rank of a score is the percentage of scores in its frequency distribution that are equal to or lower than it.
            scoreStatus [1..1] Union(ScoreStatusExtEnum) The status of the score. The value is from an extensible enumerated vocabulary.
            comment [0..1] String A human readable comment about the score.
            learningObjectiveSet [0..*] Array [ Object ] The set of identifiers for the learning objectives to which this result is aligned. Any number groups of learning objectives can be assigned.
                    source [1..1] Union(SourceExtEnum) The source responsible for creating the learning objective identifiers. The permitted values are from an extensible vocabulary.
                    learningObjectiveResults [1..*] Array [ Object ] The set of unique identifiers for the associated learning objectives (these may have alignment with a mastery score). If these are CASE identifiers they MUST be valid UUIDs.
                            learningObjectiveId [1..1] String The unique identifier for the associated learning objective. If this is a CASE identifier it MUST be a valid UUID.
                            score [0..1] Float The optional mastery score supplied as a numeric value.
                            textScore [0..1] String The optional mastery score supplied in a non-numeric form.
            inProgress [0..1] Enumeration This is used to indicate that the associated work activity has been assigned and student's work product is not yet expected to have been submitted.
            incomplete [0..1] Enumeration This is used to indicate that the student's work product has been submitted but it is deemed incomplete by the teacher.
            late [0..1] Enumeration This is used to indicate that the student's work product is either past due or it has been submitted past the due date. The score on this result may be impacted as as result of this flag.
            missing [0..1] Enumeration This is used to indicate that the student's work product as not been submitted.

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.14b.

Code 6.28.1 - JSON payload example for "200" response messages for a "getAssessmentResult" operation.
    {
        "assessmentResult" : {
            "sourcedId" : "..String..",
            "status" : "active"|"tobedeleted",
            "dateLastModified" : "..Date/Time..",
            "metadata" : {
                "..permitted extension point.." : "..user defined value.."
            },
            "assessmentLineItem" : {
                "href" : "..URI..",
                "sourcedId" : "..String..",
                "type" : "assessmentLineItem"
            },
            "student" : {
                "href" : "..URI..",
                "sourcedId" : "..String..",
                "type" : "user"
            },
            "score" : ..Number(Float)..,
            "textScore" : "..NormalizedString..",
            "scoreDate" : "..String(Date)..",
            "scoreScale" : {
                "href" : "..URI..",
                "sourcedId" : "..String..",
                "type" : "scoreScale"
            },
            "scorePercentile" : ..Number(Float)..,
            "scoreStatus" : "..select from Union..",
            "comment" : "..String..",
            "learningObjectiveSet" : [
                {
                    "source" : "..select from Union..",
                    "learningObjectiveResults" : [
                        {
                            "learningObjectiveId" : "..NormalizedString..",
                            "score" : ..Number(Float)..,
                            "textScore" : "..NormalizedString.."
                        },
                        {...},
                        {...}
                    ]
                },
                {...},
                {...}
            ],
            "inProgress" : "true"|"false",
            "incomplete" : "true"|"false",
            "late" : "true"|"false",
            "missing" : "true"|"false"
        }
    }
                        

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

A tabular description of the response payload is shown in the Table below.

Table 6.28.2 - Tabular representation of the JSON payload for "default, 400, 401, 403, 404, 422, 429, 500" response messages for a "getAssessmentResult" operation.
Property Name Multiplicity JSON Data-type Description
    imsx_codeMajor [1..1] Enumeration The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.
    imsx_severity [1..1] Enumeration The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.
    imsx_description [0..1] String A human readable description supplied by the entity creating the status code information.
    imsx_CodeMinor [0..1] Object The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.
            imsx_codeMinorField [1..*] Array [ Object ] Each reported code minor status code.
                    imsx_codeMinorFieldName [1..1] String This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.
                    imsx_codeMinorFieldValue [1..1] Enumeration The code minor status code (this is a value from the corresponding enumerated vocabulary).

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.14c.

Code 6.28.2 - JSON payload example for "default, 400, 401, 403, 404, 422, 429, 500" response messages for a "getAssessmentResult" 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_filter_field"|"invalid_selection_field"|"invaliddata"|"unauthorisedrequest"|"internal_server_error"|"server_busy"|"deletefailure"|"unknownobject"|"forbidden"
                },
                {...},
                {...}
            ]
        }
    }
                        

6.29 "getCategoriesForClass" Request Payload

There is no payload for this request.

6.30 "getCategoriesForClass" Response Payloads

6.30.1 Response Payloads for the HTTP Codes (200)

A tabular description of the response payload is shown in the Table below.

Table 6.30.1 - Tabular representation of the JSON payload for "200" response messages for a "getCategoriesForClass" operation.
Property Name Multiplicity JSON Data-type Description
    categories [0..*] Array [ Object ] The collection of category instances. The order is not significant. The corresponding query constraints may result in no instances being returned.
            sourcedId [1..1] String The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.
            status [1..1] Enumeration All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
            dateLastModified [1..1] String (Format: date-time) All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.
            metadata [0..1] Object All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.
                    extensions [0..*] Set of Proprietary Properties The form of the extension is dependent on the binding technology being used. This specification is silent on what implementers may consider to be appropriate extensions.
            title [1..1] String The human readable title for the category.
            weight [0..1] Float Total weight of this grading category in calculation of the course final score.

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.15b.

Code 6.30.1 - JSON payload example for "200" response messages for a "getCategoriesForClass" operation.
    {
        "categories" : [
            {
                "sourcedId" : "..String..",
                "status" : "active"|"tobedeleted",
                "dateLastModified" : "..Date/Time..",
                "metadata" : {
                    "..permitted extension point.." : "..user defined value.."
                },
                "title" : "..NormalizedString..",
                "weight" : ..Number(Float)..
            },
            {...},
            {...}
        ]
    }
                        

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

A tabular description of the response payload is shown in the Table below.

Table 6.30.2 - Tabular representation of the JSON payload for "default, 400, 401, 403, 404, 422, 429, 500" response messages for a "getCategoriesForClass" operation.
Property Name Multiplicity JSON Data-type Description
    imsx_codeMajor [1..1] Enumeration The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.
    imsx_severity [1..1] Enumeration The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.
    imsx_description [0..1] String A human readable description supplied by the entity creating the status code information.
    imsx_CodeMinor [0..1] Object The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.
            imsx_codeMinorField [1..*] Array [ Object ] Each reported code minor status code.
                    imsx_codeMinorFieldName [1..1] String This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.
                    imsx_codeMinorFieldValue [1..1] Enumeration The code minor status code (this is a value from the corresponding enumerated vocabulary).

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.15c.

Code 6.30.2 - JSON payload example for "default, 400, 401, 403, 404, 422, 429, 500" response messages for a "getCategoriesForClass" 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_filter_field"|"invalid_selection_field"|"invaliddata"|"unauthorisedrequest"|"internal_server_error"|"server_busy"|"deletefailure"|"unknownobject"|"forbidden"
                },
                {...},
                {...}
            ]
        }
    }
                        

6.31 "getCategory" Request Payload

There is no payload for this request.

6.32 "getCategory" Response Payloads

6.32.1 Response Payloads for the HTTP Codes (200)

A tabular description of the response payload is shown in the Table below.

Table 6.32.1 - Tabular representation of the JSON payload for "200" response messages for a "getCategory" operation.
Property Name Multiplicity JSON Data-type Description
    category [1..1] Object The instance of the single category for a message payload. There must be a data payload otherwise an error report payload for the record not being located should be returned.
            sourcedId [1..1] String The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.
            status [1..1] Enumeration All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
            dateLastModified [1..1] String (Format: date-time) All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.
            metadata [0..1] Object All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.
                    extensions [0..*] Set of Proprietary Properties The form of the extension is dependent on the binding technology being used. This specification is silent on what implementers may consider to be appropriate extensions.
            title [1..1] String The human readable title for the category.
            weight [0..1] Float Total weight of this grading category in calculation of the course final score.

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.16b.

Code 6.32.1 - JSON payload example for "200" response messages for a "getCategory" operation.
    {
        "category" : {
            "sourcedId" : "..String..",
            "status" : "active"|"tobedeleted",
            "dateLastModified" : "..Date/Time..",
            "metadata" : {
                "..permitted extension point.." : "..user defined value.."
            },
            "title" : "..NormalizedString..",
            "weight" : ..Number(Float)..
        }
    }
                        

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

A tabular description of the response payload is shown in the Table below.

Table 6.32.2 - Tabular representation of the JSON payload for "default, 400, 401, 403, 404, 422, 429, 500" response messages for a "getCategory" operation.
Property Name Multiplicity JSON Data-type Description
    imsx_codeMajor [1..1] Enumeration The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.
    imsx_severity [1..1] Enumeration The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.
    imsx_description [0..1] String A human readable description supplied by the entity creating the status code information.
    imsx_CodeMinor [0..1] Object The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.
            imsx_codeMinorField [1..*] Array [ Object ] Each reported code minor status code.
                    imsx_codeMinorFieldName [1..1] String This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.
                    imsx_codeMinorFieldValue [1..1] Enumeration The code minor status code (this is a value from the corresponding enumerated vocabulary).

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.16c.

Code 6.32.2 - JSON payload example for "default, 400, 401, 403, 404, 422, 429, 500" response messages for a "getCategory" 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_filter_field"|"invalid_selection_field"|"invaliddata"|"unauthorisedrequest"|"internal_server_error"|"server_busy"|"deletefailure"|"unknownobject"|"forbidden"
                },
                {...},
                {...}
            ]
        }
    }
                        

6.33 "getLineItem" Request Payload

There is no payload for this request.

6.34 "getLineItem" Response Payloads

6.34.1 Response Payloads for the HTTP Codes (200)

A tabular description of the response payload is shown in the Table below.

Table 6.34.1 - Tabular representation of the JSON payload for "200" response messages for a "getLineItem" operation.
Property Name Multiplicity JSON Data-type Description
    lineItem [1..1] Object The instance of the single lineItem for a message payload. There must be a data payload otherwise an error report payload for the record not being located should be returned.
            sourcedId [1..1] String The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.
            status [1..1] Enumeration All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
            dateLastModified [1..1] String (Format: date-time) All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.
            metadata [0..1] Object All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.
                    extensions [0..*] Set of Proprietary Properties The form of the extension is dependent on the binding technology being used. This specification is silent on what implementers may consider to be appropriate extensions.
            title [1..1] String The title, human readable, for the lineItem. This should allow the lineItem to be distinguished from its peer lineItems.
            description [0..1] String A human readable description of the usage of the lineItem.
            assignDate [1..1] String (Format: date-time) The date/time the activity being addressed by the lineItem was assigned to the student. This has a format as defined in [ISO 8601].
            dueDate [1..1] String (Format: date-time) The date/time by which the assignment must be completed and submitted. This has the dateTime format as defined in [ISO 8601].
            class [1..1] Object The GUID of the class to which the lineItem has been assigned.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'class'.
            school [1..1] Object The GUID of the school for whom the lineItem has been assigned. This attribute was added in the OR 1.2 release.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. an 'org'.
            category [1..1] Object The GUID of the category to which the lineItem has been assigned.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'category'.
            gradingPeriod [0..1] Object The GUID of the grading period for the lineItem. This attribute was added in the OR 1.2 release.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. an 'academicSession'.
            academicSession [0..1] Object The GUID of the academic session for the lineItem. This should NOT be defined if the 'gradingPeriod' attribute has been used.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. an 'academicSession'.
            scoreScale [0..1] Object The GUID of the score scale to be used for the lineItem. This attribute was added in the OR 1.2 release.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'scoreScale'.
            resultValueMin [0..1] Float The minimum value (numeric) that can be assigned to the score attribute in a result. The score scale mapping should be used to map to other scores.
            resultValueMax [0..1] Float The maximum value (numeric) that can be assigned to the score attribute in a result. The score scale mapping should be used to map to other scores.
            learningObjectiveSet [0..*] Array [ Object ] The set of identifiers for the learning objectives to which this assessment is aligned. Any number groups of learning objectives can be assigned.
                    source [1..1] Union(SourceExtEnum) The source responsible for creating the learning objective identifiers. The permitted values are from an extensible vocabulary.
                    learningObjectiveIds [1..*] Array [ String ] The set of unique identifiers for the associated learning objectives. If these are CASE identifiers they MUST be valid UUIDs.

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.17b.

Code 6.34.1 - JSON payload example for "200" response messages for a "getLineItem" operation.
    {
        "lineItem" : {
            "sourcedId" : "..String..",
            "status" : "active"|"tobedeleted",
            "dateLastModified" : "..Date/Time..",
            "metadata" : {
                "..permitted extension point.." : "..user defined value.."
            },
            "title" : "..NormalizedString..",
            "description" : "..String..",
            "assignDate" : "..Date/Time..",
            "dueDate" : "..Date/Time..",
            "class" : {
                "href" : "..URI..",
                "sourcedId" : "..String..",
                "type" : "class"
            },
            "school" : {
                "href" : "..URI..",
                "sourcedId" : "..String..",
                "type" : "org"
            },
            "category" : {
                "href" : "..URI..",
                "sourcedId" : "..String..",
                "type" : "category"
            },
            "gradingPeriod" : {
                "href" : "..URI..",
                "sourcedId" : "..String..",
                "type" : "academicSession"
            },
            "academicSession" : {
                "href" : "..URI..",
                "sourcedId" : "..String..",
                "type" : "academicSession"
            },
            "scoreScale" : {
                "href" : "..URI..",
                "sourcedId" : "..String..",
                "type" : "scoreScale"
            },
            "resultValueMin" : ..Number(Float)..,
            "resultValueMax" : ..Number(Float)..,
            "learningObjectiveSet" : [
                {
                    "source" : "..select from Union..",
                    "learningObjectiveIds" : [ "..NormalizedString..", ..., "..NormalizedString.." ]
                },
                {...},
                {...}
            ]
        }
    }
                        

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

A tabular description of the response payload is shown in the Table below.

Table 6.34.2 - Tabular representation of the JSON payload for "default, 400, 401, 403, 404, 422, 429, 500" response messages for a "getLineItem" operation.
Property Name Multiplicity JSON Data-type Description
    imsx_codeMajor [1..1] Enumeration The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.
    imsx_severity [1..1] Enumeration The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.
    imsx_description [0..1] String A human readable description supplied by the entity creating the status code information.
    imsx_CodeMinor [0..1] Object The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.
            imsx_codeMinorField [1..*] Array [ Object ] Each reported code minor status code.
                    imsx_codeMinorFieldName [1..1] String This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.
                    imsx_codeMinorFieldValue [1..1] Enumeration The code minor status code (this is a value from the corresponding enumerated vocabulary).

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.17c.

Code 6.34.2 - JSON payload example for "default, 400, 401, 403, 404, 422, 429, 500" response messages for a "getLineItem" 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_filter_field"|"invalid_selection_field"|"invaliddata"|"unauthorisedrequest"|"internal_server_error"|"server_busy"|"deletefailure"|"unknownobject"|"forbidden"
                },
                {...},
                {...}
            ]
        }
    }
                        

6.35 "getLineItemsForClass" Request Payload

There is no payload for this request.

6.36 "getLineItemsForClass" Response Payloads

6.36.1 Response Payloads for the HTTP Codes (200)

A tabular description of the response payload is shown in the Table below.

Table 6.36.1 - Tabular representation of the JSON payload for "200" response messages for a "getLineItemsForClass" operation.
Property Name Multiplicity JSON Data-type Description
    lineItems [0..*] Array [ Object ] The collection of lineItem instances. The order is not significant. The corresponding query constraints may result in no instances being returned.
            sourcedId [1..1] String The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.
            status [1..1] Enumeration All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
            dateLastModified [1..1] String (Format: date-time) All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.
            metadata [0..1] Object All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.
                    extensions [0..*] Set of Proprietary Properties The form of the extension is dependent on the binding technology being used. This specification is silent on what implementers may consider to be appropriate extensions.
            title [1..1] String The title, human readable, for the lineItem. This should allow the lineItem to be distinguished from its peer lineItems.
            description [0..1] String A human readable description of the usage of the lineItem.
            assignDate [1..1] String (Format: date-time) The date/time the activity being addressed by the lineItem was assigned to the student. This has a format as defined in [ISO 8601].
            dueDate [1..1] String (Format: date-time) The date/time by which the assignment must be completed and submitted. This has the dateTime format as defined in [ISO 8601].
            class [1..1] Object The GUID of the class to which the lineItem has been assigned.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'class'.
            school [1..1] Object The GUID of the school for whom the lineItem has been assigned. This attribute was added in the OR 1.2 release.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. an 'org'.
            category [1..1] Object The GUID of the category to which the lineItem has been assigned.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'category'.
            gradingPeriod [0..1] Object The GUID of the grading period for the lineItem. This attribute was added in the OR 1.2 release.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. an 'academicSession'.
            academicSession [0..1] Object The GUID of the academic session for the lineItem. This should NOT be defined if the 'gradingPeriod' attribute has been used.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. an 'academicSession'.
            scoreScale [0..1] Object The GUID of the score scale to be used for the lineItem. This attribute was added in the OR 1.2 release.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'scoreScale'.
            resultValueMin [0..1] Float The minimum value (numeric) that can be assigned to the score attribute in a result. The score scale mapping should be used to map to other scores.
            resultValueMax [0..1] Float The maximum value (numeric) that can be assigned to the score attribute in a result. The score scale mapping should be used to map to other scores.
            learningObjectiveSet [0..*] Array [ Object ] The set of identifiers for the learning objectives to which this assessment is aligned. Any number groups of learning objectives can be assigned.
                    source [1..1] Union(SourceExtEnum) The source responsible for creating the learning objective identifiers. The permitted values are from an extensible vocabulary.
                    learningObjectiveIds [1..*] Array [ String ] The set of unique identifiers for the associated learning objectives. If these are CASE identifiers they MUST be valid UUIDs.

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.18b.

Code 6.36.1 - JSON payload example for "200" response messages for a "getLineItemsForClass" operation.
    {
        "lineItems" : [
            {
                "sourcedId" : "..String..",
                "status" : "active"|"tobedeleted",
                "dateLastModified" : "..Date/Time..",
                "metadata" : {
                    "..permitted extension point.." : "..user defined value.."
                },
                "title" : "..NormalizedString..",
                "description" : "..String..",
                "assignDate" : "..Date/Time..",
                "dueDate" : "..Date/Time..",
                "class" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "class"
                },
                "school" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "org"
                },
                "category" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "category"
                },
                "gradingPeriod" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "academicSession"
                },
                "academicSession" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "academicSession"
                },
                "scoreScale" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "scoreScale"
                },
                "resultValueMin" : ..Number(Float)..,
                "resultValueMax" : ..Number(Float)..,
                "learningObjectiveSet" : [
                    {
                        "source" : "..select from Union..",
                        "learningObjectiveIds" : [ "..NormalizedString..", ..., "..NormalizedString.." ]
                    },
                    {...},
                    {...}
                ]
            },
            {...},
            {...}
        ]
    }
                        

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

A tabular description of the response payload is shown in the Table below.

Table 6.36.2 - Tabular representation of the JSON payload for "default, 400, 401, 403, 404, 422, 429, 500" response messages for a "getLineItemsForClass" operation.
Property Name Multiplicity JSON Data-type Description
    imsx_codeMajor [1..1] Enumeration The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.
    imsx_severity [1..1] Enumeration The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.
    imsx_description [0..1] String A human readable description supplied by the entity creating the status code information.
    imsx_CodeMinor [0..1] Object The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.
            imsx_codeMinorField [1..*] Array [ Object ] Each reported code minor status code.
                    imsx_codeMinorFieldName [1..1] String This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.
                    imsx_codeMinorFieldValue [1..1] Enumeration The code minor status code (this is a value from the corresponding enumerated vocabulary).

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.18c.

Code 6.36.2 - JSON payload example for "default, 400, 401, 403, 404, 422, 429, 500" response messages for a "getLineItemsForClass" 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_filter_field"|"invalid_selection_field"|"invaliddata"|"unauthorisedrequest"|"internal_server_error"|"server_busy"|"deletefailure"|"unknownobject"|"forbidden"
                },
                {...},
                {...}
            ]
        }
    }
                        

6.37 "getResult" Request Payload

There is no payload for this request.

6.38 "getResult" Response Payloads

6.38.1 Response Payloads for the HTTP Codes (200)

A tabular description of the response payload is shown in the Table below.

Table 6.38.1 - Tabular representation of the JSON payload for "200" response messages for a "getResult" operation.
Property Name Multiplicity JSON Data-type Description
    result [1..1] Object The instance of the single result for a message payload. There must be a data payload otherwise an error report payload for the record not being located should be returned.
            sourcedId [1..1] String The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.
            status [1..1] Enumeration All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
            dateLastModified [1..1] String (Format: date-time) All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.
            metadata [0..1] Object All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.
                    extensions [0..*] Set of Proprietary Properties The form of the extension is dependent on the binding technology being used. This specification is silent on what implementers may consider to be appropriate extensions.
            lineItem [1..1] Object The GUID of the lineItem to which the result is aligned.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'lineItem'.
            student [1..1] Object The GUID of the student for whom the result is assigned.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'user'.
            class [0..1] Object The GUID of the class to which the result is aligned.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'class'.
            scoreScale [0..1] Object The GUID of the scoreScale against which the result is aligned.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'scoreScale'.
            scoreStatus [1..1] Union(ScoreStatusExtEnum) The status of the score. The value is from an extensible enumerated vocabulary.
            score [0..1] Float The score for the result. If a scoreScale is assigned then the value must align with the scale.
            textScore [0..1] String An optional non-numeric score value. If a scoreScale is assigned then the value must align with the scale. This attribute was added in OR 1.2.
            scoreDate [1..1] String (Format: date) The date at which the score is assigned or there is an update to the result e.g. change in the 'scoreStatus'. The format is YYYY-MM-DD as defined in [ISO 8601].
            comment [0..1] String A human readable comment about the score.
            learningObjectiveSet [0..*] Array [ Object ] The set of identifiers for the learning objectives to which this result is aligned. Any number groups of learning objectives can be assigned.
                    source [1..1] Union(SourceExtEnum) The source responsible for creating the learning objective identifiers. The permitted values are from an extensible vocabulary.
                    learningObjectiveResults [1..*] Array [ Object ] The set of unique identifiers for the associated learning objectives (these may have alignment with a mastery score). If these are CASE identifiers they MUST be valid UUIDs.
                            learningObjectiveId [1..1] String The unique identifier for the associated learning objective. If this is a CASE identifier it MUST be a valid UUID.
                            score [0..1] Float The optional mastery score supplied as a numeric value.
                            textScore [0..1] String The optional mastery score supplied in a non-numeric form.
            inProgress [0..1] Enumeration This is used to indicate that the associated work activity has been assigned and student's work product is not yet expected to have been submitted.
            incomplete [0..1] Enumeration This is used to indicate that the student's work product has been submitted but it is deemed incomplete by the teacher.
            late [0..1] Enumeration This is used to indicate that the student's work product is either past due or it has been submitted past the due date. The score on this result may be impacted as as result of this flag.
            missing [0..1] Enumeration This is used to indicate that the student's work product as not been submitted.

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.19b.

Code 6.38.1 - JSON payload example for "200" response messages for a "getResult" operation.
    {
        "result" : {
            "sourcedId" : "..String..",
            "status" : "active"|"tobedeleted",
            "dateLastModified" : "..Date/Time..",
            "metadata" : {
                "..permitted extension point.." : "..user defined value.."
            },
            "lineItem" : {
                "href" : "..URI..",
                "sourcedId" : "..String..",
                "type" : "lineItem"
            },
            "student" : {
                "href" : "..URI..",
                "sourcedId" : "..String..",
                "type" : "user"
            },
            "class" : {
                "href" : "..URI..",
                "sourcedId" : "..String..",
                "type" : "class"
            },
            "scoreScale" : {
                "href" : "..URI..",
                "sourcedId" : "..String..",
                "type" : "scoreScale"
            },
            "scoreStatus" : "..select from Union..",
            "score" : ..Number(Float)..,
            "textScore" : "..NormalizedString..",
            "scoreDate" : "..String(Date)..",
            "comment" : "..String..",
            "learningObjectiveSet" : [
                {
                    "source" : "..select from Union..",
                    "learningObjectiveResults" : [
                        {
                            "learningObjectiveId" : "..NormalizedString..",
                            "score" : ..Number(Float)..,
                            "textScore" : "..NormalizedString.."
                        },
                        {...},
                        {...}
                    ]
                },
                {...},
                {...}
            ],
            "inProgress" : "true"|"false",
            "incomplete" : "true"|"false",
            "late" : "true"|"false",
            "missing" : "true"|"false"
        }
    }
                        

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

A tabular description of the response payload is shown in the Table below.

Table 6.38.2 - Tabular representation of the JSON payload for "default, 400, 401, 403, 404, 422, 429, 500" response messages for a "getResult" operation.
Property Name Multiplicity JSON Data-type Description
    imsx_codeMajor [1..1] Enumeration The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.
    imsx_severity [1..1] Enumeration The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.
    imsx_description [0..1] String A human readable description supplied by the entity creating the status code information.
    imsx_CodeMinor [0..1] Object The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.
            imsx_codeMinorField [1..*] Array [ Object ] Each reported code minor status code.
                    imsx_codeMinorFieldName [1..1] String This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.
                    imsx_codeMinorFieldValue [1..1] Enumeration The code minor status code (this is a value from the corresponding enumerated vocabulary).

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.19c.

Code 6.38.2 - JSON payload example for "default, 400, 401, 403, 404, 422, 429, 500" response messages for a "getResult" 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_filter_field"|"invalid_selection_field"|"invaliddata"|"unauthorisedrequest"|"internal_server_error"|"server_busy"|"deletefailure"|"unknownobject"|"forbidden"
                },
                {...},
                {...}
            ]
        }
    }
                        

6.39 "getResultsForClass" Request Payload

There is no payload for this request.

6.40 "getResultsForClass" Response Payloads

6.40.1 Response Payloads for the HTTP Codes (200)

A tabular description of the response payload is shown in the Table below.

Table 6.40.1 - Tabular representation of the JSON payload for "200" response messages for a "getResultsForClass" operation.
Property Name Multiplicity JSON Data-type Description
    results [0..*] Array [ Object ] The collection of result instances. The order is not significant. The corresponding query constraints may result in no instances being returned.
            sourcedId [1..1] String The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.
            status [1..1] Enumeration All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
            dateLastModified [1..1] String (Format: date-time) All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.
            metadata [0..1] Object All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.
                    extensions [0..*] Set of Proprietary Properties The form of the extension is dependent on the binding technology being used. This specification is silent on what implementers may consider to be appropriate extensions.
            lineItem [1..1] Object The GUID of the lineItem to which the result is aligned.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'lineItem'.
            student [1..1] Object The GUID of the student for whom the result is assigned.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'user'.
            class [0..1] Object The GUID of the class to which the result is aligned.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'class'.
            scoreScale [0..1] Object The GUID of the scoreScale against which the result is aligned.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'scoreScale'.
            scoreStatus [1..1] Union(ScoreStatusExtEnum) The status of the score. The value is from an extensible enumerated vocabulary.
            score [0..1] Float The score for the result. If a scoreScale is assigned then the value must align with the scale.
            textScore [0..1] String An optional non-numeric score value. If a scoreScale is assigned then the value must align with the scale. This attribute was added in OR 1.2.
            scoreDate [1..1] String (Format: date) The date at which the score is assigned or there is an update to the result e.g. change in the 'scoreStatus'. The format is YYYY-MM-DD as defined in [ISO 8601].
            comment [0..1] String A human readable comment about the score.
            learningObjectiveSet [0..*] Array [ Object ] The set of identifiers for the learning objectives to which this result is aligned. Any number groups of learning objectives can be assigned.
                    source [1..1] Union(SourceExtEnum) The source responsible for creating the learning objective identifiers. The permitted values are from an extensible vocabulary.
                    learningObjectiveResults [1..*] Array [ Object ] The set of unique identifiers for the associated learning objectives (these may have alignment with a mastery score). If these are CASE identifiers they MUST be valid UUIDs.
                            learningObjectiveId [1..1] String The unique identifier for the associated learning objective. If this is a CASE identifier it MUST be a valid UUID.
                            score [0..1] Float The optional mastery score supplied as a numeric value.
                            textScore [0..1] String The optional mastery score supplied in a non-numeric form.
            inProgress [0..1] Enumeration This is used to indicate that the associated work activity has been assigned and student's work product is not yet expected to have been submitted.
            incomplete [0..1] Enumeration This is used to indicate that the student's work product has been submitted but it is deemed incomplete by the teacher.
            late [0..1] Enumeration This is used to indicate that the student's work product is either past due or it has been submitted past the due date. The score on this result may be impacted as as result of this flag.
            missing [0..1] Enumeration This is used to indicate that the student's work product as not been submitted.

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.20b.

Code 6.40.1 - JSON payload example for "200" response messages for a "getResultsForClass" operation.
    {
        "results" : [
            {
                "sourcedId" : "..String..",
                "status" : "active"|"tobedeleted",
                "dateLastModified" : "..Date/Time..",
                "metadata" : {
                    "..permitted extension point.." : "..user defined value.."
                },
                "lineItem" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "lineItem"
                },
                "student" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "user"
                },
                "class" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "class"
                },
                "scoreScale" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "scoreScale"
                },
                "scoreStatus" : "..select from Union..",
                "score" : ..Number(Float)..,
                "textScore" : "..NormalizedString..",
                "scoreDate" : "..String(Date)..",
                "comment" : "..String..",
                "learningObjectiveSet" : [
                    {
                        "source" : "..select from Union..",
                        "learningObjectiveResults" : [
                            {
                                "learningObjectiveId" : "..NormalizedString..",
                                "score" : ..Number(Float)..,
                                "textScore" : "..NormalizedString.."
                            },
                            {...},
                            {...}
                        ]
                    },
                    {...},
                    {...}
                ],
                "inProgress" : "true"|"false",
                "incomplete" : "true"|"false",
                "late" : "true"|"false",
                "missing" : "true"|"false"
            },
            {...},
            {...}
        ]
    }
                        

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

A tabular description of the response payload is shown in the Table below.

Table 6.40.2 - Tabular representation of the JSON payload for "default, 400, 401, 403, 404, 422, 429, 500" response messages for a "getResultsForClass" operation.
Property Name Multiplicity JSON Data-type Description
    imsx_codeMajor [1..1] Enumeration The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.
    imsx_severity [1..1] Enumeration The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.
    imsx_description [0..1] String A human readable description supplied by the entity creating the status code information.
    imsx_CodeMinor [0..1] Object The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.
            imsx_codeMinorField [1..*] Array [ Object ] Each reported code minor status code.
                    imsx_codeMinorFieldName [1..1] String This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.
                    imsx_codeMinorFieldValue [1..1] Enumeration The code minor status code (this is a value from the corresponding enumerated vocabulary).

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.20c.

Code 6.40.2 - JSON payload example for "default, 400, 401, 403, 404, 422, 429, 500" response messages for a "getResultsForClass" 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_filter_field"|"invalid_selection_field"|"invaliddata"|"unauthorisedrequest"|"internal_server_error"|"server_busy"|"deletefailure"|"unknownobject"|"forbidden"
                },
                {...},
                {...}
            ]
        }
    }
                        

6.41 "getResultsForLineItemForClass" Request Payload

There is no payload for this request.

6.42 "getResultsForLineItemForClass" Response Payloads

6.42.1 Response Payloads for the HTTP Codes (200)

A tabular description of the response payload is shown in the Table below.

Table 6.42.1 - Tabular representation of the JSON payload for "200" response messages for a "getResultsForLineItemForClass" operation.
Property Name Multiplicity JSON Data-type Description
    results [0..*] Array [ Object ] The collection of result instances. The order is not significant. The corresponding query constraints may result in no instances being returned.
            sourcedId [1..1] String The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.
            status [1..1] Enumeration All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
            dateLastModified [1..1] String (Format: date-time) All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.
            metadata [0..1] Object All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.
                    extensions [0..*] Set of Proprietary Properties The form of the extension is dependent on the binding technology being used. This specification is silent on what implementers may consider to be appropriate extensions.
            lineItem [1..1] Object The GUID of the lineItem to which the result is aligned.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'lineItem'.
            student [1..1] Object The GUID of the student for whom the result is assigned.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'user'.
            class [0..1] Object The GUID of the class to which the result is aligned.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'class'.
            scoreScale [0..1] Object The GUID of the scoreScale against which the result is aligned.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'scoreScale'.
            scoreStatus [1..1] Union(ScoreStatusExtEnum) The status of the score. The value is from an extensible enumerated vocabulary.
            score [0..1] Float The score for the result. If a scoreScale is assigned then the value must align with the scale.
            textScore [0..1] String An optional non-numeric score value. If a scoreScale is assigned then the value must align with the scale. This attribute was added in OR 1.2.
            scoreDate [1..1] String (Format: date) The date at which the score is assigned or there is an update to the result e.g. change in the 'scoreStatus'. The format is YYYY-MM-DD as defined in [ISO 8601].
            comment [0..1] String A human readable comment about the score.
            learningObjectiveSet [0..*] Array [ Object ] The set of identifiers for the learning objectives to which this result is aligned. Any number groups of learning objectives can be assigned.
                    source [1..1] Union(SourceExtEnum) The source responsible for creating the learning objective identifiers. The permitted values are from an extensible vocabulary.
                    learningObjectiveResults [1..*] Array [ Object ] The set of unique identifiers for the associated learning objectives (these may have alignment with a mastery score). If these are CASE identifiers they MUST be valid UUIDs.
                            learningObjectiveId [1..1] String The unique identifier for the associated learning objective. If this is a CASE identifier it MUST be a valid UUID.
                            score [0..1] Float The optional mastery score supplied as a numeric value.
                            textScore [0..1] String The optional mastery score supplied in a non-numeric form.
            inProgress [0..1] Enumeration This is used to indicate that the associated work activity has been assigned and student's work product is not yet expected to have been submitted.
            incomplete [0..1] Enumeration This is used to indicate that the student's work product has been submitted but it is deemed incomplete by the teacher.
            late [0..1] Enumeration This is used to indicate that the student's work product is either past due or it has been submitted past the due date. The score on this result may be impacted as as result of this flag.
            missing [0..1] Enumeration This is used to indicate that the student's work product as not been submitted.

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.21b.

Code 6.42.1 - JSON payload example for "200" response messages for a "getResultsForLineItemForClass" operation.
    {
        "results" : [
            {
                "sourcedId" : "..String..",
                "status" : "active"|"tobedeleted",
                "dateLastModified" : "..Date/Time..",
                "metadata" : {
                    "..permitted extension point.." : "..user defined value.."
                },
                "lineItem" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "lineItem"
                },
                "student" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "user"
                },
                "class" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "class"
                },
                "scoreScale" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "scoreScale"
                },
                "scoreStatus" : "..select from Union..",
                "score" : ..Number(Float)..,
                "textScore" : "..NormalizedString..",
                "scoreDate" : "..String(Date)..",
                "comment" : "..String..",
                "learningObjectiveSet" : [
                    {
                        "source" : "..select from Union..",
                        "learningObjectiveResults" : [
                            {
                                "learningObjectiveId" : "..NormalizedString..",
                                "score" : ..Number(Float)..,
                                "textScore" : "..NormalizedString.."
                            },
                            {...},
                            {...}
                        ]
                    },
                    {...},
                    {...}
                ],
                "inProgress" : "true"|"false",
                "incomplete" : "true"|"false",
                "late" : "true"|"false",
                "missing" : "true"|"false"
            },
            {...},
            {...}
        ]
    }
                        

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

A tabular description of the response payload is shown in the Table below.

Table 6.42.2 - Tabular representation of the JSON payload for "default, 400, 401, 403, 404, 422, 429, 500" response messages for a "getResultsForLineItemForClass" operation.
Property Name Multiplicity JSON Data-type Description
    imsx_codeMajor [1..1] Enumeration The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.
    imsx_severity [1..1] Enumeration The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.
    imsx_description [0..1] String A human readable description supplied by the entity creating the status code information.
    imsx_CodeMinor [0..1] Object The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.
            imsx_codeMinorField [1..*] Array [ Object ] Each reported code minor status code.
                    imsx_codeMinorFieldName [1..1] String This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.
                    imsx_codeMinorFieldValue [1..1] Enumeration The code minor status code (this is a value from the corresponding enumerated vocabulary).

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.21c.

Code 6.42.2 - JSON payload example for "default, 400, 401, 403, 404, 422, 429, 500" response messages for a "getResultsForLineItemForClass" 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_filter_field"|"invalid_selection_field"|"invaliddata"|"unauthorisedrequest"|"internal_server_error"|"server_busy"|"deletefailure"|"unknownobject"|"forbidden"
                },
                {...},
                {...}
            ]
        }
    }
                        

6.43 "getResultsForStudentForClass" Request Payload

There is no payload for this request.

6.44 "getResultsForStudentForClass" Response Payloads

6.44.1 Response Payloads for the HTTP Codes (200)

A tabular description of the response payload is shown in the Table below.

Table 6.44.1 - Tabular representation of the JSON payload for "200" response messages for a "getResultsForStudentForClass" operation.
Property Name Multiplicity JSON Data-type Description
    results [0..*] Array [ Object ] The collection of result instances. The order is not significant. The corresponding query constraints may result in no instances being returned.
            sourcedId [1..1] String The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.
            status [1..1] Enumeration All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
            dateLastModified [1..1] String (Format: date-time) All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.
            metadata [0..1] Object All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.
                    extensions [0..*] Set of Proprietary Properties The form of the extension is dependent on the binding technology being used. This specification is silent on what implementers may consider to be appropriate extensions.
            lineItem [1..1] Object The GUID of the lineItem to which the result is aligned.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'lineItem'.
            student [1..1] Object The GUID of the student for whom the result is assigned.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'user'.
            class [0..1] Object The GUID of the class to which the result is aligned.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'class'.
            scoreScale [0..1] Object The GUID of the scoreScale against which the result is aligned.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'scoreScale'.
            scoreStatus [1..1] Union(ScoreStatusExtEnum) The status of the score. The value is from an extensible enumerated vocabulary.
            score [0..1] Float The score for the result. If a scoreScale is assigned then the value must align with the scale.
            textScore [0..1] String An optional non-numeric score value. If a scoreScale is assigned then the value must align with the scale. This attribute was added in OR 1.2.
            scoreDate [1..1] String (Format: date) The date at which the score is assigned or there is an update to the result e.g. change in the 'scoreStatus'. The format is YYYY-MM-DD as defined in [ISO 8601].
            comment [0..1] String A human readable comment about the score.
            learningObjectiveSet [0..*] Array [ Object ] The set of identifiers for the learning objectives to which this result is aligned. Any number groups of learning objectives can be assigned.
                    source [1..1] Union(SourceExtEnum) The source responsible for creating the learning objective identifiers. The permitted values are from an extensible vocabulary.
                    learningObjectiveResults [1..*] Array [ Object ] The set of unique identifiers for the associated learning objectives (these may have alignment with a mastery score). If these are CASE identifiers they MUST be valid UUIDs.
                            learningObjectiveId [1..1] String The unique identifier for the associated learning objective. If this is a CASE identifier it MUST be a valid UUID.
                            score [0..1] Float The optional mastery score supplied as a numeric value.
                            textScore [0..1] String The optional mastery score supplied in a non-numeric form.
            inProgress [0..1] Enumeration This is used to indicate that the associated work activity has been assigned and student's work product is not yet expected to have been submitted.
            incomplete [0..1] Enumeration This is used to indicate that the student's work product has been submitted but it is deemed incomplete by the teacher.
            late [0..1] Enumeration This is used to indicate that the student's work product is either past due or it has been submitted past the due date. The score on this result may be impacted as as result of this flag.
            missing [0..1] Enumeration This is used to indicate that the student's work product as not been submitted.

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.22b.

Code 6.44.1 - JSON payload example for "200" response messages for a "getResultsForStudentForClass" operation.
    {
        "results" : [
            {
                "sourcedId" : "..String..",
                "status" : "active"|"tobedeleted",
                "dateLastModified" : "..Date/Time..",
                "metadata" : {
                    "..permitted extension point.." : "..user defined value.."
                },
                "lineItem" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "lineItem"
                },
                "student" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "user"
                },
                "class" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "class"
                },
                "scoreScale" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "scoreScale"
                },
                "scoreStatus" : "..select from Union..",
                "score" : ..Number(Float)..,
                "textScore" : "..NormalizedString..",
                "scoreDate" : "..String(Date)..",
                "comment" : "..String..",
                "learningObjectiveSet" : [
                    {
                        "source" : "..select from Union..",
                        "learningObjectiveResults" : [
                            {
                                "learningObjectiveId" : "..NormalizedString..",
                                "score" : ..Number(Float)..,
                                "textScore" : "..NormalizedString.."
                            },
                            {...},
                            {...}
                        ]
                    },
                    {...},
                    {...}
                ],
                "inProgress" : "true"|"false",
                "incomplete" : "true"|"false",
                "late" : "true"|"false",
                "missing" : "true"|"false"
            },
            {...},
            {...}
        ]
    }
                        

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

A tabular description of the response payload is shown in the Table below.

Table 6.44.2 - Tabular representation of the JSON payload for "default, 400, 401, 403, 404, 422, 429, 500" response messages for a "getResultsForStudentForClass" operation.
Property Name Multiplicity JSON Data-type Description
    imsx_codeMajor [1..1] Enumeration The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.
    imsx_severity [1..1] Enumeration The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.
    imsx_description [0..1] String A human readable description supplied by the entity creating the status code information.
    imsx_CodeMinor [0..1] Object The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.
            imsx_codeMinorField [1..*] Array [ Object ] Each reported code minor status code.
                    imsx_codeMinorFieldName [1..1] String This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.
                    imsx_codeMinorFieldValue [1..1] Enumeration The code minor status code (this is a value from the corresponding enumerated vocabulary).

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.22c.

Code 6.44.2 - JSON payload example for "default, 400, 401, 403, 404, 422, 429, 500" response messages for a "getResultsForStudentForClass" 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_filter_field"|"invalid_selection_field"|"invaliddata"|"unauthorisedrequest"|"internal_server_error"|"server_busy"|"deletefailure"|"unknownobject"|"forbidden"
                },
                {...},
                {...}
            ]
        }
    }
                        

6.45 "getScoreScale" Request Payload

There is no payload for this request.

6.46 "getScoreScale" Response Payloads

6.46.1 Response Payloads for the HTTP Codes (200)

A tabular description of the response payload is shown in the Table below.

Table 6.46.1 - Tabular representation of the JSON payload for "200" response messages for a "getScoreScale" operation.
Property Name Multiplicity JSON Data-type Description
    scoreScale [1..1] Object The instance of the single scoreScale for a message payload. There must be a data payload otherwise an error report payload for the record not being located should be returned.
            sourcedId [1..1] String The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.
            status [1..1] Enumeration All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
            dateLastModified [1..1] String (Format: date-time) All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.
            metadata [0..1] Object All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.
                    extensions [0..*] Set of Proprietary Properties The form of the extension is dependent on the binding technology being used. This specification is silent on what implementers may consider to be appropriate extensions.
            title [1..1] String The human readable title for the score scale mapping.
            type [1..1] String The type of score scale mapping. At present there is no predefined vocabulary. This should be used by an organization to differentiate between the score scales that it produces.
            course [0..1] Object The GUID for the course for which this scale will be used.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'course'.
            class [1..1] Object The GUID for the class for which this scale will be used.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'class'.
            scoreScaleValue [1..*] Array [ Object ] The set of mappings for this score scale.
                    itemValueLHS [1..1] String The left hand side value of the mapping relationship. The format is either a single value ('x') or a range ('x' - 'y'). In the case of a single value this is considered to be the inclusive lower value for the implied range. When a range is specified (lower-to-upper) the values are inclusive.
                    itemValueRHS [1..1] String The right hand side value of the mapping relationship i.e. the equivalent value to the reference point defined in the LHS.

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.23b.

Code 6.46.1 - JSON payload example for "200" response messages for a "getScoreScale" operation.
    {
        "scoreScale" : {
            "sourcedId" : "..String..",
            "status" : "active"|"tobedeleted",
            "dateLastModified" : "..Date/Time..",
            "metadata" : {
                "..permitted extension point.." : "..user defined value.."
            },
            "title" : "..NormalizedString..",
            "type" : "..NormalizedString..",
            "course" : {
                "href" : "..URI..",
                "sourcedId" : "..String..",
                "type" : "course"
            },
            "class" : {
                "href" : "..URI..",
                "sourcedId" : "..String..",
                "type" : "class"
            },
            "scoreScaleValue" : [
                {
                    "itemValueLHS" : "..NormalizedString..",
                    "itemValueRHS" : "..NormalizedString.."
                },
                {...},
                {...}
            ]
        }
    }
                        

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

A tabular description of the response payload is shown in the Table below.

Table 6.46.2 - Tabular representation of the JSON payload for "default, 400, 401, 403, 404, 422, 429, 500" response messages for a "getScoreScale" operation.
Property Name Multiplicity JSON Data-type Description
    imsx_codeMajor [1..1] Enumeration The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.
    imsx_severity [1..1] Enumeration The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.
    imsx_description [0..1] String A human readable description supplied by the entity creating the status code information.
    imsx_CodeMinor [0..1] Object The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.
            imsx_codeMinorField [1..*] Array [ Object ] Each reported code minor status code.
                    imsx_codeMinorFieldName [1..1] String This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.
                    imsx_codeMinorFieldValue [1..1] Enumeration The code minor status code (this is a value from the corresponding enumerated vocabulary).

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.23c.

Code 6.46.2 - JSON payload example for "default, 400, 401, 403, 404, 422, 429, 500" response messages for a "getScoreScale" 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_filter_field"|"invalid_selection_field"|"invaliddata"|"unauthorisedrequest"|"internal_server_error"|"server_busy"|"deletefailure"|"unknownobject"|"forbidden"
                },
                {...},
                {...}
            ]
        }
    }
                        

6.47 "getScoreScalesForClass" Request Payload

There is no payload for this request.

6.48 "getScoreScalesForClass" Response Payloads

6.48.1 Response Payloads for the HTTP Codes (200)

A tabular description of the response payload is shown in the Table below.

Table 6.48.1 - Tabular representation of the JSON payload for "200" response messages for a "getScoreScalesForClass" operation.
Property Name Multiplicity JSON Data-type Description
    scoreScales [0..*] Array [ Object ] The collection of scoreScale instances. The order is not significant. The corresponding query constraints may result in no instances being returned.
            sourcedId [1..1] String The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.
            status [1..1] Enumeration All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
            dateLastModified [1..1] String (Format: date-time) All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.
            metadata [0..1] Object All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.
                    extensions [0..*] Set of Proprietary Properties The form of the extension is dependent on the binding technology being used. This specification is silent on what implementers may consider to be appropriate extensions.
            title [1..1] String The human readable title for the score scale mapping.
            type [1..1] String The type of score scale mapping. At present there is no predefined vocabulary. This should be used by an organization to differentiate between the score scales that it produces.
            course [0..1] Object The GUID for the course for which this scale will be used.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'course'.
            class [1..1] Object The GUID for the class for which this scale will be used.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'class'.
            scoreScaleValue [1..*] Array [ Object ] The set of mappings for this score scale.
                    itemValueLHS [1..1] String The left hand side value of the mapping relationship. The format is either a single value ('x') or a range ('x' - 'y'). In the case of a single value this is considered to be the inclusive lower value for the implied range. When a range is specified (lower-to-upper) the values are inclusive.
                    itemValueRHS [1..1] String The right hand side value of the mapping relationship i.e. the equivalent value to the reference point defined in the LHS.

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.24b.

Code 6.48.1 - JSON payload example for "200" response messages for a "getScoreScalesForClass" operation.
    {
        "scoreScales" : [
            {
                "sourcedId" : "..String..",
                "status" : "active"|"tobedeleted",
                "dateLastModified" : "..Date/Time..",
                "metadata" : {
                    "..permitted extension point.." : "..user defined value.."
                },
                "title" : "..NormalizedString..",
                "type" : "..NormalizedString..",
                "course" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "course"
                },
                "class" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "class"
                },
                "scoreScaleValue" : [
                    {
                        "itemValueLHS" : "..NormalizedString..",
                        "itemValueRHS" : "..NormalizedString.."
                    },
                    {...},
                    {...}
                ]
            },
            {...},
            {...}
        ]
    }
                        

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

A tabular description of the response payload is shown in the Table below.

Table 6.48.2 - Tabular representation of the JSON payload for "default, 400, 401, 403, 404, 422, 429, 500" response messages for a "getScoreScalesForClass" operation.
Property Name Multiplicity JSON Data-type Description
    imsx_codeMajor [1..1] Enumeration The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.
    imsx_severity [1..1] Enumeration The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.
    imsx_description [0..1] String A human readable description supplied by the entity creating the status code information.
    imsx_CodeMinor [0..1] Object The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.
            imsx_codeMinorField [1..*] Array [ Object ] Each reported code minor status code.
                    imsx_codeMinorFieldName [1..1] String This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.
                    imsx_codeMinorFieldValue [1..1] Enumeration The code minor status code (this is a value from the corresponding enumerated vocabulary).

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.24c.

Code 6.48.2 - JSON payload example for "default, 400, 401, 403, 404, 422, 429, 500" response messages for a "getScoreScalesForClass" 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_filter_field"|"invalid_selection_field"|"invaliddata"|"unauthorisedrequest"|"internal_server_error"|"server_busy"|"deletefailure"|"unknownobject"|"forbidden"
                },
                {...},
                {...}
            ]
        }
    }
                        

6.49 "getScoreScalesForSchool" Request Payload

There is no payload for this request.

6.50 "getScoreScalesForSchool" Response Payloads

6.50.1 Response Payloads for the HTTP Codes (200)

A tabular description of the response payload is shown in the Table below.

Table 6.50.1 - Tabular representation of the JSON payload for "200" response messages for a "getScoreScalesForSchool" operation.
Property Name Multiplicity JSON Data-type Description
    scoreScales [0..*] Array [ Object ] The collection of scoreScale instances. The order is not significant. The corresponding query constraints may result in no instances being returned.
            sourcedId [1..1] String The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.
            status [1..1] Enumeration All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
            dateLastModified [1..1] String (Format: date-time) All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.
            metadata [0..1] Object All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.
                    extensions [0..*] Set of Proprietary Properties The form of the extension is dependent on the binding technology being used. This specification is silent on what implementers may consider to be appropriate extensions.
            title [1..1] String The human readable title for the score scale mapping.
            type [1..1] String The type of score scale mapping. At present there is no predefined vocabulary. This should be used by an organization to differentiate between the score scales that it produces.
            course [0..1] Object The GUID for the course for which this scale will be used.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'course'.
            class [1..1] Object The GUID for the class for which this scale will be used.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'class'.
            scoreScaleValue [1..*] Array [ Object ] The set of mappings for this score scale.
                    itemValueLHS [1..1] String The left hand side value of the mapping relationship. The format is either a single value ('x') or a range ('x' - 'y'). In the case of a single value this is considered to be the inclusive lower value for the implied range. When a range is specified (lower-to-upper) the values are inclusive.
                    itemValueRHS [1..1] String The right hand side value of the mapping relationship i.e. the equivalent value to the reference point defined in the LHS.

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.25b.

Code 6.50.1 - JSON payload example for "200" response messages for a "getScoreScalesForSchool" operation.
    {
        "scoreScales" : [
            {
                "sourcedId" : "..String..",
                "status" : "active"|"tobedeleted",
                "dateLastModified" : "..Date/Time..",
                "metadata" : {
                    "..permitted extension point.." : "..user defined value.."
                },
                "title" : "..NormalizedString..",
                "type" : "..NormalizedString..",
                "course" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "course"
                },
                "class" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "class"
                },
                "scoreScaleValue" : [
                    {
                        "itemValueLHS" : "..NormalizedString..",
                        "itemValueRHS" : "..NormalizedString.."
                    },
                    {...},
                    {...}
                ]
            },
            {...},
            {...}
        ]
    }
                        

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

A tabular description of the response payload is shown in the Table below.

Table 6.50.2 - Tabular representation of the JSON payload for "default, 400, 401, 403, 404, 422, 429, 500" response messages for a "getScoreScalesForSchool" operation.
Property Name Multiplicity JSON Data-type Description
    imsx_codeMajor [1..1] Enumeration The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.
    imsx_severity [1..1] Enumeration The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.
    imsx_description [0..1] String A human readable description supplied by the entity creating the status code information.
    imsx_CodeMinor [0..1] Object The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.
            imsx_codeMinorField [1..*] Array [ Object ] Each reported code minor status code.
                    imsx_codeMinorFieldName [1..1] String This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.
                    imsx_codeMinorFieldValue [1..1] Enumeration The code minor status code (this is a value from the corresponding enumerated vocabulary).

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.25c.

Code 6.50.2 - JSON payload example for "default, 400, 401, 403, 404, 422, 429, 500" response messages for a "getScoreScalesForSchool" 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_filter_field"|"invalid_selection_field"|"invaliddata"|"unauthorisedrequest"|"internal_server_error"|"server_busy"|"deletefailure"|"unknownobject"|"forbidden"
                },
                {...},
                {...}
            ]
        }
    }
                        

6.51 "postLineItemsForClass" Request Payload

A tabular description of the request payload is shown in the Table below.

Table 6.51.1 - Tabular representation of the JSON payload for the request message for a "postLineItemsForClass" operation.
Property Name Multiplicity JSON Data-type Description
    lineItems [0..*] Array [ Object ] The collection of lineItem instances. The order is not significant. The corresponding query constraints may result in no instances being returned.
            sourcedId [1..1] String The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.
            status [1..1] Enumeration All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
            dateLastModified [1..1] String (Format: date-time) All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.
            metadata [0..1] Object All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.
                    extensions [0..*] Set of Proprietary Properties The form of the extension is dependent on the binding technology being used. This specification is silent on what implementers may consider to be appropriate extensions.
            title [1..1] String The title, human readable, for the lineItem. This should allow the lineItem to be distinguished from its peer lineItems.
            description [0..1] String A human readable description of the usage of the lineItem.
            assignDate [1..1] String (Format: date-time) The date/time the activity being addressed by the lineItem was assigned to the student. This has a format as defined in [ISO 8601].
            dueDate [1..1] String (Format: date-time) The date/time by which the assignment must be completed and submitted. This has the dateTime format as defined in [ISO 8601].
            class [1..1] Object The GUID of the class to which the lineItem has been assigned.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'class'.
            school [1..1] Object The GUID of the school for whom the lineItem has been assigned. This attribute was added in the OR 1.2 release.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. an 'org'.
            category [1..1] Object The GUID of the category to which the lineItem has been assigned.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'category'.
            gradingPeriod [0..1] Object The GUID of the grading period for the lineItem. This attribute was added in the OR 1.2 release.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. an 'academicSession'.
            academicSession [0..1] Object The GUID of the academic session for the lineItem. This should NOT be defined if the 'gradingPeriod' attribute has been used.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. an 'academicSession'.
            scoreScale [0..1] Object The GUID of the score scale to be used for the lineItem. This attribute was added in the OR 1.2 release.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'scoreScale'.
            resultValueMin [0..1] Float The minimum value (numeric) that can be assigned to the score attribute in a result. The score scale mapping should be used to map to other scores.
            resultValueMax [0..1] Float The maximum value (numeric) that can be assigned to the score attribute in a result. The score scale mapping should be used to map to other scores.
            learningObjectiveSet [0..*] Array [ Object ] The set of identifiers for the learning objectives to which this assessment is aligned. Any number groups of learning objectives can be assigned.
                    source [1..1] Union(SourceExtEnum) The source responsible for creating the learning objective identifiers. The permitted values are from an extensible vocabulary.
                    learningObjectiveIds [1..*] Array [ String ] The set of unique identifiers for the associated learning objectives. If these are CASE identifiers they MUST be valid UUIDs.

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

Code 6.51.1 - JSON payload example for the request message for a "postLineItemsForClass" operation.
    {
        "lineItems" : [
            {
                "sourcedId" : "..String..",
                "status" : "active"|"tobedeleted",
                "dateLastModified" : "..Date/Time..",
                "metadata" : {
                    "..permitted extension point.." : "..user defined value.."
                },
                "title" : "..NormalizedString..",
                "description" : "..String..",
                "assignDate" : "..Date/Time..",
                "dueDate" : "..Date/Time..",
                "class" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "class"
                },
                "school" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "org"
                },
                "category" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "category"
                },
                "gradingPeriod" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "academicSession"
                },
                "academicSession" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "academicSession"
                },
                "scoreScale" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "scoreScale"
                },
                "resultValueMin" : ..Number(Float)..,
                "resultValueMax" : ..Number(Float)..,
                "learningObjectiveSet" : [
                    {
                        "source" : "..select from Union..",
                        "learningObjectiveIds" : [ "..NormalizedString..", ..., "..NormalizedString.." ]
                    },
                    {...},
                    {...}
                ]
            },
            {...},
            {...}
        ]
    }
                        

6.52 "postLineItemsForClass" Response Payloads

6.52.1 Response Payloads for the HTTP Codes (201)

A tabular description of the response payload is shown in the Table below.

Table 6.52.1 - Tabular representation of the JSON payload for "201" response messages for a "postLineItemsForClass" operation.
Property Name Multiplicity JSON Data-type Description
    sourcedIdPairs [0..*] Array [ Object ] The set of sourcedId pairs. The order is not significant as each pair contains the information between the original/new values.
            suppliedSourcedId [1..1] String The temporary sourcedId that has been allocated by the requesting system. This sourcedId is used to enable identification of the original record for which the new sourcedId has been allocated at the service provider.
            allocatedSourcedId [1..1] String The sourcedId that has been allocated by the system on which the new record has been created.

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.26b.

Code 6.52.1 - JSON payload example for "201" response messages for a "postLineItemsForClass" operation.
    {
        "sourcedIdPairs" : [
            {
                "suppliedSourcedId" : "..String..",
                "allocatedSourcedId" : "..String.."
            },
            {...},
            {...}
        ]
    }
                        

6.52.2 Response Payloads for the HTTP Codes (default, 401, 403, 404, 422, 429, 500)

A tabular description of the response payload is shown in the Table below.

Table 6.52.2 - Tabular representation of the JSON payload for "default, 401, 403, 404, 422, 429, 500" response messages for a "postLineItemsForClass" operation.
Property Name Multiplicity JSON Data-type Description
    imsx_codeMajor [1..1] Enumeration The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.
    imsx_severity [1..1] Enumeration The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.
    imsx_description [0..1] String A human readable description supplied by the entity creating the status code information.
    imsx_CodeMinor [0..1] Object The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.
            imsx_codeMinorField [1..*] Array [ Object ] Each reported code minor status code.
                    imsx_codeMinorFieldName [1..1] String This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.
                    imsx_codeMinorFieldValue [1..1] Enumeration The code minor status code (this is a value from the corresponding enumerated vocabulary).

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.26c.

Code 6.52.2 - JSON payload example for "default, 401, 403, 404, 422, 429, 500" response messages for a "postLineItemsForClass" 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_filter_field"|"invalid_selection_field"|"invaliddata"|"unauthorisedrequest"|"internal_server_error"|"server_busy"|"deletefailure"|"unknownobject"|"forbidden"
                },
                {...},
                {...}
            ]
        }
    }
                        

6.53 "postLineItemsForSchool" Request Payload

A tabular description of the request payload is shown in the Table below.

Table 6.53.1 - Tabular representation of the JSON payload for the request message for a "postLineItemsForSchool" operation.
Property Name Multiplicity JSON Data-type Description
    lineItems [0..*] Array [ Object ] The collection of lineItem instances. The order is not significant. The corresponding query constraints may result in no instances being returned.
            sourcedId [1..1] String The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.
            status [1..1] Enumeration All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
            dateLastModified [1..1] String (Format: date-time) All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.
            metadata [0..1] Object All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.
                    extensions [0..*] Set of Proprietary Properties The form of the extension is dependent on the binding technology being used. This specification is silent on what implementers may consider to be appropriate extensions.
            title [1..1] String The title, human readable, for the lineItem. This should allow the lineItem to be distinguished from its peer lineItems.
            description [0..1] String A human readable description of the usage of the lineItem.
            assignDate [1..1] String (Format: date-time) The date/time the activity being addressed by the lineItem was assigned to the student. This has a format as defined in [ISO 8601].
            dueDate [1..1] String (Format: date-time) The date/time by which the assignment must be completed and submitted. This has the dateTime format as defined in [ISO 8601].
            class [1..1] Object The GUID of the class to which the lineItem has been assigned.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'class'.
            school [1..1] Object The GUID of the school for whom the lineItem has been assigned. This attribute was added in the OR 1.2 release.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. an 'org'.
            category [1..1] Object The GUID of the category to which the lineItem has been assigned.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'category'.
            gradingPeriod [0..1] Object The GUID of the grading period for the lineItem. This attribute was added in the OR 1.2 release.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. an 'academicSession'.
            academicSession [0..1] Object The GUID of the academic session for the lineItem. This should NOT be defined if the 'gradingPeriod' attribute has been used.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. an 'academicSession'.
            scoreScale [0..1] Object The GUID of the score scale to be used for the lineItem. This attribute was added in the OR 1.2 release.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'scoreScale'.
            resultValueMin [0..1] Float The minimum value (numeric) that can be assigned to the score attribute in a result. The score scale mapping should be used to map to other scores.
            resultValueMax [0..1] Float The maximum value (numeric) that can be assigned to the score attribute in a result. The score scale mapping should be used to map to other scores.
            learningObjectiveSet [0..*] Array [ Object ] The set of identifiers for the learning objectives to which this assessment is aligned. Any number groups of learning objectives can be assigned.
                    source [1..1] Union(SourceExtEnum) The source responsible for creating the learning objective identifiers. The permitted values are from an extensible vocabulary.
                    learningObjectiveIds [1..*] Array [ String ] The set of unique identifiers for the associated learning objectives. If these are CASE identifiers they MUST be valid UUIDs.

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

Code 6.53.1 - JSON payload example for the request message for a "postLineItemsForSchool" operation.
    {
        "lineItems" : [
            {
                "sourcedId" : "..String..",
                "status" : "active"|"tobedeleted",
                "dateLastModified" : "..Date/Time..",
                "metadata" : {
                    "..permitted extension point.." : "..user defined value.."
                },
                "title" : "..NormalizedString..",
                "description" : "..String..",
                "assignDate" : "..Date/Time..",
                "dueDate" : "..Date/Time..",
                "class" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "class"
                },
                "school" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "org"
                },
                "category" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "category"
                },
                "gradingPeriod" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "academicSession"
                },
                "academicSession" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "academicSession"
                },
                "scoreScale" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "scoreScale"
                },
                "resultValueMin" : ..Number(Float)..,
                "resultValueMax" : ..Number(Float)..,
                "learningObjectiveSet" : [
                    {
                        "source" : "..select from Union..",
                        "learningObjectiveIds" : [ "..NormalizedString..", ..., "..NormalizedString.." ]
                    },
                    {...},
                    {...}
                ]
            },
            {...},
            {...}
        ]
    }
                        

6.54 "postLineItemsForSchool" Response Payloads

6.54.1 Response Payloads for the HTTP Codes (201)

A tabular description of the response payload is shown in the Table below.

Table 6.54.1 - Tabular representation of the JSON payload for "201" response messages for a "postLineItemsForSchool" operation.
Property Name Multiplicity JSON Data-type Description
    sourcedIdPairs [0..*] Array [ Object ] The set of sourcedId pairs. The order is not significant as each pair contains the information between the original/new values.
            suppliedSourcedId [1..1] String The temporary sourcedId that has been allocated by the requesting system. This sourcedId is used to enable identification of the original record for which the new sourcedId has been allocated at the service provider.
            allocatedSourcedId [1..1] String The sourcedId that has been allocated by the system on which the new record has been created.

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.27b.

Code 6.54.1 - JSON payload example for "201" response messages for a "postLineItemsForSchool" operation.
    {
        "sourcedIdPairs" : [
            {
                "suppliedSourcedId" : "..String..",
                "allocatedSourcedId" : "..String.."
            },
            {...},
            {...}
        ]
    }
                        

6.54.2 Response Payloads for the HTTP Codes (default, 401, 403, 404, 422, 429, 500)

A tabular description of the response payload is shown in the Table below.

Table 6.54.2 - Tabular representation of the JSON payload for "default, 401, 403, 404, 422, 429, 500" response messages for a "postLineItemsForSchool" operation.
Property Name Multiplicity JSON Data-type Description
    imsx_codeMajor [1..1] Enumeration The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.
    imsx_severity [1..1] Enumeration The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.
    imsx_description [0..1] String A human readable description supplied by the entity creating the status code information.
    imsx_CodeMinor [0..1] Object The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.
            imsx_codeMinorField [1..*] Array [ Object ] Each reported code minor status code.
                    imsx_codeMinorFieldName [1..1] String This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.
                    imsx_codeMinorFieldValue [1..1] Enumeration The code minor status code (this is a value from the corresponding enumerated vocabulary).

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.27c.

Code 6.54.2 - JSON payload example for "default, 401, 403, 404, 422, 429, 500" response messages for a "postLineItemsForSchool" 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_filter_field"|"invalid_selection_field"|"invaliddata"|"unauthorisedrequest"|"internal_server_error"|"server_busy"|"deletefailure"|"unknownobject"|"forbidden"
                },
                {...},
                {...}
            ]
        }
    }
                        

6.55 "postResultsForAcademicSessionForClass" Request Payload

A tabular description of the request payload is shown in the Table below.

Table 6.55.1 - Tabular representation of the JSON payload for the request message for a "postResultsForAcademicSessionForClass" operation.
Property Name Multiplicity JSON Data-type Description
    results [0..*] Array [ Object ] The collection of result instances. The order is not significant. The corresponding query constraints may result in no instances being returned.
            sourcedId [1..1] String The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.
            status [1..1] Enumeration All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
            dateLastModified [1..1] String (Format: date-time) All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.
            metadata [0..1] Object All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.
                    extensions [0..*] Set of Proprietary Properties The form of the extension is dependent on the binding technology being used. This specification is silent on what implementers may consider to be appropriate extensions.
            lineItem [1..1] Object The GUID of the lineItem to which the result is aligned.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'lineItem'.
            student [1..1] Object The GUID of the student for whom the result is assigned.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'user'.
            class [0..1] Object The GUID of the class to which the result is aligned.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'class'.
            scoreScale [0..1] Object The GUID of the scoreScale against which the result is aligned.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'scoreScale'.
            scoreStatus [1..1] Union(ScoreStatusExtEnum) The status of the score. The value is from an extensible enumerated vocabulary.
            score [0..1] Float The score for the result. If a scoreScale is assigned then the value must align with the scale.
            textScore [0..1] String An optional non-numeric score value. If a scoreScale is assigned then the value must align with the scale. This attribute was added in OR 1.2.
            scoreDate [1..1] String (Format: date) The date at which the score is assigned or there is an update to the result e.g. change in the 'scoreStatus'. The format is YYYY-MM-DD as defined in [ISO 8601].
            comment [0..1] String A human readable comment about the score.
            learningObjectiveSet [0..*] Array [ Object ] The set of identifiers for the learning objectives to which this result is aligned. Any number groups of learning objectives can be assigned.
                    source [1..1] Union(SourceExtEnum) The source responsible for creating the learning objective identifiers. The permitted values are from an extensible vocabulary.
                    learningObjectiveResults [1..*] Array [ Object ] The set of unique identifiers for the associated learning objectives (these may have alignment with a mastery score). If these are CASE identifiers they MUST be valid UUIDs.
                            learningObjectiveId [1..1] String The unique identifier for the associated learning objective. If this is a CASE identifier it MUST be a valid UUID.
                            score [0..1] Float The optional mastery score supplied as a numeric value.
                            textScore [0..1] String The optional mastery score supplied in a non-numeric form.
            inProgress [0..1] Enumeration This is used to indicate that the associated work activity has been assigned and student's work product is not yet expected to have been submitted.
            incomplete [0..1] Enumeration This is used to indicate that the student's work product has been submitted but it is deemed incomplete by the teacher.
            late [0..1] Enumeration This is used to indicate that the student's work product is either past due or it has been submitted past the due date. The score on this result may be impacted as as result of this flag.
            missing [0..1] Enumeration This is used to indicate that the student's work product as not been submitted.

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

Code 6.55.1 - JSON payload example for the request message for a "postResultsForAcademicSessionForClass" operation.
    {
        "results" : [
            {
                "sourcedId" : "..String..",
                "status" : "active"|"tobedeleted",
                "dateLastModified" : "..Date/Time..",
                "metadata" : {
                    "..permitted extension point.." : "..user defined value.."
                },
                "lineItem" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "lineItem"
                },
                "student" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "user"
                },
                "class" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "class"
                },
                "scoreScale" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "scoreScale"
                },
                "scoreStatus" : "..select from Union..",
                "score" : ..Number(Float)..,
                "textScore" : "..NormalizedString..",
                "scoreDate" : "..String(Date)..",
                "comment" : "..String..",
                "learningObjectiveSet" : [
                    {
                        "source" : "..select from Union..",
                        "learningObjectiveResults" : [
                            {
                                "learningObjectiveId" : "..NormalizedString..",
                                "score" : ..Number(Float)..,
                                "textScore" : "..NormalizedString.."
                            },
                            {...},
                            {...}
                        ]
                    },
                    {...},
                    {...}
                ],
                "inProgress" : "true"|"false",
                "incomplete" : "true"|"false",
                "late" : "true"|"false",
                "missing" : "true"|"false"
            },
            {...},
            {...}
        ]
    }
                        

6.56 "postResultsForAcademicSessionForClass" Response Payloads

6.56.1 Response Payloads for the HTTP Codes (201)

A tabular description of the response payload is shown in the Table below.

Table 6.56.1 - Tabular representation of the JSON payload for "201" response messages for a "postResultsForAcademicSessionForClass" operation.
Property Name Multiplicity JSON Data-type Description
    sourcedIdPairs [0..*] Array [ Object ] The set of sourcedId pairs. The order is not significant as each pair contains the information between the original/new values.
            suppliedSourcedId [1..1] String The temporary sourcedId that has been allocated by the requesting system. This sourcedId is used to enable identification of the original record for which the new sourcedId has been allocated at the service provider.
            allocatedSourcedId [1..1] String The sourcedId that has been allocated by the system on which the new record has been created.

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.28b.

Code 6.56.1 - JSON payload example for "201" response messages for a "postResultsForAcademicSessionForClass" operation.
    {
        "sourcedIdPairs" : [
            {
                "suppliedSourcedId" : "..String..",
                "allocatedSourcedId" : "..String.."
            },
            {...},
            {...}
        ]
    }
                        

6.56.2 Response Payloads for the HTTP Codes (default, 401, 403, 404, 422, 429, 500)

A tabular description of the response payload is shown in the Table below.

Table 6.56.2 - Tabular representation of the JSON payload for "default, 401, 403, 404, 422, 429, 500" response messages for a "postResultsForAcademicSessionForClass" operation.
Property Name Multiplicity JSON Data-type Description
    imsx_codeMajor [1..1] Enumeration The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.
    imsx_severity [1..1] Enumeration The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.
    imsx_description [0..1] String A human readable description supplied by the entity creating the status code information.
    imsx_CodeMinor [0..1] Object The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.
            imsx_codeMinorField [1..*] Array [ Object ] Each reported code minor status code.
                    imsx_codeMinorFieldName [1..1] String This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.
                    imsx_codeMinorFieldValue [1..1] Enumeration The code minor status code (this is a value from the corresponding enumerated vocabulary).

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.28c.

Code 6.56.2 - JSON payload example for "default, 401, 403, 404, 422, 429, 500" response messages for a "postResultsForAcademicSessionForClass" 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_filter_field"|"invalid_selection_field"|"invaliddata"|"unauthorisedrequest"|"internal_server_error"|"server_busy"|"deletefailure"|"unknownobject"|"forbidden"
                },
                {...},
                {...}
            ]
        }
    }
                        

6.57 "postResultsForLineItem" Request Payload

A tabular description of the request payload is shown in the Table below.

Table 6.57.1 - Tabular representation of the JSON payload for the request message for a "postResultsForLineItem" operation.
Property Name Multiplicity JSON Data-type Description
    results [0..*] Array [ Object ] The collection of result instances. The order is not significant. The corresponding query constraints may result in no instances being returned.
            sourcedId [1..1] String The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.
            status [1..1] Enumeration All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
            dateLastModified [1..1] String (Format: date-time) All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.
            metadata [0..1] Object All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.
                    extensions [0..*] Set of Proprietary Properties The form of the extension is dependent on the binding technology being used. This specification is silent on what implementers may consider to be appropriate extensions.
            lineItem [1..1] Object The GUID of the lineItem to which the result is aligned.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'lineItem'.
            student [1..1] Object The GUID of the student for whom the result is assigned.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'user'.
            class [0..1] Object The GUID of the class to which the result is aligned.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'class'.
            scoreScale [0..1] Object The GUID of the scoreScale against which the result is aligned.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'scoreScale'.
            scoreStatus [1..1] Union(ScoreStatusExtEnum) The status of the score. The value is from an extensible enumerated vocabulary.
            score [0..1] Float The score for the result. If a scoreScale is assigned then the value must align with the scale.
            textScore [0..1] String An optional non-numeric score value. If a scoreScale is assigned then the value must align with the scale. This attribute was added in OR 1.2.
            scoreDate [1..1] String (Format: date) The date at which the score is assigned or there is an update to the result e.g. change in the 'scoreStatus'. The format is YYYY-MM-DD as defined in [ISO 8601].
            comment [0..1] String A human readable comment about the score.
            learningObjectiveSet [0..*] Array [ Object ] The set of identifiers for the learning objectives to which this result is aligned. Any number groups of learning objectives can be assigned.
                    source [1..1] Union(SourceExtEnum) The source responsible for creating the learning objective identifiers. The permitted values are from an extensible vocabulary.
                    learningObjectiveResults [1..*] Array [ Object ] The set of unique identifiers for the associated learning objectives (these may have alignment with a mastery score). If these are CASE identifiers they MUST be valid UUIDs.
                            learningObjectiveId [1..1] String The unique identifier for the associated learning objective. If this is a CASE identifier it MUST be a valid UUID.
                            score [0..1] Float The optional mastery score supplied as a numeric value.
                            textScore [0..1] String The optional mastery score supplied in a non-numeric form.
            inProgress [0..1] Enumeration This is used to indicate that the associated work activity has been assigned and student's work product is not yet expected to have been submitted.
            incomplete [0..1] Enumeration This is used to indicate that the student's work product has been submitted but it is deemed incomplete by the teacher.
            late [0..1] Enumeration This is used to indicate that the student's work product is either past due or it has been submitted past the due date. The score on this result may be impacted as as result of this flag.
            missing [0..1] Enumeration This is used to indicate that the student's work product as not been submitted.

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

Code 6.57.1 - JSON payload example for the request message for a "postResultsForLineItem" operation.
    {
        "results" : [
            {
                "sourcedId" : "..String..",
                "status" : "active"|"tobedeleted",
                "dateLastModified" : "..Date/Time..",
                "metadata" : {
                    "..permitted extension point.." : "..user defined value.."
                },
                "lineItem" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "lineItem"
                },
                "student" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "user"
                },
                "class" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "class"
                },
                "scoreScale" : {
                    "href" : "..URI..",
                    "sourcedId" : "..String..",
                    "type" : "scoreScale"
                },
                "scoreStatus" : "..select from Union..",
                "score" : ..Number(Float)..,
                "textScore" : "..NormalizedString..",
                "scoreDate" : "..String(Date)..",
                "comment" : "..String..",
                "learningObjectiveSet" : [
                    {
                        "source" : "..select from Union..",
                        "learningObjectiveResults" : [
                            {
                                "learningObjectiveId" : "..NormalizedString..",
                                "score" : ..Number(Float)..,
                                "textScore" : "..NormalizedString.."
                            },
                            {...},
                            {...}
                        ]
                    },
                    {...},
                    {...}
                ],
                "inProgress" : "true"|"false",
                "incomplete" : "true"|"false",
                "late" : "true"|"false",
                "missing" : "true"|"false"
            },
            {...},
            {...}
        ]
    }
                        

6.58 "postResultsForLineItem" Response Payloads

6.58.1 Response Payloads for the HTTP Codes (201)

A tabular description of the response payload is shown in the Table below.

Table 6.58.1 - Tabular representation of the JSON payload for "201" response messages for a "postResultsForLineItem" operation.
Property Name Multiplicity JSON Data-type Description
    sourcedIdPairs [0..*] Array [ Object ] The set of sourcedId pairs. The order is not significant as each pair contains the information between the original/new values.
            suppliedSourcedId [1..1] String The temporary sourcedId that has been allocated by the requesting system. This sourcedId is used to enable identification of the original record for which the new sourcedId has been allocated at the service provider.
            allocatedSourcedId [1..1] String The sourcedId that has been allocated by the system on which the new record has been created.

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.29b.

Code 6.58.1 - JSON payload example for "201" response messages for a "postResultsForLineItem" operation.
    {
        "sourcedIdPairs" : [
            {
                "suppliedSourcedId" : "..String..",
                "allocatedSourcedId" : "..String.."
            },
            {...},
            {...}
        ]
    }
                        

6.58.2 Response Payloads for the HTTP Codes (default, 401, 403, 404, 422, 429, 500)

A tabular description of the response payload is shown in the Table below.

Table 6.58.2 - Tabular representation of the JSON payload for "default, 401, 403, 404, 422, 429, 500" response messages for a "postResultsForLineItem" operation.
Property Name Multiplicity JSON Data-type Description
    imsx_codeMajor [1..1] Enumeration The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.
    imsx_severity [1..1] Enumeration The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.
    imsx_description [0..1] String A human readable description supplied by the entity creating the status code information.
    imsx_CodeMinor [0..1] Object The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.
            imsx_codeMinorField [1..*] Array [ Object ] Each reported code minor status code.
                    imsx_codeMinorFieldName [1..1] String This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.
                    imsx_codeMinorFieldValue [1..1] Enumeration The code minor status code (this is a value from the corresponding enumerated vocabulary).

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.29c.

Code 6.58.2 - JSON payload example for "default, 401, 403, 404, 422, 429, 500" response messages for a "postResultsForLineItem" 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_filter_field"|"invalid_selection_field"|"invaliddata"|"unauthorisedrequest"|"internal_server_error"|"server_busy"|"deletefailure"|"unknownobject"|"forbidden"
                },
                {...},
                {...}
            ]
        }
    }
                        

6.59 "putAssessmentLineItem" Request Payload

A tabular description of the request payload is shown in the Table below.

Table 6.59.1 - Tabular representation of the JSON payload for the request message for a "putAssessmentLineItem" operation.
Property Name Multiplicity JSON Data-type Description
    assessmentLineItem [1..1] Object The instance of the single assessment lineItem for a message payload. There must be a data payload otherwise an error report payload for the record not being located should be returned.
            sourcedId [1..1] String The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.
            status [1..1] Enumeration All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
            dateLastModified [1..1] String (Format: date-time) All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.
            metadata [0..1] Object All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.
                    extensions [0..*] Set of Proprietary Properties The form of the extension is dependent on the binding technology being used. This specification is silent on what implementers may consider to be appropriate extensions.
            title [1..1] String The title, human readable, for the assessment lineItem. This should allow the assessment lineItem to be distinguished from its peer assessment lineItems.
            description [0..1] String A human readable description of the usage of the assessment lineItem.
            class [0..1] Object The GUID of the class to which the assessment lineItem has been assigned. Note that an assessment LineItem MAY be assigned tio a class.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'class'.
            parentAssessmentLineItem [0..1] Object The GUID of the parent assessment lineItem. This enables the assessment lineItems to be chained together in a parent/child hierarchy.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. an 'assessmentLineItem'.
            scoreScale [0..1] Object The GUID of the score scale to be used for the lineItem. This attribute was added in the OR 1.2 release.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'scoreScale'.
            resultValueMin [0..1] Float The minimum value (numeric) that can be assigned to the score attribute in a result. The score scale mapping should be used to map to other scores.
            resultValueMax [0..1] Float The maximum value (numeric) that can be assigned to the score attribute in a result. The score scale mapping should be used to map to other scores.
            learningObjectiveSet [0..*] Array [ Object ] The set of identifiers for the learning objectives to which this assessment is aligned. Any number groups of learning objectives can be assigned.
                    source [1..1] Union(SourceExtEnum) The source responsible for creating the learning objective identifiers. The permitted values are from an extensible vocabulary.
                    learningObjectiveIds [1..*] Array [ String ] The set of unique identifiers for the associated learning objectives. If these are CASE identifiers they MUST be valid UUIDs.

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

Code 6.59.1 - JSON payload example for the request message for a "putAssessmentLineItem" operation.
    {
        "assessmentLineItem" : {
            "sourcedId" : "..String..",
            "status" : "active"|"tobedeleted",
            "dateLastModified" : "..Date/Time..",
            "metadata" : {
                "..permitted extension point.." : "..user defined value.."
            },
            "title" : "..NormalizedString..",
            "description" : "..String..",
            "class" : {
                "href" : "..URI..",
                "sourcedId" : "..String..",
                "type" : "class"
            },
            "parentAssessmentLineItem" : {
                "href" : "..URI..",
                "sourcedId" : "..String..",
                "type" : "assessmentLineItem"
            },
            "scoreScale" : {
                "href" : "..URI..",
                "sourcedId" : "..String..",
                "type" : "scoreScale"
            },
            "resultValueMin" : ..Number(Float)..,
            "resultValueMax" : ..Number(Float)..,
            "learningObjectiveSet" : [
                {
                    "source" : "..select from Union..",
                    "learningObjectiveIds" : [ "..NormalizedString..", ..., "..NormalizedString.." ]
                },
                {...},
                {...}
            ]
        }
    }
                        

6.60 "putAssessmentLineItem" Response Payloads

6.60.1 Response Payloads for the HTTP Codes (201)

There is no payload for these responses i.e. only a HTTP response header is returned.

6.60.2 Response Payloads for the HTTP Codes (default, 401, 403, 404, 422, 429, 500)

A tabular description of the response payload is shown in the Table below.

Table 6.60.2 - Tabular representation of the JSON payload for "default, 401, 403, 404, 422, 429, 500" response messages for a "putAssessmentLineItem" operation.
Property Name Multiplicity JSON Data-type Description
    imsx_codeMajor [1..1] Enumeration The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.
    imsx_severity [1..1] Enumeration The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.
    imsx_description [0..1] String A human readable description supplied by the entity creating the status code information.
    imsx_CodeMinor [0..1] Object The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.
            imsx_codeMinorField [1..*] Array [ Object ] Each reported code minor status code.
                    imsx_codeMinorFieldName [1..1] String This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.
                    imsx_codeMinorFieldValue [1..1] Enumeration The code minor status code (this is a value from the corresponding enumerated vocabulary).

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.30c.

Code 6.60.2 - JSON payload example for "default, 401, 403, 404, 422, 429, 500" response messages for a "putAssessmentLineItem" 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_filter_field"|"invalid_selection_field"|"invaliddata"|"unauthorisedrequest"|"internal_server_error"|"server_busy"|"deletefailure"|"unknownobject"|"forbidden"
                },
                {...},
                {...}
            ]
        }
    }
                        

6.61 "putAssessmentResult" Request Payload

A tabular description of the request payload is shown in the Table below.

Table 6.61.1 - Tabular representation of the JSON payload for the request message for a "putAssessmentResult" operation.
Property Name Multiplicity JSON Data-type Description
    assessmentResult [1..1] Object The instance of the single assessment result for a message payload. There must be a data payload otherwise an error report payload for the record not being located should be returned.
            sourcedId [1..1] String The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.
            status [1..1] Enumeration All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
            dateLastModified [1..1] String (Format: date-time) All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.
            metadata [0..1] Object All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.
                    extensions [0..*] Set of Proprietary Properties The form of the extension is dependent on the binding technology being used. This specification is silent on what implementers may consider to be appropriate extensions.
            assessmentLineItem [1..1] Object The GUID of the assessment lineItem to which the assessment result is aligned.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. an 'assessmentLineItem'.
            student [1..1] Object The GUID of the student for whom the assessment result is assigned.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'user'.
            score [0..1] Float The score for the result. If a scoreScale is assigned then the value must align with the scale.
            textScore [0..1] String An optional non-numeric score value. If a scoreScale is assigned then the value must align with the scale.
            scoreDate [1..1] String (Format: date) The date at which the score is assigned or there is an update to the result e.g. change in the 'scoreStatus'.. The format is YYYY-MM-DD as defined in [ISO 8601].
            scoreScale [0..1] Object The GUID of the scoreScale against which the result is aligned.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'scoreScale'.
            scorePercentile [0..1] Float The percentile rank of a score is the percentage of scores in its frequency distribution that are equal to or lower than it.
            scoreStatus [1..1] Union(ScoreStatusExtEnum) The status of the score. The value is from an extensible enumerated vocabulary.
            comment [0..1] String A human readable comment about the score.
            learningObjectiveSet [0..*] Array [ Object ] The set of identifiers for the learning objectives to which this result is aligned. Any number groups of learning objectives can be assigned.
                    source [1..1] Union(SourceExtEnum) The source responsible for creating the learning objective identifiers. The permitted values are from an extensible vocabulary.
                    learningObjectiveResults [1..*] Array [ Object ] The set of unique identifiers for the associated learning objectives (these may have alignment with a mastery score). If these are CASE identifiers they MUST be valid UUIDs.
                            learningObjectiveId [1..1] String The unique identifier for the associated learning objective. If this is a CASE identifier it MUST be a valid UUID.
                            score [0..1] Float The optional mastery score supplied as a numeric value.
                            textScore [0..1] String The optional mastery score supplied in a non-numeric form.
            inProgress [0..1] Enumeration This is used to indicate that the associated work activity has been assigned and student's work product is not yet expected to have been submitted.
            incomplete [0..1] Enumeration This is used to indicate that the student's work product has been submitted but it is deemed incomplete by the teacher.
            late [0..1] Enumeration This is used to indicate that the student's work product is either past due or it has been submitted past the due date. The score on this result may be impacted as as result of this flag.
            missing [0..1] Enumeration This is used to indicate that the student's work product as not been submitted.

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

Code 6.61.1 - JSON payload example for the request message for a "putAssessmentResult" operation.
    {
        "assessmentResult" : {
            "sourcedId" : "..String..",
            "status" : "active"|"tobedeleted",
            "dateLastModified" : "..Date/Time..",
            "metadata" : {
                "..permitted extension point.." : "..user defined value.."
            },
            "assessmentLineItem" : {
                "href" : "..URI..",
                "sourcedId" : "..String..",
                "type" : "assessmentLineItem"
            },
            "student" : {
                "href" : "..URI..",
                "sourcedId" : "..String..",
                "type" : "user"
            },
            "score" : ..Number(Float)..,
            "textScore" : "..NormalizedString..",
            "scoreDate" : "..String(Date)..",
            "scoreScale" : {
                "href" : "..URI..",
                "sourcedId" : "..String..",
                "type" : "scoreScale"
            },
            "scorePercentile" : ..Number(Float)..,
            "scoreStatus" : "..select from Union..",
            "comment" : "..String..",
            "learningObjectiveSet" : [
                {
                    "source" : "..select from Union..",
                    "learningObjectiveResults" : [
                        {
                            "learningObjectiveId" : "..NormalizedString..",
                            "score" : ..Number(Float)..,
                            "textScore" : "..NormalizedString.."
                        },
                        {...},
                        {...}
                    ]
                },
                {...},
                {...}
            ],
            "inProgress" : "true"|"false",
            "incomplete" : "true"|"false",
            "late" : "true"|"false",
            "missing" : "true"|"false"
        }
    }
                        

6.62 "putAssessmentResult" Response Payloads

6.62.1 Response Payloads for the HTTP Codes (201)

There is no payload for these responses i.e. only a HTTP response header is returned.

6.62.2 Response Payloads for the HTTP Codes (default, 401, 403, 404, 422, 429, 500)

A tabular description of the response payload is shown in the Table below.

Table 6.62.2 - Tabular representation of the JSON payload for "default, 401, 403, 404, 422, 429, 500" response messages for a "putAssessmentResult" operation.
Property Name Multiplicity JSON Data-type Description
    imsx_codeMajor [1..1] Enumeration The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.
    imsx_severity [1..1] Enumeration The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.
    imsx_description [0..1] String A human readable description supplied by the entity creating the status code information.
    imsx_CodeMinor [0..1] Object The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.
            imsx_codeMinorField [1..*] Array [ Object ] Each reported code minor status code.
                    imsx_codeMinorFieldName [1..1] String This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.
                    imsx_codeMinorFieldValue [1..1] Enumeration The code minor status code (this is a value from the corresponding enumerated vocabulary).

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.31c.

Code 6.62.2 - JSON payload example for "default, 401, 403, 404, 422, 429, 500" response messages for a "putAssessmentResult" 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_filter_field"|"invalid_selection_field"|"invaliddata"|"unauthorisedrequest"|"internal_server_error"|"server_busy"|"deletefailure"|"unknownobject"|"forbidden"
                },
                {...},
                {...}
            ]
        }
    }
                        

6.63 "putCategory" Request Payload

A tabular description of the request payload is shown in the Table below.

Table 6.63.1 - Tabular representation of the JSON payload for the request message for a "putCategory" operation.
Property Name Multiplicity JSON Data-type Description
    category [1..1] Object The instance of the single category for a message payload. There must be a data payload otherwise an error report payload for the record not being located should be returned.
            sourcedId [1..1] String The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.
            status [1..1] Enumeration All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
            dateLastModified [1..1] String (Format: date-time) All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.
            metadata [0..1] Object All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.
                    extensions [0..*] Set of Proprietary Properties The form of the extension is dependent on the binding technology being used. This specification is silent on what implementers may consider to be appropriate extensions.
            title [1..1] String The human readable title for the category.
            weight [0..1] Float Total weight of this grading category in calculation of the course final score.

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

Code 6.63.1 - JSON payload example for the request message for a "putCategory" operation.
    {
        "category" : {
            "sourcedId" : "..String..",
            "status" : "active"|"tobedeleted",
            "dateLastModified" : "..Date/Time..",
            "metadata" : {
                "..permitted extension point.." : "..user defined value.."
            },
            "title" : "..NormalizedString..",
            "weight" : ..Number(Float)..
        }
    }
                        

6.64 "putCategory" Response Payloads

6.64.1 Response Payloads for the HTTP Codes (201)

There is no payload for these responses i.e. only a HTTP response header is returned.

6.64.2 Response Payloads for the HTTP Codes (default, 401, 403, 404, 422, 429, 500)

A tabular description of the response payload is shown in the Table below.

Table 6.64.2 - Tabular representation of the JSON payload for "default, 401, 403, 404, 422, 429, 500" response messages for a "putCategory" operation.
Property Name Multiplicity JSON Data-type Description
    imsx_codeMajor [1..1] Enumeration The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.
    imsx_severity [1..1] Enumeration The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.
    imsx_description [0..1] String A human readable description supplied by the entity creating the status code information.
    imsx_CodeMinor [0..1] Object The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.
            imsx_codeMinorField [1..*] Array [ Object ] Each reported code minor status code.
                    imsx_codeMinorFieldName [1..1] String This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.
                    imsx_codeMinorFieldValue [1..1] Enumeration The code minor status code (this is a value from the corresponding enumerated vocabulary).

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.32c.

Code 6.64.2 - JSON payload example for "default, 401, 403, 404, 422, 429, 500" response messages for a "putCategory" 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_filter_field"|"invalid_selection_field"|"invaliddata"|"unauthorisedrequest"|"internal_server_error"|"server_busy"|"deletefailure"|"unknownobject"|"forbidden"
                },
                {...},
                {...}
            ]
        }
    }
                        

6.65 "putLineItem" Request Payload

A tabular description of the request payload is shown in the Table below.

Table 6.65.1 - Tabular representation of the JSON payload for the request message for a "putLineItem" operation.
Property Name Multiplicity JSON Data-type Description
    lineItem [1..1] Object The instance of the single lineItem for a message payload. There must be a data payload otherwise an error report payload for the record not being located should be returned.
            sourcedId [1..1] String The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.
            status [1..1] Enumeration All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
            dateLastModified [1..1] String (Format: date-time) All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.
            metadata [0..1] Object All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.
                    extensions [0..*] Set of Proprietary Properties The form of the extension is dependent on the binding technology being used. This specification is silent on what implementers may consider to be appropriate extensions.
            title [1..1] String The title, human readable, for the lineItem. This should allow the lineItem to be distinguished from its peer lineItems.
            description [0..1] String A human readable description of the usage of the lineItem.
            assignDate [1..1] String (Format: date-time) The date/time the activity being addressed by the lineItem was assigned to the student. This has a format as defined in [ISO 8601].
            dueDate [1..1] String (Format: date-time) The date/time by which the assignment must be completed and submitted. This has the dateTime format as defined in [ISO 8601].
            class [1..1] Object The GUID of the class to which the lineItem has been assigned.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'class'.
            school [1..1] Object The GUID of the school for whom the lineItem has been assigned. This attribute was added in the OR 1.2 release.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. an 'org'.
            category [1..1] Object The GUID of the category to which the lineItem has been assigned.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'category'.
            gradingPeriod [0..1] Object The GUID of the grading period for the lineItem. This attribute was added in the OR 1.2 release.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. an 'academicSession'.
            academicSession [0..1] Object The GUID of the academic session for the lineItem. This should NOT be defined if the 'gradingPeriod' attribute has been used.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. an 'academicSession'.
            scoreScale [0..1] Object The GUID of the score scale to be used for the lineItem. This attribute was added in the OR 1.2 release.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'scoreScale'.
            resultValueMin [0..1] Float The minimum value (numeric) that can be assigned to the score attribute in a result. The score scale mapping should be used to map to other scores.
            resultValueMax [0..1] Float The maximum value (numeric) that can be assigned to the score attribute in a result. The score scale mapping should be used to map to other scores.
            learningObjectiveSet [0..*] Array [ Object ] The set of identifiers for the learning objectives to which this assessment is aligned. Any number groups of learning objectives can be assigned.
                    source [1..1] Union(SourceExtEnum) The source responsible for creating the learning objective identifiers. The permitted values are from an extensible vocabulary.
                    learningObjectiveIds [1..*] Array [ String ] The set of unique identifiers for the associated learning objectives. If these are CASE identifiers they MUST be valid UUIDs.

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

Code 6.65.1 - JSON payload example for the request message for a "putLineItem" operation.
    {
        "lineItem" : {
            "sourcedId" : "..String..",
            "status" : "active"|"tobedeleted",
            "dateLastModified" : "..Date/Time..",
            "metadata" : {
                "..permitted extension point.." : "..user defined value.."
            },
            "title" : "..NormalizedString..",
            "description" : "..String..",
            "assignDate" : "..Date/Time..",
            "dueDate" : "..Date/Time..",
            "class" : {
                "href" : "..URI..",
                "sourcedId" : "..String..",
                "type" : "class"
            },
            "school" : {
                "href" : "..URI..",
                "sourcedId" : "..String..",
                "type" : "org"
            },
            "category" : {
                "href" : "..URI..",
                "sourcedId" : "..String..",
                "type" : "category"
            },
            "gradingPeriod" : {
                "href" : "..URI..",
                "sourcedId" : "..String..",
                "type" : "academicSession"
            },
            "academicSession" : {
                "href" : "..URI..",
                "sourcedId" : "..String..",
                "type" : "academicSession"
            },
            "scoreScale" : {
                "href" : "..URI..",
                "sourcedId" : "..String..",
                "type" : "scoreScale"
            },
            "resultValueMin" : ..Number(Float)..,
            "resultValueMax" : ..Number(Float)..,
            "learningObjectiveSet" : [
                {
                    "source" : "..select from Union..",
                    "learningObjectiveIds" : [ "..NormalizedString..", ..., "..NormalizedString.." ]
                },
                {...},
                {...}
            ]
        }
    }
                        

6.66 "putLineItem" Response Payloads

6.66.1 Response Payloads for the HTTP Codes (201)

There is no payload for these responses i.e. only a HTTP response header is returned.

6.66.2 Response Payloads for the HTTP Codes (default, 401, 403, 404, 422, 429, 500)

A tabular description of the response payload is shown in the Table below.

Table 6.66.2 - Tabular representation of the JSON payload for "default, 401, 403, 404, 422, 429, 500" response messages for a "putLineItem" operation.
Property Name Multiplicity JSON Data-type Description
    imsx_codeMajor [1..1] Enumeration The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.
    imsx_severity [1..1] Enumeration The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.
    imsx_description [0..1] String A human readable description supplied by the entity creating the status code information.
    imsx_CodeMinor [0..1] Object The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.
            imsx_codeMinorField [1..*] Array [ Object ] Each reported code minor status code.
                    imsx_codeMinorFieldName [1..1] String This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.
                    imsx_codeMinorFieldValue [1..1] Enumeration The code minor status code (this is a value from the corresponding enumerated vocabulary).

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.33c.

Code 6.66.2 - JSON payload example for "default, 401, 403, 404, 422, 429, 500" response messages for a "putLineItem" 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_filter_field"|"invalid_selection_field"|"invaliddata"|"unauthorisedrequest"|"internal_server_error"|"server_busy"|"deletefailure"|"unknownobject"|"forbidden"
                },
                {...},
                {...}
            ]
        }
    }
                        

6.67 "putResult" Request Payload

A tabular description of the request payload is shown in the Table below.

Table 6.67.1 - Tabular representation of the JSON payload for the request message for a "putResult" operation.
Property Name Multiplicity JSON Data-type Description
    result [1..1] Object The instance of the single result for a message payload. There must be a data payload otherwise an error report payload for the record not being located should be returned.
            sourcedId [1..1] String The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.
            status [1..1] Enumeration All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
            dateLastModified [1..1] String (Format: date-time) All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.
            metadata [0..1] Object All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.
                    extensions [0..*] Set of Proprietary Properties The form of the extension is dependent on the binding technology being used. This specification is silent on what implementers may consider to be appropriate extensions.
            lineItem [1..1] Object The GUID of the lineItem to which the result is aligned.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'lineItem'.
            student [1..1] Object The GUID of the student for whom the result is assigned.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'user'.
            class [0..1] Object The GUID of the class to which the result is aligned.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'class'.
            scoreScale [0..1] Object The GUID of the scoreScale against which the result is aligned.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'scoreScale'.
            scoreStatus [1..1] Union(ScoreStatusExtEnum) The status of the score. The value is from an extensible enumerated vocabulary.
            score [0..1] Float The score for the result. If a scoreScale is assigned then the value must align with the scale.
            textScore [0..1] String An optional non-numeric score value. If a scoreScale is assigned then the value must align with the scale. This attribute was added in OR 1.2.
            scoreDate [1..1] String (Format: date) The date at which the score is assigned or there is an update to the result e.g. change in the 'scoreStatus'. The format is YYYY-MM-DD as defined in [ISO 8601].
            comment [0..1] String A human readable comment about the score.
            learningObjectiveSet [0..*] Array [ Object ] The set of identifiers for the learning objectives to which this result is aligned. Any number groups of learning objectives can be assigned.
                    source [1..1] Union(SourceExtEnum) The source responsible for creating the learning objective identifiers. The permitted values are from an extensible vocabulary.
                    learningObjectiveResults [1..*] Array [ Object ] The set of unique identifiers for the associated learning objectives (these may have alignment with a mastery score). If these are CASE identifiers they MUST be valid UUIDs.
                            learningObjectiveId [1..1] String The unique identifier for the associated learning objective. If this is a CASE identifier it MUST be a valid UUID.
                            score [0..1] Float The optional mastery score supplied as a numeric value.
                            textScore [0..1] String The optional mastery score supplied in a non-numeric form.
            inProgress [0..1] Enumeration This is used to indicate that the associated work activity has been assigned and student's work product is not yet expected to have been submitted.
            incomplete [0..1] Enumeration This is used to indicate that the student's work product has been submitted but it is deemed incomplete by the teacher.
            late [0..1] Enumeration This is used to indicate that the student's work product is either past due or it has been submitted past the due date. The score on this result may be impacted as as result of this flag.
            missing [0..1] Enumeration This is used to indicate that the student's work product as not been submitted.

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

Code 6.67.1 - JSON payload example for the request message for a "putResult" operation.
    {
        "result" : {
            "sourcedId" : "..String..",
            "status" : "active"|"tobedeleted",
            "dateLastModified" : "..Date/Time..",
            "metadata" : {
                "..permitted extension point.." : "..user defined value.."
            },
            "lineItem" : {
                "href" : "..URI..",
                "sourcedId" : "..String..",
                "type" : "lineItem"
            },
            "student" : {
                "href" : "..URI..",
                "sourcedId" : "..String..",
                "type" : "user"
            },
            "class" : {
                "href" : "..URI..",
                "sourcedId" : "..String..",
                "type" : "class"
            },
            "scoreScale" : {
                "href" : "..URI..",
                "sourcedId" : "..String..",
                "type" : "scoreScale"
            },
            "scoreStatus" : "..select from Union..",
            "score" : ..Number(Float)..,
            "textScore" : "..NormalizedString..",
            "scoreDate" : "..String(Date)..",
            "comment" : "..String..",
            "learningObjectiveSet" : [
                {
                    "source" : "..select from Union..",
                    "learningObjectiveResults" : [
                        {
                            "learningObjectiveId" : "..NormalizedString..",
                            "score" : ..Number(Float)..,
                            "textScore" : "..NormalizedString.."
                        },
                        {...},
                        {...}
                    ]
                },
                {...},
                {...}
            ],
            "inProgress" : "true"|"false",
            "incomplete" : "true"|"false",
            "late" : "true"|"false",
            "missing" : "true"|"false"
        }
    }
                        

6.68 "putResult" Response Payloads

6.68.1 Response Payloads for the HTTP Codes (201)

There is no payload for these responses i.e. only a HTTP response header is returned.

6.68.2 Response Payloads for the HTTP Codes (default, 401, 403, 404, 422, 429, 500)

A tabular description of the response payload is shown in the Table below.

Table 6.68.2 - Tabular representation of the JSON payload for "default, 401, 403, 404, 422, 429, 500" response messages for a "putResult" operation.
Property Name Multiplicity JSON Data-type Description
    imsx_codeMajor [1..1] Enumeration The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.
    imsx_severity [1..1] Enumeration The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.
    imsx_description [0..1] String A human readable description supplied by the entity creating the status code information.
    imsx_CodeMinor [0..1] Object The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.
            imsx_codeMinorField [1..*] Array [ Object ] Each reported code minor status code.
                    imsx_codeMinorFieldName [1..1] String This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.
                    imsx_codeMinorFieldValue [1..1] Enumeration The code minor status code (this is a value from the corresponding enumerated vocabulary).

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.34c.

Code 6.68.2 - JSON payload example for "default, 401, 403, 404, 422, 429, 500" response messages for a "putResult" 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_filter_field"|"invalid_selection_field"|"invaliddata"|"unauthorisedrequest"|"internal_server_error"|"server_busy"|"deletefailure"|"unknownobject"|"forbidden"
                },
                {...},
                {...}
            ]
        }
    }
                        

6.69 "putScoreScale" Request Payload

A tabular description of the request payload is shown in the Table below.

Table 6.69.1 - Tabular representation of the JSON payload for the request message for a "putScoreScale" operation.
Property Name Multiplicity JSON Data-type Description
    scoreScale [1..1] Object The instance of the single scoreScale for a message payload. There must be a data payload otherwise an error report payload for the record not being located should be returned.
            sourcedId [1..1] String The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.
            status [1..1] Enumeration All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
            dateLastModified [1..1] String (Format: date-time) All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.
            metadata [0..1] Object All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.
                    extensions [0..*] Set of Proprietary Properties The form of the extension is dependent on the binding technology being used. This specification is silent on what implementers may consider to be appropriate extensions.
            title [1..1] String The human readable title for the score scale mapping.
            type [1..1] String The type of score scale mapping. At present there is no predefined vocabulary. This should be used by an organization to differentiate between the score scales that it produces.
            course [0..1] Object The GUID for the course for which this scale will be used.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'course'.
            class [1..1] Object The GUID for the class for which this scale will be used.
                    href [1..1] String (Format: uri) The URI for the type of object being referenced.
                    sourcedId [1..1] String The globally unique identifier of the object being referenced.
                    type [1..1] Enumeration The type of object being referenced i.e. a 'class'.
            scoreScaleValue [1..*] Array [ Object ] The set of mappings for this score scale.
                    itemValueLHS [1..1] String The left hand side value of the mapping relationship. The format is either a single value ('x') or a range ('x' - 'y'). In the case of a single value this is considered to be the inclusive lower value for the implied range. When a range is specified (lower-to-upper) the values are inclusive.
                    itemValueRHS [1..1] String The right hand side value of the mapping relationship i.e. the equivalent value to the reference point defined in the LHS.

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

Code 6.69.1 - JSON payload example for the request message for a "putScoreScale" operation.
    {
        "scoreScale" : {
            "sourcedId" : "..String..",
            "status" : "active"|"tobedeleted",
            "dateLastModified" : "..Date/Time..",
            "metadata" : {
                "..permitted extension point.." : "..user defined value.."
            },
            "title" : "..NormalizedString..",
            "type" : "..NormalizedString..",
            "course" : {
                "href" : "..URI..",
                "sourcedId" : "..String..",
                "type" : "course"
            },
            "class" : {
                "href" : "..URI..",
                "sourcedId" : "..String..",
                "type" : "class"
            },
            "scoreScaleValue" : [
                {
                    "itemValueLHS" : "..NormalizedString..",
                    "itemValueRHS" : "..NormalizedString.."
                },
                {...},
                {...}
            ]
        }
    }
                        

6.70 "putScoreScale" Response Payloads

6.70.1 Response Payloads for the HTTP Codes (201)

There is no payload for these responses i.e. only a HTTP response header is returned.

6.70.2 Response Payloads for the HTTP Codes (default, 401, 403, 404, 422, 429, 500)

A tabular description of the response payload is shown in the Table below.

Table 6.70.2 - Tabular representation of the JSON payload for "default, 401, 403, 404, 422, 429, 500" response messages for a "putScoreScale" operation.
Property Name Multiplicity JSON Data-type Description
    imsx_codeMajor [1..1] Enumeration The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.
    imsx_severity [1..1] Enumeration The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.
    imsx_description [0..1] String A human readable description supplied by the entity creating the status code information.
    imsx_CodeMinor [0..1] Object The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.
            imsx_codeMinorField [1..*] Array [ Object ] Each reported code minor status code.
                    imsx_codeMinorFieldName [1..1] String This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.
                    imsx_codeMinorFieldValue [1..1] Enumeration The code minor status code (this is a value from the corresponding enumerated vocabulary).

An example of the response JSON payload is shown in the code block below. The JSON Schema file that can be used to validate this payload is given in Appendix C1.35c.

Code 6.70.2 - JSON payload example for "default, 401, 403, 404, 422, 429, 500" response messages for a "putScoreScale" 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_filter_field"|"invalid_selection_field"|"invaliddata"|"unauthorisedrequest"|"internal_server_error"|"server_busy"|"deletefailure"|"unknownobject"|"forbidden"
                },
                {...},
                {...}
            ]
        }
    }
                        

toc | top

7. OpenAPI Description

This Section is NORMATIVE.

7.1 General Information

The set of General Information defined in the OpenAPI description, and realised in both the JSON and YAML instances, are listed in Tables 7.1a (version 2) and 7.1b (version 3). The syntax and semantics for this information are described in Appendix A3.1.

Table 7.1a - The Set of General Information Defined in the OpenAPI(2) Description.
Swagger Version 2.0
Specification Title OneRoster Gradebook Service
Specification Version 1.2
Description The OneRoster Gradebook service binding is available in REST/JSON. The model is based upon the IMS PSM modelling approach.
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 1EdTech 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 Vice President of Operations, 1EdTech (https://www.1edtech.org). Email: operations@1edtech.org.
License 1EdTech - https://www.1edtech.org/license.html
Host www.imsglobal.org
Base Path /ims/oneroster/gradebook/v1p2
Schemes http, https
Consumes application/json
Produces application/json

Table 7.1b - The Set of General Information Defined in the OpenAPI(3) Description.
OpenAPI Version 3.0.0 or 3.1.0
Specification Title OneRoster Gradebook Service
Specification Version 1.2
Description The OneRoster Gradebook service binding is available in REST/JSON. The model is based upon the IMS PSM modelling approach.
Terms of Service https://www.1edtech.org/license.html
Contact Vice President of Operations, 1EdTech (http://www.1edtech.org). Email: operations@1edtech.org.
License 1EdTech - https://www.1edtech.org/license.html
Servers https://{hostName=www.imsglobal.org}{basePath=/ims/oneroster/gradebook/v1p2}
www.imsglobal.org/ims/oneroster/gradebook/v1p2

7.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 7.2. The syntax and semantics for these Tags are described in Appendix A3.2.

Table 7.2 - The Set of Tags Defined in the OpenAPI Description.
Tag Name Description
AssessmentLineItemsManagement This enables the management of the assessment lineItems i.e. lineitems that are used to store results about tests/assessments and where these test/assessments are not aligned to a class. The set of endpoints assigned to this tag are:
AssessmentResultsManagement This enables the management of the assessment results i.e. results that are used to store scores for tests/assessments and where these test/assessments are not aligned to a class. The set of endpoints assigned to this tag are:
CategoriesManagement This enables the management of Categories i.e. collections of LineItems. The set of endpoints assigned to this tag are:
ClassesManagement This enables the management of Classes i.e. scheduled learning of courses, with respect to scoreScales. For this service this is the collection of operations that provide gradebook data in the context of a class identifier. The set of endpoints assigned to this tag are:
LineItemsManagement This enables the management of lineItems i.e. the set of results for the assessment of some activity. The set of endpoints assigned to this tag are:
ResultsManagement This enables the management of results i.e. the score allocated to a learner from the assessent of a learning activity. Results are collected as a set of 'lineItems'. The set of endpoints assigned to this tag are:
SchoolsManagement This enables the management of information about schools with respect to scoreScales. A school is a type of 'org'. For this service this is the collection of operations that provide gradebook data in the context of a school identifier. The set of endpoints assigned to this tag are:
ScoreScalesManagement This enables the management of scoreScales i.e. the set of scales for the results and lineItems. The set of endpoints assigned to this tag are:

7.3 Security Information

The OAuth 2 Client Credentials security mode is used for this service. Table 7.3.1 describes the OpenAPI information for the configuration of the OAuth 2.0 Client Credentials. The syntax and semantics for this information are described in Appendix A3.3.

Table 7.3.1 - The Set of OAuth 2.0 Client Credentials Security Information Defined in the OpenAPI Description.
Security Label OAuth2CC
Type oauth2
Description OAuth 2 Client Credentials (as per the requirements in the IMS Security Framework) is to be used.
Flow OAS2 - application
OAS3 - clientCredentials
Token URL https://www.imsglobal.org/oauth2token
Scopes
  • https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.delete
  • https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.readonly
  • https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.createput
  • https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.delete
  • https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly
  • https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook-core.readonly
  • https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createpost
  • https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createput
Global Scope OAuth2CC : [ https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.delete, https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.readonly, https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.createput, https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.delete, https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly, https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook-core.readonly, https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createpost, https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createput ]

7.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 A3.4.

7.4.1 "/assessmentLineItems" Path

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

Table 7.4.1a - The Path Details for the 'GET' verb with the '/assessmentLineItems' Path.
HTTP Verb: GET
Operation ID getAllAssessmentLineItems
Summary The REST "read" request message for the "getAllAssessmentLineItems()" API call.
Tags AssessmentLineItemsManagement
Security and Scopes The security modes protecting access to this endpoint are:
  • OAuth2CC - OAuth 2 Client Credentials Grant
The scopes that enable access to this endpoint are:
  • https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.readonly
Description Get all of the Assessment Line Items on the service provider.
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 AssessmentLineItemSetDType The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
Headers
* "X-Total-Count" - the total number of resources that are available to be returned
Links
* "next (limit | offset)" - get the next set of resources i.e. from offset to offset+limit
* "last (limit | offset)" - get the last set of resources i.e. from offset to end
* "first (limit | offset)" - get the first set of resources i.e. from first to limit
* "prev (limit | offset)" - get the previous set of resources i.e. from last_offset to last_offset+limit
default imsx_StatusInfoDType This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
400 imsx_StatusInfoDType 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_StatusInfoDType The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfoDType 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'.
422 imsx_StatusInfoDType This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
429 imsx_StatusInfoDType 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_StatusInfoDType 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'.

7.4.2 "/assessmentLineItems/{sourcedId}" Path

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

Table 7.4.2a - The Path Details for the 'GET' verb with the '/assessmentLineItems/{sourcedId}' Path.
HTTP Verb: GET
Operation ID getAssessmentLineItem
Summary The REST "read" request message for the "getAssessmentLineItem()" API call.
Tags AssessmentLineItemsManagement
Security and Scopes The security modes protecting access to this endpoint are:
  • OAuth2CC - OAuth 2 Client Credentials Grant
The scopes that enable access to this endpoint are:
  • https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.readonly
Description Get a specific Assessment LineItem on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.
Path Placeholders
  • {sourcedId} - the unique identifier, GUID, for this assessment lineItem.
Query Parameters
Name Type Multiplicity Default
fields String [0..*] -
Responses
Name Type Description
200 SingleAssessmentLineItemDType The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
default imsx_StatusInfoDType This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
400 imsx_StatusInfoDType 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_StatusInfoDType The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfoDType 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_StatusInfoDType Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.
422 imsx_StatusInfoDType This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
429 imsx_StatusInfoDType 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_StatusInfoDType 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 following Table describes the OpenAPI information for the HTTP Verb "DELETE" on the "/assessmentLineItems/{sourcedId}" Path.

Table 7.4.2b - The Path Details for the 'DELETE' verb with the '/assessmentLineItems/{sourcedId}' Path.
HTTP Verb: DELETE
Operation ID deleteAssessmentLineItem
Summary The REST "delete" request message for the "deleteAssessmentLineItem()" API call.
Tags AssessmentLineItemsManagement
Security and Scopes The security modes protecting access to this endpoint are:
  • OAuth2CC - OAuth 2 Client Credentials Grant
The scopes that enable access to this endpoint are:
  • https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.delete
Description Delete a specific Assessment LineItem on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.
Path Placeholders
  • {sourcedId} - the unique identifier, GUID, for the assessment lineItem to be deleted.
Query Parameters Query parameters are not permitted.
Responses
Name Type Description
204 N/A The object has been successfully deleted.
default imsx_StatusInfoDType This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
401 imsx_StatusInfoDType The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfoDType 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_StatusInfoDType Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.
422 imsx_StatusInfoDType This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
429 imsx_StatusInfoDType 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_StatusInfoDType 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 following Table describes the OpenAPI information for the HTTP Verb "PUT" on the "/assessmentLineItems/{sourcedId}" Path.

Table 7.4.2c - The Path Details for the 'PUT' verb with the '/assessmentLineItems/{sourcedId}' Path.
HTTP Verb: PUT
Operation ID putAssessmentLineItem
Summary The REST "create" request message for the "putAssessmentLineItem()" API call.
Tags AssessmentLineItemsManagement
Security and Scopes The security modes protecting access to this endpoint are:
  • OAuth2CC - OAuth 2 Client Credentials Grant
The scopes that enable access to this endpoint are:
  • https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.createput
Description To create a new Assessment LineItem. The associated sourcedId for this new record is supplied by the requesting system.
Path Placeholders
  • {sourcedId} - the unique identifier, GUID, to be allocated to this new assessment lineItem.
Query Parameters Query parameters are not permitted.
Responses
Name Type Description
201 N/A The object has been successfully stored in the Service Provider repository.
default imsx_StatusInfoDType This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
401 imsx_StatusInfoDType The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfoDType 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_StatusInfoDType Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.
422 imsx_StatusInfoDType This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
429 imsx_StatusInfoDType 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_StatusInfoDType 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'.

7.4.3 "/assessmentResults" Path

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

Table 7.4.3a - The Path Details for the 'GET' verb with the '/assessmentResults' Path.
HTTP Verb: GET
Operation ID getAllAssessmentResults
Summary The REST "read" request message for the "getAllAssessmentResults()" API call.
Tags AssessmentResultsManagement
Security and Scopes The security modes protecting access to this endpoint are:
  • OAuth2CC - OAuth 2 Client Credentials Grant
The scopes that enable access to this endpoint are:
  • https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.readonly
Description Get all of the Assessment Results on the service provider.
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 AssessmentResultSetDType The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
Headers
* "X-Total-Count" - the total number of resources that are available to be returned
Links
* "next (limit | offset)" - get the next set of resources i.e. from offset to offset+limit
* "last (limit | offset)" - get the last set of resources i.e. from offset to end
* "first (limit | offset)" - get the first set of resources i.e. from first to limit
* "prev (limit | offset)" - get the previous set of resources i.e. from last_offset to last_offset+limit
default imsx_StatusInfoDType This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
400 imsx_StatusInfoDType 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_StatusInfoDType The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfoDType 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'.
422 imsx_StatusInfoDType This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
429 imsx_StatusInfoDType 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_StatusInfoDType 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'.

7.4.4 "/assessmentResults/{sourcedId}" Path

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

Table 7.4.4a - The Path Details for the 'GET' verb with the '/assessmentResults/{sourcedId}' Path.
HTTP Verb: GET
Operation ID getAssessmentResult
Summary The REST "read" request message for the "getAssessmentResult()" API call.
Tags AssessmentResultsManagement
Security and Scopes The security modes protecting access to this endpoint are:
  • OAuth2CC - OAuth 2 Client Credentials Grant
The scopes that enable access to this endpoint are:
  • https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.readonly
Description Get a specific Assessment Result on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.
Path Placeholders
  • {sourcedId} - tthe unique identifier, GUID, for this assessment result.
Query Parameters
Name Type Multiplicity Default
fields String [0..*] -
Responses
Name Type Description
200 SingleAssessmentResultDType The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
default imsx_StatusInfoDType This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
400 imsx_StatusInfoDType 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_StatusInfoDType The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfoDType 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_StatusInfoDType Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.
422 imsx_StatusInfoDType This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
429 imsx_StatusInfoDType 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_StatusInfoDType 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 following Table describes the OpenAPI information for the HTTP Verb "DELETE" on the "/assessmentResults/{sourcedId}" Path.

Table 7.4.4b - The Path Details for the 'DELETE' verb with the '/assessmentResults/{sourcedId}' Path.
HTTP Verb: DELETE
Operation ID deleteAssessmentResult
Summary The REST "delete" request message for the "deleteAssessmentResult()" API call.
Tags AssessmentResultsManagement
Security and Scopes The security modes protecting access to this endpoint are:
  • OAuth2CC - OAuth 2 Client Credentials Grant
The scopes that enable access to this endpoint are:
  • https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.delete
Description Delete a specific Assessment Result on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.
Path Placeholders
  • {sourcedId} - the unique identifier, GUID, for the assessment result to be deleted.
Query Parameters Query parameters are not permitted.
Responses
Name Type Description
204 N/A The object has been successfully deleted.
default imsx_StatusInfoDType This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
401 imsx_StatusInfoDType The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfoDType 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_StatusInfoDType Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.
422 imsx_StatusInfoDType This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
429 imsx_StatusInfoDType 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_StatusInfoDType 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 following Table describes the OpenAPI information for the HTTP Verb "PUT" on the "/assessmentResults/{sourcedId}" Path.

Table 7.4.4c - The Path Details for the 'PUT' verb with the '/assessmentResults/{sourcedId}' Path.
HTTP Verb: PUT
Operation ID putAssessmentResult
Summary The REST "create" request message for the "putAssessmentResult()" API call.
Tags AssessmentResultsManagement
Security and Scopes The security modes protecting access to this endpoint are:
  • OAuth2CC - OAuth 2 Client Credentials Grant
The scopes that enable access to this endpoint are:
  • https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.createput
Description To create a new Assessment Result. The associated sourcedId for this new record is supplied by the requesting system.
Path Placeholders
  • {sourcedId} - the unique identifier, GUID, to be allocated to this new assessment result.
Query Parameters Query parameters are not permitted.
Responses
Name Type Description
201 N/A The object has been successfully stored in the Service Provider repository.
default imsx_StatusInfoDType This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
401 imsx_StatusInfoDType The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfoDType 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_StatusInfoDType Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.
422 imsx_StatusInfoDType This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
429 imsx_StatusInfoDType 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_StatusInfoDType 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'.

7.4.5 "/categories" Path

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

Table 7.4.5a - The Path Details for the 'GET' verb with the '/categories' Path.
HTTP Verb: GET
Operation ID getAllCategories
Summary The REST "read" request message for the "getAllCategories()" API call.
Tags CategoriesManagement
Security and Scopes The security modes protecting access to this endpoint are:
  • OAuth2CC - OAuth 2 Client Credentials Grant
The scopes that enable access to this endpoint are:
  • https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly
  • https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook-core.readonly
Description Get all of the lineItem categories on the service provider.
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 CategoriesSetDType The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
Headers
* "X-Total-Count" - the total number of resources that are available to be returned
Links
* "next (limit | offset)" - get the next set of resources i.e. from offset to offset+limit
* "last (limit | offset)" - get the last set of resources i.e. from offset to end
* "first (limit | offset)" - get the first set of resources i.e. from first to limit
* "prev (limit | offset)" - get the previous set of resources i.e. from last_offset to last_offset+limit
default imsx_StatusInfoDType This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
400 imsx_StatusInfoDType 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_StatusInfoDType The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfoDType 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'.
422 imsx_StatusInfoDType This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
429 imsx_StatusInfoDType 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_StatusInfoDType 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'.

7.4.6 "/categories/{sourcedId}" Path

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

Table 7.4.6a - The Path Details for the 'GET' verb with the '/categories/{sourcedId}' Path.
HTTP Verb: GET
Operation ID getCategory
Summary The REST "read" request message for the "getCategory()" API call.
Tags CategoriesManagement
Security and Scopes The security modes protecting access to this endpoint are:
  • OAuth2CC - OAuth 2 Client Credentials Grant
The scopes that enable access to this endpoint are:
  • https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly
  • https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook-core.readonly
Description Get a specific lineItem category on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.
Path Placeholders
  • {sourcedId} - the unique identifier, GUID, for this category.
Query Parameters
Name Type Multiplicity Default
fields String [0..*] -
Responses
Name Type Description
200 SingleCategoryDType The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
default imsx_StatusInfoDType This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
400 imsx_StatusInfoDType 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_StatusInfoDType The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfoDType 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_StatusInfoDType Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.
422 imsx_StatusInfoDType This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
429 imsx_StatusInfoDType 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_StatusInfoDType 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 following Table describes the OpenAPI information for the HTTP Verb "DELETE" on the "/categories/{sourcedId}" Path.

Table 7.4.6b - The Path Details for the 'DELETE' verb with the '/categories/{sourcedId}' Path.
HTTP Verb: DELETE
Operation ID deleteCategory
Summary The REST "delete" request message for the "deleteCategory()" API call.
Tags CategoriesManagement
Security and Scopes The security modes protecting access to this endpoint are:
  • OAuth2CC - OAuth 2 Client Credentials Grant
The scopes that enable access to this endpoint are:
  • https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.delete
Description Delete a specific lineItem category on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.
Path Placeholders
  • {sourcedId} - the unique identifier, GUID, for the category to be deleted.
Query Parameters Query parameters are not permitted.
Responses
Name Type Description
204 N/A The object has been successfully deleted.
default imsx_StatusInfoDType This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
401 imsx_StatusInfoDType The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfoDType 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_StatusInfoDType Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.
422 imsx_StatusInfoDType This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
429 imsx_StatusInfoDType 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_StatusInfoDType 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 following Table describes the OpenAPI information for the HTTP Verb "PUT" on the "/categories/{sourcedId}" Path.

Table 7.4.6c - The Path Details for the 'PUT' verb with the '/categories/{sourcedId}' Path.
HTTP Verb: PUT
Operation ID putCategory
Summary The REST "create" request message for the "putCategory()" API call.
Tags CategoriesManagement
Security and Scopes The security modes protecting access to this endpoint are:
  • OAuth2CC - OAuth 2 Client Credentials Grant
The scopes that enable access to this endpoint are:
  • https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createput
Description To create a new lineItem category. The associated sourcedId for this new record is supplied by the requesting system.
Path Placeholders
  • {sourcedId} - the unique identifier, GUID, to be allocated to this new category.
Query Parameters Query parameters are not permitted.
Responses
Name Type Description
201 N/A The object has been successfully stored in the Service Provider repository.
default imsx_StatusInfoDType This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
401 imsx_StatusInfoDType The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfoDType 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_StatusInfoDType Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.
422 imsx_StatusInfoDType This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
429 imsx_StatusInfoDType 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_StatusInfoDType 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'.

7.4.7 "/classes/{classSourcedId}/academicSessions/{academicSessionSourcedId}/results" Path

The following Table describes the OpenAPI information for the HTTP Verb "POST" on the "/classes/{classSourcedId}/academicSessions/{academicSessionSourcedId}/results" Path.

Table 7.4.7a - The Path Details for the 'POST' verb with the '/classes/{classSourcedId}/academicSessions/{academicSessionSourcedId}/results' Path.
HTTP Verb: POST
Operation ID postResultsForAcademicSessionForClass
Summary The REST "createbp" request message for the "postResultsForAcademicSessionForClass()" API call.
Tags ClassesManagement
Security and Scopes The security modes protecting access to this endpoint are:
  • OAuth2CC - OAuth 2 Client Credentials Grant
The scopes that enable access to this endpoint are:
  • https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createpost
Description To create a set of results for a specific academic session and specific class. The responding system must return the set of sourcedIds that have been allocated to the newly created result records. If the corresponding class or academic session cannot be located then an 'unknown' error code is returned.
Path Placeholders
  • {classSourcedId} - the unique identifier, GUID, for the class.
  • {academicSessionSourcedId} - the unique identifier, GUID, for the academic session.
Query Parameters Query parameters are not permitted.
Responses
Name Type Description
201 GUIDPairSetDType The object has been successfully stored in the Service Provider repository.
default imsx_StatusInfoDType This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
401 imsx_StatusInfoDType The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfoDType 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_StatusInfoDType Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.
422 imsx_StatusInfoDType This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
429 imsx_StatusInfoDType 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_StatusInfoDType 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'.

7.4.8 "/classes/{classSourcedId}/categories" Path

The following Table describes the OpenAPI information for the HTTP Verb "GET" on the "/classes/{classSourcedId}/categories" Path.

Table 7.4.8a - The Path Details for the 'GET' verb with the '/classes/{classSourcedId}/categories' Path.
HTTP Verb: GET
Operation ID getCategoriesForClass
Summary The REST "read" request message for the "getCategoriesForClass()" API call.
Tags ClassesManagement
Security and Scopes The security modes protecting access to this endpoint are:
  • OAuth2CC - OAuth 2 Client Credentials Grant
The scopes that enable access to this endpoint are:
  • https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly
Description Get the set of categories on the service provider for a specific class. If the corresponding class cannot be located then an 'unknown' error code is returned.
Path Placeholders
  • {classSourcedId} - the unique identifier, GUID, for the class.
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 CategoriesSetDType The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
Headers
* "X-Total-Count" - the total number of resources that are available to be returned
Links
* "next (limit | offset)" - get the next set of resources i.e. from offset to offset+limit
* "last (limit | offset)" - get the last set of resources i.e. from offset to end
* "first (limit | offset)" - get the first set of resources i.e. from first to limit
* "prev (limit | offset)" - get the previous set of resources i.e. from last_offset to last_offset+limit
default imsx_StatusInfoDType This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
400 imsx_StatusInfoDType 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_StatusInfoDType The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfoDType 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_StatusInfoDType Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.
422 imsx_StatusInfoDType This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
429 imsx_StatusInfoDType 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_StatusInfoDType 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'.

7.4.9 "/classes/{classSourcedId}/lineItems" Path

The following Table describes the OpenAPI information for the HTTP Verb "GET" on the "/classes/{classSourcedId}/lineItems" Path.

Table 7.4.9a - The Path Details for the 'GET' verb with the '/classes/{classSourcedId}/lineItems' Path.
HTTP Verb: GET
Operation ID getLineItemsForClass
Summary The REST "read" request message for the "getLineItemsForClass()" API call.
Tags ClassesManagement
Security and Scopes The security modes protecting access to this endpoint are:
  • OAuth2CC - OAuth 2 Client Credentials Grant
The scopes that enable access to this endpoint are:
  • https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly
Description Get the set of lineItems on the service provider for a specific class. If the corresponding class cannot be located then an 'unknown' error code is returned.
Path Placeholders
  • {classSourcedId} - the unique identifier, GUID, for the class.
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 LineItemSetDType The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
Headers
* "X-Total-Count" - the total number of resources that are available to be returned
Links
* "next (limit | offset)" - get the next set of resources i.e. from offset to offset+limit
* "last (limit | offset)" - get the last set of resources i.e. from offset to end
* "first (limit | offset)" - get the first set of resources i.e. from first to limit
* "prev (limit | offset)" - get the previous set of resources i.e. from last_offset to last_offset+limit
default imsx_StatusInfoDType This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
400 imsx_StatusInfoDType 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_StatusInfoDType The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfoDType 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_StatusInfoDType Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.
422 imsx_StatusInfoDType This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
429 imsx_StatusInfoDType 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_StatusInfoDType 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 following Table describes the OpenAPI information for the HTTP Verb "POST" on the "/classes/{classSourcedId}/lineItems" Path.

Table 7.4.9b - The Path Details for the 'POST' verb with the '/classes/{classSourcedId}/lineItems' Path.
HTTP Verb: POST
Operation ID postLineItemsForClass
Summary The REST "createbp" request message for the "postLineItemsForClass()" API call.
Tags ClassesManagement
Security and Scopes The security modes protecting access to this endpoint are:
  • OAuth2CC - OAuth 2 Client Credentials Grant
The scopes that enable access to this endpoint are:
  • https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createpost
Description To create a set of lineItems for a specific class. The responding system must return the set of sourcedIds that have been allocated to the newly created lineItem records. If the corresponding class cannot be located then an 'unknown' error code is returned.
Path Placeholders
  • {classSourcedId} - the unique identifier, GUID, for the class.
Query Parameters Query parameters are not permitted.
Responses
Name Type Description
201 GUIDPairSetDType The object has been successfully stored in the Service Provider repository.
default imsx_StatusInfoDType This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
401 imsx_StatusInfoDType The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfoDType 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_StatusInfoDType Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.
422 imsx_StatusInfoDType This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
429 imsx_StatusInfoDType 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_StatusInfoDType 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'.

7.4.10 "/classes/{classSourcedId}/lineItems/{lineItemSourcedId}/results" Path

The following Table describes the OpenAPI information for the HTTP Verb "GET" on the "/classes/{classSourcedId}/lineItems/{lineItemSourcedId}/results" Path.

Table 7.4.10a - The Path Details for the 'GET' verb with the '/classes/{classSourcedId}/lineItems/{lineItemSourcedId}/results' Path.
HTTP Verb: GET
Operation ID getResultsForLineItemForClass
Summary The REST "read" request message for the "getResultsForLineItemForClass()" API call.
Tags ClassesManagement
Security and Scopes The security modes protecting access to this endpoint are:
  • OAuth2CC - OAuth 2 Client Credentials Grant
The scopes that enable access to this endpoint are:
  • https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly
Description Get the set of results on the service provider for a specific lineItem and for a specific class. If the corresponding class cannot be located then an 'unknown' error code is returned.
Path Placeholders
  • {classSourcedId} - the unique identifier, GUID, for the class.
  • {lineItemSourcedId} - the unique identifier, GUID, for the lineItem.
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 ResultSetDType The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
Headers
* "X-Total-Count" - the total number of resources that are available to be returned
Links
* "next (limit | offset)" - get the next set of resources i.e. from offset to offset+limit
* "last (limit | offset)" - get the last set of resources i.e. from offset to end
* "first (limit | offset)" - get the first set of resources i.e. from first to limit
* "prev (limit | offset)" - get the previous set of resources i.e. from last_offset to last_offset+limit
default imsx_StatusInfoDType This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
400 imsx_StatusInfoDType 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_StatusInfoDType The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfoDType 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_StatusInfoDType Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.
422 imsx_StatusInfoDType This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
429 imsx_StatusInfoDType 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_StatusInfoDType 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'.

7.4.11 "/classes/{classSourcedId}/results" Path

The following Table describes the OpenAPI information for the HTTP Verb "GET" on the "/classes/{classSourcedId}/results" Path.

Table 7.4.11a - The Path Details for the 'GET' verb with the '/classes/{classSourcedId}/results' Path.
HTTP Verb: GET
Operation ID getResultsForClass
Summary The REST "read" request message for the "getResultsForClass()" API call.
Tags ClassesManagement
Security and Scopes The security modes protecting access to this endpoint are:
  • OAuth2CC - OAuth 2 Client Credentials Grant
The scopes that enable access to this endpoint are:
  • https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly
Description Get the set of results on the service provider for a specific class. If the corresponding class cannot be located then an 'unknown' error code is returned.
Path Placeholders
  • {classSourcedId} - the unique identifier, GUID, for the class.
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 ResultSetDType The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
Headers
* "X-Total-Count" - the total number of resources that are available to be returned
Links
* "next (limit | offset)" - get the next set of resources i.e. from offset to offset+limit
* "last (limit | offset)" - get the last set of resources i.e. from offset to end
* "first (limit | offset)" - get the first set of resources i.e. from first to limit
* "prev (limit | offset)" - get the previous set of resources i.e. from last_offset to last_offset+limit
default imsx_StatusInfoDType This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
400 imsx_StatusInfoDType 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_StatusInfoDType The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfoDType 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_StatusInfoDType Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.
422 imsx_StatusInfoDType This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
429 imsx_StatusInfoDType 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_StatusInfoDType 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'.

7.4.12 "/classes/{classSourcedId}/scoreScales" Path

The following Table describes the OpenAPI information for the HTTP Verb "GET" on the "/classes/{classSourcedId}/scoreScales" Path.

Table 7.4.12a - The Path Details for the 'GET' verb with the '/classes/{classSourcedId}/scoreScales' Path.
HTTP Verb: GET
Operation ID getScoreScalesForClass
Summary The REST "read" request message for the "getScoreScalesForClass()" API call.
Tags ClassesManagement
Security and Scopes The security modes protecting access to this endpoint are:
  • OAuth2CC - OAuth 2 Client Credentials Grant
The scopes that enable access to this endpoint are:
  • https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly
Description Get the set of scoreScales on the service provider for a specific class. If the corresponding class cannot be located then an 'unknown' error code is returned.
Path Placeholders
  • {classSourcedId} - the unique identifier, GUID, for the class.
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 ScoreScaleSetDType The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
Headers
* "X-Total-Count" - the total number of resources that are available to be returned
Links
* "next (limit | offset)" - get the next set of resources i.e. from offset to offset+limit
* "last (limit | offset)" - get the last set of resources i.e. from offset to end
* "first (limit | offset)" - get the first set of resources i.e. from first to limit
* "prev (limit | offset)" - get the previous set of resources i.e. from last_offset to last_offset+limit
default imsx_StatusInfoDType This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
400 imsx_StatusInfoDType 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_StatusInfoDType The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfoDType 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_StatusInfoDType Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.
422 imsx_StatusInfoDType This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
429 imsx_StatusInfoDType 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_StatusInfoDType 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'.

7.4.13 "/classes/{classSourcedId}/students/{studentSourcedId}/results" Path

The following Table describes the OpenAPI information for the HTTP Verb "GET" on the "/classes/{classSourcedId}/students/{studentSourcedId}/results" Path.

Table 7.4.13a - The Path Details for the 'GET' verb with the '/classes/{classSourcedId}/students/{studentSourcedId}/results' Path.
HTTP Verb: GET
Operation ID getResultsForStudentForClass
Summary The REST "read" request message for the "getResultsForStudentForClass()" API call.
Tags ClassesManagement
Security and Scopes The security modes protecting access to this endpoint are:
  • OAuth2CC - OAuth 2 Client Credentials Grant
The scopes that enable access to this endpoint are:
  • https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly
Description Get the set of results on the service provider for a specific student and for a specific class. If the corresponding class cannot be located then an 'unknown' error code is returned.
Path Placeholders
  • {classSourcedId} - the unique identifier, GUID, for the class.
  • {studentSourcedId} - the unique identifier, GUID, for the student.
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 ResultSetDType The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
Headers
* "X-Total-Count" - the total number of resources that are available to be returned
Links
* "next (limit | offset)" - get the next set of resources i.e. from offset to offset+limit
* "last (limit | offset)" - get the last set of resources i.e. from offset to end
* "first (limit | offset)" - get the first set of resources i.e. from first to limit
* "prev (limit | offset)" - get the previous set of resources i.e. from last_offset to last_offset+limit
default imsx_StatusInfoDType This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
400 imsx_StatusInfoDType 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_StatusInfoDType The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfoDType 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_StatusInfoDType Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.
422 imsx_StatusInfoDType This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
429 imsx_StatusInfoDType 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_StatusInfoDType 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'.

7.4.14 "/lineItems" Path

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

Table 7.4.14a - The Path Details for the 'GET' verb with the '/lineItems' Path.
HTTP Verb: GET
Operation ID getAllLineItems
Summary The REST "read" request message for the "getAllLineItems()" API call.
Tags LineItemsManagement
Security and Scopes The security modes protecting access to this endpoint are:
  • OAuth2CC - OAuth 2 Client Credentials Grant
The scopes that enable access to this endpoint are:
  • https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly
  • https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook-core.readonly
Description Get all of the Line Items on the service provider.
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 LineItemSetDType The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
Headers
* "X-Total-Count" - the total number of resources that are available to be returned
Links
* "next (limit | offset)" - get the next set of resources i.e. from offset to offset+limit
* "last (limit | offset)" - get the last set of resources i.e. from offset to end
* "first (limit | offset)" - get the first set of resources i.e. from first to limit
* "prev (limit | offset)" - get the previous set of resources i.e. from last_offset to last_offset+limit
default imsx_StatusInfoDType This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
400 imsx_StatusInfoDType 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_StatusInfoDType The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfoDType 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'.
422 imsx_StatusInfoDType This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
429 imsx_StatusInfoDType 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_StatusInfoDType 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'.

7.4.15 "/lineItems/{lineItemSourcedId}/results" Path

The following Table describes the OpenAPI information for the HTTP Verb "POST" on the "/lineItems/{lineItemSourcedId}/results" Path.

Table 7.4.15a - The Path Details for the 'POST' verb with the '/lineItems/{lineItemSourcedId}/results' Path.
HTTP Verb: POST
Operation ID postResultsForLineItem
Summary The REST "createbp" request message for the "postResultsForLineItem()" API call.
Tags LineItemsManagement
Security and Scopes The security modes protecting access to this endpoint are:
  • OAuth2CC - OAuth 2 Client Credentials Grant
The scopes that enable access to this endpoint are:
  • https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createpost
Description To create a set of results for a specific lineItem. The responding system must return the set of sourcedIds that have been allocated to the newly created result records.
Path Placeholders
  • {lineItemSourcedId} - the unique identifier, GUID, for the lineItem.
Query Parameters Query parameters are not permitted.
Responses
Name Type Description
201 GUIDPairSetDType The object has been successfully stored in the Service Provider repository.
default imsx_StatusInfoDType This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
401 imsx_StatusInfoDType The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfoDType 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_StatusInfoDType Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.
422 imsx_StatusInfoDType This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
429 imsx_StatusInfoDType 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_StatusInfoDType 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'.

7.4.16 "/lineItems/{sourcedId}" Path

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

Table 7.4.16a - The Path Details for the 'GET' verb with the '/lineItems/{sourcedId}' Path.
HTTP Verb: GET
Operation ID getLineItem
Summary The REST "read" request message for the "getLineItem()" API call.
Tags LineItemsManagement
Security and Scopes The security modes protecting access to this endpoint are:
  • OAuth2CC - OAuth 2 Client Credentials Grant
The scopes that enable access to this endpoint are:
  • https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly
  • https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook-core.readonly
Description Get a specific LineItem on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.
Path Placeholders
  • {sourcedId} - the unique identifier, GUID, for this lineItem.
Query Parameters
Name Type Multiplicity Default
fields String [0..*] -
Responses
Name Type Description
200 SingleLineItemDType The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
default imsx_StatusInfoDType This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
400 imsx_StatusInfoDType 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_StatusInfoDType The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfoDType 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_StatusInfoDType Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.
422 imsx_StatusInfoDType This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
429 imsx_StatusInfoDType 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_StatusInfoDType 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 following Table describes the OpenAPI information for the HTTP Verb "DELETE" on the "/lineItems/{sourcedId}" Path.

Table 7.4.16b - The Path Details for the 'DELETE' verb with the '/lineItems/{sourcedId}' Path.
HTTP Verb: DELETE
Operation ID deleteLineItem
Summary The REST "delete" request message for the "deleteLineItem()" API call.
Tags LineItemsManagement
Security and Scopes The security modes protecting access to this endpoint are:
  • OAuth2CC - OAuth 2 Client Credentials Grant
The scopes that enable access to this endpoint are:
  • https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.delete
Description Delete a specific lineItem on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.
Path Placeholders
  • {sourcedId} - the unique identifier, GUID, for the lineItem to be deleted.
Query Parameters Query parameters are not permitted.
Responses
Name Type Description
204 N/A The object has been successfully deleted.
default imsx_StatusInfoDType This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
401 imsx_StatusInfoDType The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfoDType 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_StatusInfoDType Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.
422 imsx_StatusInfoDType This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
429 imsx_StatusInfoDType 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_StatusInfoDType 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 following Table describes the OpenAPI information for the HTTP Verb "PUT" on the "/lineItems/{sourcedId}" Path.

Table 7.4.16c - The Path Details for the 'PUT' verb with the '/lineItems/{sourcedId}' Path.
HTTP Verb: PUT
Operation ID putLineItem
Summary The REST "create" request message for the "putLineItem()" API call.
Tags LineItemsManagement
Security and Scopes The security modes protecting access to this endpoint are:
  • OAuth2CC - OAuth 2 Client Credentials Grant
The scopes that enable access to this endpoint are:
  • https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createput
Description To create a new lineItem. The associated sourcedId for this new record is supplied by the requesting system.
Path Placeholders
  • {sourcedId} - the unique identifier, GUID, to be allocated to this new lineItem.
Query Parameters Query parameters are not permitted.
Responses
Name Type Description
201 N/A The object has been successfully stored in the Service Provider repository.
default imsx_StatusInfoDType This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
401 imsx_StatusInfoDType The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfoDType 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_StatusInfoDType Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.
422 imsx_StatusInfoDType This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
429 imsx_StatusInfoDType 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_StatusInfoDType 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'.

7.4.17 "/results" Path

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

Table 7.4.17a - The Path Details for the 'GET' verb with the '/results' Path.
HTTP Verb: GET
Operation ID getAllResults
Summary The REST "read" request message for the "getAllResults()" API call.
Tags ResultsManagement
Security and Scopes The security modes protecting access to this endpoint are:
  • OAuth2CC - OAuth 2 Client Credentials Grant
The scopes that enable access to this endpoint are:
  • https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly
  • https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook-core.readonly
Description Get all of the results on the service provider.
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 ResultSetDType The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
Headers
* "X-Total-Count" - the total number of resources that are available to be returned
Links
* "next (limit | offset)" - get the next set of resources i.e. from offset to offset+limit
* "last (limit | offset)" - get the last set of resources i.e. from offset to end
* "first (limit | offset)" - get the first set of resources i.e. from first to limit
* "prev (limit | offset)" - get the previous set of resources i.e. from last_offset to last_offset+limit
default imsx_StatusInfoDType This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
400 imsx_StatusInfoDType 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_StatusInfoDType The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfoDType 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'.
422 imsx_StatusInfoDType This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
429 imsx_StatusInfoDType 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_StatusInfoDType 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'.

7.4.18 "/results/{sourcedId}" Path

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

Table 7.4.18a - The Path Details for the 'GET' verb with the '/results/{sourcedId}' Path.
HTTP Verb: GET
Operation ID getResult
Summary The REST "read" request message for the "getResult()" API call.
Tags ResultsManagement
Security and Scopes The security modes protecting access to this endpoint are:
  • OAuth2CC - OAuth 2 Client Credentials Grant
The scopes that enable access to this endpoint are:
  • https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly
  • https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook-core.readonly
Description Get a specific result on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.
Path Placeholders
  • {sourcedId} - the unique identifier, GUID, for this result.
Query Parameters
Name Type Multiplicity Default
fields String [0..*] -
Responses
Name Type Description
200 SingleResultDType The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
default imsx_StatusInfoDType This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
400 imsx_StatusInfoDType 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_StatusInfoDType The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfoDType 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_StatusInfoDType Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.
422 imsx_StatusInfoDType This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
429 imsx_StatusInfoDType 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_StatusInfoDType 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 following Table describes the OpenAPI information for the HTTP Verb "DELETE" on the "/results/{sourcedId}" Path.

Table 7.4.18b - The Path Details for the 'DELETE' verb with the '/results/{sourcedId}' Path.
HTTP Verb: DELETE
Operation ID deleteResult
Summary The REST "delete" request message for the "deleteResult()" API call.
Tags ResultsManagement
Security and Scopes The security modes protecting access to this endpoint are:
  • OAuth2CC - OAuth 2 Client Credentials Grant
The scopes that enable access to this endpoint are:
  • https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.delete
Description Delete a specific result on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.
Path Placeholders
  • {sourcedId} - the unique identifier, GUID, for the result to be deleted.
Query Parameters Query parameters are not permitted.
Responses
Name Type Description
204 N/A The object has been successfully deleted.
default imsx_StatusInfoDType This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
401 imsx_StatusInfoDType The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfoDType 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_StatusInfoDType Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.
422 imsx_StatusInfoDType This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
429 imsx_StatusInfoDType 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_StatusInfoDType 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 following Table describes the OpenAPI information for the HTTP Verb "PUT" on the "/results/{sourcedId}" Path.

Table 7.4.18c - The Path Details for the 'PUT' verb with the '/results/{sourcedId}' Path.
HTTP Verb: PUT
Operation ID putResult
Summary The REST "create" request message for the "putResult()" API call.
Tags ResultsManagement
Security and Scopes The security modes protecting access to this endpoint are:
  • OAuth2CC - OAuth 2 Client Credentials Grant
The scopes that enable access to this endpoint are:
  • https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createput
Description To create a new result. The associated sourcedId for this new record is supplied by the requesting system.
Path Placeholders
  • {sourcedId} - the unique identifier, GUID, to be allocated to this new result.
Query Parameters Query parameters are not permitted.
Responses
Name Type Description
201 N/A The object has been successfully stored in the Service Provider repository.
default imsx_StatusInfoDType This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
401 imsx_StatusInfoDType The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfoDType 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_StatusInfoDType Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.
422 imsx_StatusInfoDType This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
429 imsx_StatusInfoDType 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_StatusInfoDType 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'.

7.4.19 "/schools/{schoolSourcedId}/lineItems" Path

The following Table describes the OpenAPI information for the HTTP Verb "POST" on the "/schools/{schoolSourcedId}/lineItems" Path.

Table 7.4.19a - The Path Details for the 'POST' verb with the '/schools/{schoolSourcedId}/lineItems' Path.
HTTP Verb: POST
Operation ID postLineItemsForSchool
Summary The REST "createbp" request message for the "postLineItemsForSchool()" API call.
Tags SchoolsManagement
Security and Scopes The security modes protecting access to this endpoint are:
  • OAuth2CC - OAuth 2 Client Credentials Grant
The scopes that enable access to this endpoint are:
  • https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createpost
Description To create a set of lineItems for a specific school. The responding system must return the set of sourcedIds that have been allocated to the newly created lineItem records.
Path Placeholders
  • {schoolSourcedId} - the unique identifier, GUID, for the school.
Query Parameters Query parameters are not permitted.
Responses
Name Type Description
201 GUIDPairSetDType The object has been successfully stored in the Service Provider repository.
default imsx_StatusInfoDType This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
401 imsx_StatusInfoDType The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfoDType 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_StatusInfoDType Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.
422 imsx_StatusInfoDType This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
429 imsx_StatusInfoDType 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_StatusInfoDType 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'.

7.4.20 "/schools/{schoolSourcedId}/scoreScales" Path

The following Table describes the OpenAPI information for the HTTP Verb "GET" on the "/schools/{schoolSourcedId}/scoreScales" Path.

Table 7.4.20a - The Path Details for the 'GET' verb with the '/schools/{schoolSourcedId}/scoreScales' Path.
HTTP Verb: GET
Operation ID getScoreScalesForSchool
Summary The REST "read" request message for the "getScoreScalesForSchool()" API call.
Tags SchoolsManagement
Security and Scopes The security modes protecting access to this endpoint are:
  • OAuth2CC - OAuth 2 Client Credentials Grant
The scopes that enable access to this endpoint are:
  • https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly
Description Get the set of scoreScales on the service provider for a specific school. If the corresponding school cannot be located then an 'unknown' error code is returned.
Path Placeholders
  • {schoolSourcedId} - the unique identifier, GUID, for the school.
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 ScoreScaleSetDType The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
Headers
* "X-Total-Count" - the total number of resources that are available to be returned
Links
* "next (limit | offset)" - get the next set of resources i.e. from offset to offset+limit
* "last (limit | offset)" - get the last set of resources i.e. from offset to end
* "first (limit | offset)" - get the first set of resources i.e. from first to limit
* "prev (limit | offset)" - get the previous set of resources i.e. from last_offset to last_offset+limit
default imsx_StatusInfoDType This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
400 imsx_StatusInfoDType 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_StatusInfoDType The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfoDType 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_StatusInfoDType Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.
422 imsx_StatusInfoDType This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
429 imsx_StatusInfoDType 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_StatusInfoDType 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'.

7.4.21 "/scoreScales" Path

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

Table 7.4.21a - The Path Details for the 'GET' verb with the '/scoreScales' Path.
HTTP Verb: GET
Operation ID getAllScoreScales
Summary The REST "read" request message for the "getAllScoreScales()" API call.
Tags ScoreScalesManagement
Security and Scopes The security modes protecting access to this endpoint are:
  • OAuth2CC - OAuth 2 Client Credentials Grant
The scopes that enable access to this endpoint are:
  • https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly
  • https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook-core.readonly
Description Get all of the ScoreScales on the service provider.
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 ScoreScaleSetDType The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
Headers
* "X-Total-Count" - the total number of resources that are available to be returned
Links
* "next (limit | offset)" - get the next set of resources i.e. from offset to offset+limit
* "last (limit | offset)" - get the last set of resources i.e. from offset to end
* "first (limit | offset)" - get the first set of resources i.e. from first to limit
* "prev (limit | offset)" - get the previous set of resources i.e. from last_offset to last_offset+limit
default imsx_StatusInfoDType This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
400 imsx_StatusInfoDType 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_StatusInfoDType The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfoDType 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'.
422 imsx_StatusInfoDType This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
429 imsx_StatusInfoDType 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_StatusInfoDType 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'.

7.4.22 "/scoreScales/{sourcedId}" Path

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

Table 7.4.22a - The Path Details for the 'GET' verb with the '/scoreScales/{sourcedId}' Path.
HTTP Verb: GET
Operation ID getScoreScale
Summary The REST "read" request message for the "getScoreScale()" API call.
Tags ScoreScalesManagement
Security and Scopes The security modes protecting access to this endpoint are:
  • OAuth2CC - OAuth 2 Client Credentials Grant
The scopes that enable access to this endpoint are:
  • https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly
  • https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook-core.readonly
Description Get a specific scoreScale on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.
Path Placeholders
  • {sourcedId} - the unique identifier, GUID, for this scoreScale.
Query Parameters
Name Type Multiplicity Default
fields String [0..*] -
Responses
Name Type Description
200 SingleScoreScaleDType The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
default imsx_StatusInfoDType This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
400 imsx_StatusInfoDType 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_StatusInfoDType The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfoDType 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_StatusInfoDType Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.
422 imsx_StatusInfoDType This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
429 imsx_StatusInfoDType 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_StatusInfoDType 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 following Table describes the OpenAPI information for the HTTP Verb "DELETE" on the "/scoreScales/{sourcedId}" Path.

Table 7.4.22b - The Path Details for the 'DELETE' verb with the '/scoreScales/{sourcedId}' Path.
HTTP Verb: DELETE
Operation ID deleteScoreScale
Summary The REST "delete" request message for the "deleteScoreScale()" API call.
Tags ScoreScalesManagement
Security and Scopes The security modes protecting access to this endpoint are:
  • OAuth2CC - OAuth 2 Client Credentials Grant
The scopes that enable access to this endpoint are:
  • https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.delete
Description Delete a specific scoreScale on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.
Path Placeholders
  • {sourcedId} - the unique identifier, GUID, for the scoreScale to be deleted.
Query Parameters Query parameters are not permitted.
Responses
Name Type Description
204 N/A The object has been successfully deleted.
default imsx_StatusInfoDType This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
401 imsx_StatusInfoDType The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfoDType 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_StatusInfoDType Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.
422 imsx_StatusInfoDType This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
429 imsx_StatusInfoDType 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_StatusInfoDType 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 following Table describes the OpenAPI information for the HTTP Verb "PUT" on the "/scoreScales/{sourcedId}" Path.

Table 7.4.22c - The Path Details for the 'PUT' verb with the '/scoreScales/{sourcedId}' Path.
HTTP Verb: PUT
Operation ID putScoreScale
Summary The REST "create" request message for the "putScoreScale()" API call.
Tags ScoreScalesManagement
Security and Scopes The security modes protecting access to this endpoint are:
  • OAuth2CC - OAuth 2 Client Credentials Grant
The scopes that enable access to this endpoint are:
  • https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createput
Description To create a new scoreScale. The associated sourcedId for this new record is supplied by the requesting system.
Path Placeholders
  • {sourcedId} - the unique identifier, GUID, to be allocated to this new scoreScale.
Query Parameters Query parameters are not permitted.
Responses
Name Type Description
201 N/A The object has been successfully stored in the Service Provider repository.
default imsx_StatusInfoDType This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
401 imsx_StatusInfoDType The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
403 imsx_StatusInfoDType 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_StatusInfoDType Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented.
422 imsx_StatusInfoDType This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
429 imsx_StatusInfoDType 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_StatusInfoDType 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'.

7.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 A3.5.

7.5.1 "AcadSessionGUIDRefDType" Definition

The OpenAPI JSON Schema description for the "AcadSessionGUIDRefDType" Complex Type is given in Table 7.5.1.

Table 7.5.1 - OpenAPI JSON Schema description for the "AcadSessionGUIDRefDType" Complex Type.
Annotations This is the container for reference to a OneRoster 'Academic Session' object that has an allocated sourcedId (GUID).
Diagram JSON Schema diagram of the AcadSessionGUIDRef object.
Model href{1..1}, sourcedId{1..1}, type{1..1}
Source (OAS2)
    "AcadSessionGUIDRefDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "href" : {
                "description" : "Model Primitive Datatype = AnyURI. ",
                "type" : "string",
                "format" : "uri"
            },
            "sourcedId" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string"
            },
            "type" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "academicSession" ]
            },
        },
        "required" : [ "type" ],
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "AcadSessionGUIDRefDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "href" : {
                "description" : "Model Primitive Datatype = AnyURI. ",
                "type" : "string",
                "format" : "uri"
            },
            "sourcedId" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string"
            },
            "type" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "academicSession" ]
            },
        },
        "required" : [ "type" ],
        "additionalProperties" : false
    },
                        

7.5.2 "AssessmentLineItemDType" Definition

The OpenAPI JSON Schema description for the "AssessmentLineItemDType" Complex Type is given in Table 7.5.2.

Table 7.5.2 - OpenAPI JSON Schema description for the "AssessmentLineItemDType" Complex Type.
Annotations This is the container for the definition of an assessment lineItem. An assessment lineItem is a collection of results for a set of students who are completing an assignment.
Diagram JSON Schema diagram of the AssessmentLineItem object.
Model sourcedId{1..1}, status{1..1}, dateLastModified{1..1}, metadata{0..1}, title{1..1}, description{0..1}, class{0..1}, parentAssessmentLineItem{0..1}, scoreScale{0..1}, resultValueMin{0..1}, resultValueMax{0..1}, learningObjectiveSet{0..*}
Source (OAS2)
    "AssessmentLineItemDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "sourcedId" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string"
            },
            "status" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "active","tobedeleted" ]
            },
            "dateLastModified" : {
                "description" : "Model Primitive Datatype = DateTime. ",
                "type" : "string",
                "format" : "date-time"
            },
            "metadata" : {
                "$ref" : "#/definitions/MetadataDType"
            },
            "title" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
            "description" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string"
            },
            "class" : {
                "$ref" : "#/definitions/ClassGUIDRefDType"
            },
            "parentAssessmentLineItem" : {
                "$ref" : "#/definitions/AssessmentLineItemGUIDRefDType"
            },
            "scoreScale" : {
                "$ref" : "#/definitions/ScoreScaleGUIDRefDType"
            },
            "resultValueMin" : {
                "description" : "Model Primitive Datatype = Float. ",
                "type" : "number",
                "format" : "float"
            },
            "resultValueMax" : {
                "description" : "Model Primitive Datatype = Float. ",
                "type" : "number",
                "format" : "float"
            },
            "learningObjectiveSet" : {
                "description" : "...",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "$ref" : "#/definitions/LearningObjectiveSetDType"
                }
            },
        },
        "required" : [ "title" ],
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "AssessmentLineItemDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "sourcedId" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string"
            },
            "status" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "active","tobedeleted" ]
            },
            "dateLastModified" : {
                "description" : "Model Primitive Datatype = DateTime. ",
                "type" : "string",
                "format" : "date-time"
            },
            "metadata" : {
                "$ref" : "#/components/schemas/MetadataDType"
            },
            "title" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
            "description" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string"
            },
            "class" : {
                "$ref" : "#/components/schemas/ClassGUIDRefDType"
            },
            "parentAssessmentLineItem" : {
                "$ref" : "#/components/schemas/AssessmentLineItemGUIDRefDType"
            },
            "scoreScale" : {
                "$ref" : "#/components/schemas/ScoreScaleGUIDRefDType"
            },
            "resultValueMin" : {
                "description" : "Model Primitive Datatype = Float. ",
                "type" : "number",
                "format" : "float"
            },
            "resultValueMax" : {
                "description" : "Model Primitive Datatype = Float. ",
                "type" : "number",
                "format" : "float"
            },
            "learningObjectiveSet" : {
                "description" : "...",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "$ref" : "#/components/schemas/LearningObjectiveSetDType"
                }
            },
        },
        "required" : [ "title" ],
        "additionalProperties" : false
    },
                        

7.5.3 "AssessmentLineItemGUIDRefDType" Definition

The OpenAPI JSON Schema description for the "AssessmentLineItemGUIDRefDType" Complex Type is given in Table 7.5.3.

Table 7.5.3 - OpenAPI JSON Schema description for the "AssessmentLineItemGUIDRefDType" Complex Type.
Annotations This is the container for reference to a OneRoster 'AssessmentLineItem' object that has an allocated sourcedId (GUID).
Diagram JSON Schema diagram of the AssessmentLineItemGUIDRef object.
Model href{1..1}, sourcedId{1..1}, type{1..1}
Source (OAS2)
    "AssessmentLineItemGUIDRefDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "href" : {
                "description" : "Model Primitive Datatype = AnyURI. ",
                "type" : "string",
                "format" : "uri"
            },
            "sourcedId" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string"
            },
            "type" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "assessmentLineItem" ]
            },
        },
        "required" : [ "type" ],
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "AssessmentLineItemGUIDRefDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "href" : {
                "description" : "Model Primitive Datatype = AnyURI. ",
                "type" : "string",
                "format" : "uri"
            },
            "sourcedId" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string"
            },
            "type" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "assessmentLineItem" ]
            },
        },
        "required" : [ "type" ],
        "additionalProperties" : false
    },
                        

7.5.4 "AssessmentLineItemSetDType" Definition

The OpenAPI JSON Schema description for the "AssessmentLineItemSetDType" Complex Type is given in Table 7.5.4.

Table 7.5.4 - OpenAPI JSON Schema description for the "AssessmentLineItemSetDType" Complex Type.
Annotations This is the container for a collection of assessment lineItem instances for a message payload. This may be empty if no instances are found that sustain the applied query constraints. The order is not significant.
Diagram JSON Schema diagram of the AssessmentLineItemSet object.
Model assessmentLineItems{0..*}
Source (OAS2)
    "AssessmentLineItemSetDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "assessmentLineItems" : {
                "description" : "...",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "$ref" : "#/definitions/AssessmentLineItemDType"
                }
            },
        },
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "AssessmentLineItemSetDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "assessmentLineItems" : {
                "description" : "...",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "$ref" : "#/components/schemas/AssessmentLineItemDType"
                }
            },
        },
        "additionalProperties" : false
    },
                        

7.5.5 "AssessmentResultDType" Definition

The OpenAPI JSON Schema description for the "AssessmentResultDType" Complex Type is given in Table 7.5.5.

Table 7.5.5 - OpenAPI JSON Schema description for the "AssessmentResultDType" Complex Type.
Annotations This is the container for the AssessmentResult record. An assessment result consists of the assigned score plus the context for that score.
Diagram JSON Schema diagram of the AssessmentResult object.
Model sourcedId{1..1}, status{1..1}, dateLastModified{1..1}, metadata{0..1}, assessmentLineItem{1..1}, student{1..1}, score{0..1}, textScore{0..1}, scoreDate{1..1}, scoreScale{0..1}, scorePercentile{0..1}, scoreStatus{1..1}, comment{0..1}, learningObjectiveSet{0..*}, inProgress{0..1}, incomplete{0..1}, late{0..1}, missing{0..1}
Source (OAS2)
    "AssessmentResultDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "sourcedId" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string"
            },
            "status" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "active","tobedeleted" ]
            },
            "dateLastModified" : {
                "description" : "Model Primitive Datatype = DateTime. ",
                "type" : "string",
                "format" : "date-time"
            },
            "metadata" : {
                "$ref" : "#/definitions/MetadataDType"
            },
            "assessmentLineItem" : {
                "$ref" : "#/definitions/AssessmentLineItemGUIDRefDType"
            },
            "student" : {
                "$ref" : "#/definitions/UserGUIDRefDType"
            },
            "score" : {
                "description" : "Model Primitive Datatype = Float. ",
                "type" : "number",
                "format" : "float"
            },
            "textScore" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
            "scoreDate" : {
                "description" : "Model Primitive Datatype = Date. ",
                "type" : "string",
                "format" : "date"
            },
            "scoreScale" : {
                "$ref" : "#/definitions/ScoreScaleGUIDRefDType"
            },
            "scorePercentile" : {
                "description" : "Model Primitive Datatype = Float. ",
                "type" : "number",
                "format" : "float"
            },
            "scoreStatus" : {
                "description" : "...",
                "type" : "string"
            },
            "comment" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string"
            },
            "learningObjectiveSet" : {
                "description" : "...",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "$ref" : "#/definitions/LearningObjectiveScoreSetDType"
                }
            },
            "inProgress" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "true","false" ]
            },
            "incomplete" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "true","false" ]
            },
            "late" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "true","false" ]
            },
            "missing" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "true","false" ]
            },
        },
        "required" : [ "assessmentLineItem","student","scoreDate","scoreStatus" ],
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "AssessmentResultDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "sourcedId" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string"
            },
            "status" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "active","tobedeleted" ]
            },
            "dateLastModified" : {
                "description" : "Model Primitive Datatype = DateTime. ",
                "type" : "string",
                "format" : "date-time"
            },
            "metadata" : {
                "$ref" : "#/components/schemas/MetadataDType"
            },
            "assessmentLineItem" : {
                "$ref" : "#/components/schemas/AssessmentLineItemGUIDRefDType"
            },
            "student" : {
                "$ref" : "#/components/schemas/UserGUIDRefDType"
            },
            "score" : {
                "description" : "Model Primitive Datatype = Float. ",
                "type" : "number",
                "format" : "float"
            },
            "textScore" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
            "scoreDate" : {
                "description" : "Model Primitive Datatype = Date. ",
                "type" : "string",
                "format" : "date"
            },
            "scoreScale" : {
                "$ref" : "#/components/schemas/ScoreScaleGUIDRefDType"
            },
            "scorePercentile" : {
                "description" : "Model Primitive Datatype = Float. ",
                "type" : "number",
                "format" : "float"
            },
            "scoreStatus" : {
                "description" : "...",
                "anyOf" : [
                        {
                            "description" : "Model Primitive Datatype = NormalizedString.",
                            "type" : "string",
                            "pattern" : "(ext:)[a-zA-Z0-9\\.\\-_]+"
                        },
                        {
                            "type" : "string",
                            "enum" : [ "exempt","fully graded","not submitted","partially graded","submitted" ]
                        }
                ]
            },
            "comment" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string"
            },
            "learningObjectiveSet" : {
                "description" : "...",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "$ref" : "#/components/schemas/LearningObjectiveScoreSetDType"
                }
            },
            "inProgress" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "true","false" ]
            },
            "incomplete" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "true","false" ]
            },
            "late" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "true","false" ]
            },
            "missing" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "true","false" ]
            },
        },
        "required" : [ "assessmentLineItem","student","scoreDate","scoreStatus" ],
        "additionalProperties" : false
    },
                        

7.5.6 "AssessmentResultSetDType" Definition

The OpenAPI JSON Schema description for the "AssessmentResultSetDType" Complex Type is given in Table 7.5.6.

Table 7.5.6 - OpenAPI JSON Schema description for the "AssessmentResultSetDType" Complex Type.
Annotations This is the container for a collection of assessment result instances for a message payload. This may be empty if no instances are found that sustain the applied query constraints. The order is not significant.
Diagram JSON Schema diagram of the AssessmentResultSet object.
Model assessmentResults{0..*}
Source (OAS2)
    "AssessmentResultSetDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "assessmentResults" : {
                "description" : "...",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "$ref" : "#/definitions/AssessmentResultDType"
                }
            },
        },
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "AssessmentResultSetDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "assessmentResults" : {
                "description" : "...",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "$ref" : "#/components/schemas/AssessmentResultDType"
                }
            },
        },
        "additionalProperties" : false
    },
                        

7.5.7 "CategoriesSetDType" Definition

The OpenAPI JSON Schema description for the "CategoriesSetDType" Complex Type is given in Table 7.5.7.

Table 7.5.7 - OpenAPI JSON Schema description for the "CategoriesSetDType" Complex Type.
Annotations This is the container for a collection of category instances for a message payload. This may be empty if no instances are found that sustain the applied query constraints. The order is not significant.
Diagram JSON Schema diagram of the CategoriesSet object.
Model categories{0..*}
Source (OAS2)
    "CategoriesSetDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "categories" : {
                "description" : "...",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "$ref" : "#/definitions/CategoryDType"
                }
            },
        },
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "CategoriesSetDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "categories" : {
                "description" : "...",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "$ref" : "#/components/schemas/CategoryDType"
                }
            },
        },
        "additionalProperties" : false
    },
                        

7.5.8 "CategoryDType" Definition

The OpenAPI JSON Schema description for the "CategoryDType" Complex Type is given in Table 7.5.8.

Table 7.5.8 - OpenAPI JSON Schema description for the "CategoryDType" Complex Type.
Annotations A Category is the name given to a grouping of line items (line items being equivalent to assignments which students will complete).
Diagram JSON Schema diagram of the Category object.
Model sourcedId{1..1}, status{1..1}, dateLastModified{1..1}, metadata{0..1}, title{1..1}, weight{0..1}
Source (OAS2)
    "CategoryDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "sourcedId" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string"
            },
            "status" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "active","tobedeleted" ]
            },
            "dateLastModified" : {
                "description" : "Model Primitive Datatype = DateTime. ",
                "type" : "string",
                "format" : "date-time"
            },
            "metadata" : {
                "$ref" : "#/definitions/MetadataDType"
            },
            "title" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
            "weight" : {
                "description" : "Model Primitive Datatype = Float. ",
                "type" : "number",
                "format" : "float"
            },
        },
        "required" : [ "title" ],
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "CategoryDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "sourcedId" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string"
            },
            "status" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "active","tobedeleted" ]
            },
            "dateLastModified" : {
                "description" : "Model Primitive Datatype = DateTime. ",
                "type" : "string",
                "format" : "date-time"
            },
            "metadata" : {
                "$ref" : "#/components/schemas/MetadataDType"
            },
            "title" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
            "weight" : {
                "description" : "Model Primitive Datatype = Float. ",
                "type" : "number",
                "format" : "float"
            },
        },
        "required" : [ "title" ],
        "additionalProperties" : false
    },
                        

7.5.9 "CategoryGUIDRefDType" Definition

The OpenAPI JSON Schema description for the "CategoryGUIDRefDType" Complex Type is given in Table 7.5.9.

Table 7.5.9 - OpenAPI JSON Schema description for the "CategoryGUIDRefDType" Complex Type.
Annotations This is the container for reference to a OneRoster 'Category' object that has an allocated sourcedId (GUID).
Diagram JSON Schema diagram of the CategoryGUIDRef object.
Model href{1..1}, sourcedId{1..1}, type{1..1}
Source (OAS2)
    "CategoryGUIDRefDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "href" : {
                "description" : "Model Primitive Datatype = AnyURI. ",
                "type" : "string",
                "format" : "uri"
            },
            "sourcedId" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string"
            },
            "type" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "category" ]
            },
        },
        "required" : [ "type" ],
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "CategoryGUIDRefDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "href" : {
                "description" : "Model Primitive Datatype = AnyURI. ",
                "type" : "string",
                "format" : "uri"
            },
            "sourcedId" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string"
            },
            "type" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "category" ]
            },
        },
        "required" : [ "type" ],
        "additionalProperties" : false
    },
                        

7.5.10 "ClassGUIDRefDType" Definition

The OpenAPI JSON Schema description for the "ClassGUIDRefDType" Complex Type is given in Table 7.5.10.

Table 7.5.10 - OpenAPI JSON Schema description for the "ClassGUIDRefDType" Complex Type.
Annotations This is the container for reference to a OneRoster 'Class' object that has an allocated sourcedId (GUID).
Diagram JSON Schema diagram of the ClassGUIDRef object.
Model href{1..1}, sourcedId{1..1}, type{1..1}
Source (OAS2)
    "ClassGUIDRefDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "href" : {
                "description" : "Model Primitive Datatype = AnyURI. ",
                "type" : "string",
                "format" : "uri"
            },
            "sourcedId" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string"
            },
            "type" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "class" ]
            },
        },
        "required" : [ "type" ],
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "ClassGUIDRefDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "href" : {
                "description" : "Model Primitive Datatype = AnyURI. ",
                "type" : "string",
                "format" : "uri"
            },
            "sourcedId" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string"
            },
            "type" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "class" ]
            },
        },
        "required" : [ "type" ],
        "additionalProperties" : false
    },
                        

7.5.11 "CourseGUIDRefDType" Definition

The OpenAPI JSON Schema description for the "CourseGUIDRefDType" Complex Type is given in Table 7.5.11.

Table 7.5.11 - OpenAPI JSON Schema description for the "CourseGUIDRefDType" Complex Type.
Annotations This is the container for reference to a OneRoster 'Course' object that has an allocated sourcedId (GUID).
Diagram JSON Schema diagram of the CourseGUIDRef object.
Model href{1..1}, sourcedId{1..1}, type{1..1}
Source (OAS2)
    "CourseGUIDRefDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "href" : {
                "description" : "Model Primitive Datatype = AnyURI. ",
                "type" : "string",
                "format" : "uri"
            },
            "sourcedId" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string"
            },
            "type" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "course" ]
            },
        },
        "required" : [ "type" ],
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "CourseGUIDRefDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "href" : {
                "description" : "Model Primitive Datatype = AnyURI. ",
                "type" : "string",
                "format" : "uri"
            },
            "sourcedId" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string"
            },
            "type" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "course" ]
            },
        },
        "required" : [ "type" ],
        "additionalProperties" : false
    },
                        

7.5.12 "GUIDPairDType" Definition

The OpenAPI JSON Schema description for the "GUIDPairDType" Complex Type is given in Table 7.5.12.

Table 7.5.12 - OpenAPI JSON Schema description for the "GUIDPairDType" Complex Type.
Annotations The container for the mapping between the supplied (assigned by the requesting system) and allocated (assigned by the responding system) sourcedIds i.e. GUIDs.
Diagram JSON Schema diagram of the GUIDPair object.
Model suppliedSourcedId{1..1} ! allocatedSourcedId{1..1}
Source (OAS2)
    "GUIDPairDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "suppliedSourcedId" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string"
            },
            "allocatedSourcedId" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string"
            },
        },
        "required" : [ "suppliedSourcedId","allocatedSourcedId" ],
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "GUIDPairDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "suppliedSourcedId" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string"
            },
            "allocatedSourcedId" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string"
            },
        },
        "required" : [ "suppliedSourcedId","allocatedSourcedId" ],
        "additionalProperties" : false
    },
                        

7.5.13 "GUIDPairSetDType" Definition

The OpenAPI JSON Schema description for the "GUIDPairSetDType" Complex Type is given in Table 7.5.13.

Table 7.5.13 - OpenAPI JSON Schema description for the "GUIDPairSetDType" Complex Type.
Annotations The container for the set of sourcedId pairs. This is used to provide the mapping between a set of original/new values allocated to a set of sourcedIds.
Diagram JSON Schema diagram of the GUIDPairSet object.
Model sourcedIdPairs{0..*}
Source (OAS2)
    "GUIDPairSetDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "sourcedIdPairs" : {
                "description" : "...",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "$ref" : "#/definitions/GUIDPairDType"
                }
            },
        },
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "GUIDPairSetDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "sourcedIdPairs" : {
                "description" : "...",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "$ref" : "#/components/schemas/GUIDPairDType"
                }
            },
        },
        "additionalProperties" : false
    },
                        

7.5.14 "LearningObjectiveResultsDType" Definition

The OpenAPI JSON Schema description for the "LearningObjectiveResultsDType" Complex Type is given in Table 7.5.14.

Table 7.5.14 - OpenAPI JSON Schema description for the "LearningObjectiveResultsDType" Complex Type.
Annotations This is the container for a learning objective identifier. This also allows a mastery score to be aligned with the learning objective.
Diagram JSON Schema diagram of the LearningObjectiveResults object.
Model learningObjectiveId{1..1}, score{0..1}, textScore{0..1}
Source (OAS2)
    "LearningObjectiveResultsDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "learningObjectiveId" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
            "score" : {
                "description" : "Model Primitive Datatype = Float. ",
                "type" : "number",
                "format" : "float"
            },
            "textScore" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
        },
        "required" : [ "learningObjectiveId" ],
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "LearningObjectiveResultsDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "learningObjectiveId" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
            "score" : {
                "description" : "Model Primitive Datatype = Float. ",
                "type" : "number",
                "format" : "float"
            },
            "textScore" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
        },
        "required" : [ "learningObjectiveId" ],
        "additionalProperties" : false
    },
                        

7.5.15 "LearningObjectiveScoreSetDType" Definition

The OpenAPI JSON Schema description for the "LearningObjectiveScoreSetDType" Complex Type is given in Table 7.5.15.

Table 7.5.15 - OpenAPI JSON Schema description for the "LearningObjectiveScoreSetDType" Complex Type.
Annotations This is the container for the set of learning objective identifiers that are from a single source responsible for creating those identifiers. This also allows a mastery score to be aligned with a learning objective.
Diagram JSON Schema diagram of the LearningObjectiveScoreSet object.
Model source{1..1}, learningObjectiveResults{1..*}
Source (OAS2)
    "LearningObjectiveScoreSetDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "source" : {
                "description" : "...",
                "type" : "string"
            },
            "learningObjectiveResults" : {
                "description" : "...",
                "type" : "array",
                "minItems" : 1,
                "items" : {
                    "$ref" : "#/definitions/LearningObjectiveResultsDType"
                }
            },
        },
        "required" : [ "source","learningObjectiveResults" ],
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "LearningObjectiveScoreSetDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "source" : {
                "description" : "...",
                "anyOf" : [
                        {
                            "description" : "Model Primitive Datatype = NormalizedString.",
                            "type" : "string",
                            "pattern" : "^/(?!case$)(?!unknown$)[a-z0-9]+$"
                        },
                        {
                            "type" : "string",
                            "enum" : [ "case","unknown" ]
                        }
                ]
            },
            "learningObjectiveResults" : {
                "description" : "...",
                "type" : "array",
                "minItems" : 1,
                "items" : {
                    "$ref" : "#/components/schemas/LearningObjectiveResultsDType"
                }
            },
        },
        "required" : [ "source","learningObjectiveResults" ],
        "additionalProperties" : false
    },
                        

7.5.16 "LearningObjectiveSetDType" Definition

The OpenAPI JSON Schema description for the "LearningObjectiveSetDType" Complex Type is given in Table 7.5.16.

Table 7.5.16 - OpenAPI JSON Schema description for the "LearningObjectiveSetDType" Complex Type.
Annotations This is the container for the set of learning objective identifiers that are from a single source responsible for creating those identifiers.
Diagram JSON Schema diagram of the LearningObjectiveSet object.
Model source{1..1}, learningObjectiveIds{1..*}
Source (OAS2)
    "LearningObjectiveSetDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "source" : {
                "description" : "...",
                "type" : "string"
            },
            "learningObjectiveIds" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "array",
                "minItems" : 1,
                "items" : {
                    "type" : "string"
                }
            },
        },
        "required" : [ "source","learningObjectiveIds" ],
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "LearningObjectiveSetDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "source" : {
                "description" : "...",
                "anyOf" : [
                        {
                            "description" : "Model Primitive Datatype = NormalizedString.",
                            "type" : "string",
                            "pattern" : "^/(?!case$)(?!unknown$)[a-z0-9]+$"
                        },
                        {
                            "type" : "string",
                            "enum" : [ "case","unknown" ]
                        }
                ]
            },
            "learningObjectiveIds" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "array",
                "minItems" : 1,
                "items" : {
                    "type" : "string"
                }
            },
        },
        "required" : [ "source","learningObjectiveIds" ],
        "additionalProperties" : false
    },
                        

7.5.17 "LineItemDType" Definition

The OpenAPI JSON Schema description for the "LineItemDType" Complex Type is given in Table 7.5.17.

Table 7.5.17 - OpenAPI JSON Schema description for the "LineItemDType" Complex Type.
Annotations This is the container for the definition of a lineItem. A lineItem is a collection of results for a set of students who are completing an assignment as part of a class at a school.
Diagram JSON Schema diagram of the LineItem object.
Model sourcedId{1..1}, status{1..1}, dateLastModified{1..1}, metadata{0..1}, title{1..1}, description{0..1}, assignDate{1..1}, dueDate{1..1}, class{1..1}, school{1..1}, category{1..1}, gradingPeriod{0..1}, academicSession{0..1}, scoreScale{0..1}, resultValueMin{0..1}, resultValueMax{0..1}, learningObjectiveSet{0..*}
Source (OAS2)
    "LineItemDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "sourcedId" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string"
            },
            "status" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "active","tobedeleted" ]
            },
            "dateLastModified" : {
                "description" : "Model Primitive Datatype = DateTime. ",
                "type" : "string",
                "format" : "date-time"
            },
            "metadata" : {
                "$ref" : "#/definitions/MetadataDType"
            },
            "title" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
            "description" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string"
            },
            "assignDate" : {
                "description" : "Model Primitive Datatype = DateTime. ",
                "type" : "string",
                "format" : "date-time"
            },
            "dueDate" : {
                "description" : "Model Primitive Datatype = DateTime. ",
                "type" : "string",
                "format" : "date-time"
            },
            "class" : {
                "$ref" : "#/definitions/ClassGUIDRefDType"
            },
            "school" : {
                "$ref" : "#/definitions/OrgGUIDRefDType"
            },
            "category" : {
                "$ref" : "#/definitions/CategoryGUIDRefDType"
            },
            "gradingPeriod" : {
                "$ref" : "#/definitions/AcadSessionGUIDRefDType"
            },
            "academicSession" : {
                "$ref" : "#/definitions/AcadSessionGUIDRefDType"
            },
            "scoreScale" : {
                "$ref" : "#/definitions/ScoreScaleGUIDRefDType"
            },
            "resultValueMin" : {
                "description" : "Model Primitive Datatype = Float. ",
                "type" : "number",
                "format" : "float"
            },
            "resultValueMax" : {
                "description" : "Model Primitive Datatype = Float. ",
                "type" : "number",
                "format" : "float"
            },
            "learningObjectiveSet" : {
                "description" : "...",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "$ref" : "#/definitions/LearningObjectiveSetDType"
                }
            },
        },
        "required" : [ "title","assignDate","dueDate","class","school","category" ],
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "LineItemDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "sourcedId" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string"
            },
            "status" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "active","tobedeleted" ]
            },
            "dateLastModified" : {
                "description" : "Model Primitive Datatype = DateTime. ",
                "type" : "string",
                "format" : "date-time"
            },
            "metadata" : {
                "$ref" : "#/components/schemas/MetadataDType"
            },
            "title" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
            "description" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string"
            },
            "assignDate" : {
                "description" : "Model Primitive Datatype = DateTime. ",
                "type" : "string",
                "format" : "date-time"
            },
            "dueDate" : {
                "description" : "Model Primitive Datatype = DateTime. ",
                "type" : "string",
                "format" : "date-time"
            },
            "class" : {
                "$ref" : "#/components/schemas/ClassGUIDRefDType"
            },
            "school" : {
                "$ref" : "#/components/schemas/OrgGUIDRefDType"
            },
            "category" : {
                "$ref" : "#/components/schemas/CategoryGUIDRefDType"
            },
            "gradingPeriod" : {
                "$ref" : "#/components/schemas/AcadSessionGUIDRefDType"
            },
            "academicSession" : {
                "$ref" : "#/components/schemas/AcadSessionGUIDRefDType"
            },
            "scoreScale" : {
                "$ref" : "#/components/schemas/ScoreScaleGUIDRefDType"
            },
            "resultValueMin" : {
                "description" : "Model Primitive Datatype = Float. ",
                "type" : "number",
                "format" : "float"
            },
            "resultValueMax" : {
                "description" : "Model Primitive Datatype = Float. ",
                "type" : "number",
                "format" : "float"
            },
            "learningObjectiveSet" : {
                "description" : "...",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "$ref" : "#/components/schemas/LearningObjectiveSetDType"
                }
            },
        },
        "required" : [ "title","assignDate","dueDate","class","school","category" ],
        "additionalProperties" : false
    },
                        

7.5.18 "LineItemGUIDRefDType" Definition

The OpenAPI JSON Schema description for the "LineItemGUIDRefDType" Complex Type is given in Table 7.5.18.

Table 7.5.18 - OpenAPI JSON Schema description for the "LineItemGUIDRefDType" Complex Type.
Annotations This is the container for reference to a OneRoster 'LineItem' object that has an allocated sourcedId (GUID).
Diagram JSON Schema diagram of the LineItemGUIDRef object.
Model href{1..1}, sourcedId{1..1}, type{1..1}
Source (OAS2)
    "LineItemGUIDRefDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "href" : {
                "description" : "Model Primitive Datatype = AnyURI. ",
                "type" : "string",
                "format" : "uri"
            },
            "sourcedId" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string"
            },
            "type" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "lineItem" ]
            },
        },
        "required" : [ "type" ],
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "LineItemGUIDRefDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "href" : {
                "description" : "Model Primitive Datatype = AnyURI. ",
                "type" : "string",
                "format" : "uri"
            },
            "sourcedId" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string"
            },
            "type" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "lineItem" ]
            },
        },
        "required" : [ "type" ],
        "additionalProperties" : false
    },
                        

7.5.19 "LineItemSetDType" Definition

The OpenAPI JSON Schema description for the "LineItemSetDType" Complex Type is given in Table 7.5.19.

Table 7.5.19 - OpenAPI JSON Schema description for the "LineItemSetDType" Complex Type.
Annotations This is the container for a collection of lineItem instances for a message payload. This may be empty if no instances are found that sustain the applied query constraints. The order is not significant.
Diagram JSON Schema diagram of the LineItemSet object.
Model lineItems{0..*}
Source (OAS2)
    "LineItemSetDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "lineItems" : {
                "description" : "...",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "$ref" : "#/definitions/LineItemDType"
                }
            },
        },
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "LineItemSetDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "lineItems" : {
                "description" : "...",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "$ref" : "#/components/schemas/LineItemDType"
                }
            },
        },
        "additionalProperties" : false
    },
                        

7.5.20 "MetadataDType" Definition

The OpenAPI JSON Schema description for the "MetadataDType" Complex Type is given in Table 7.5.20.

Table 7.5.20 - OpenAPI JSON Schema description for the "MetadataDType" Complex Type.
Annotations The container for the proprietary extensions.
Diagram JSON Schema diagram of the Metadata object.
Model Namespace-based Extension
Source (OAS2)
    "MetadataDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
        },
        "additionalProperties" : true
    },
                        
Source (OAS3)
    "MetadataDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
        },
        "additionalProperties" : true
    },
                        

7.5.21 "OrgGUIDRefDType" Definition

The OpenAPI JSON Schema description for the "OrgGUIDRefDType" Complex Type is given in Table 7.5.21.

Table 7.5.21 - OpenAPI JSON Schema description for the "OrgGUIDRefDType" Complex Type.
Annotations This is the container for reference to a OneRoster 'Org' object that has an allocated sourcedId (GUID).
Diagram JSON Schema diagram of the OrgGUIDRef object.
Model href{1..1}, sourcedId{1..1}, type{1..1}
Source (OAS2)
    "OrgGUIDRefDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "href" : {
                "description" : "Model Primitive Datatype = AnyURI. ",
                "type" : "string",
                "format" : "uri"
            },
            "sourcedId" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string"
            },
            "type" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "org" ]
            },
        },
        "required" : [ "type" ],
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "OrgGUIDRefDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "href" : {
                "description" : "Model Primitive Datatype = AnyURI. ",
                "type" : "string",
                "format" : "uri"
            },
            "sourcedId" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string"
            },
            "type" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "org" ]
            },
        },
        "required" : [ "type" ],
        "additionalProperties" : false
    },
                        

7.5.22 "ResultDType" Definition

The OpenAPI JSON Schema description for the "ResultDType" Complex Type is given in Table 7.5.22.

Table 7.5.22 - OpenAPI JSON Schema description for the "ResultDType" Complex Type.
Annotations This is the container for the Result record. A result consists of the assigned score plus the context for that score.
Diagram JSON Schema diagram of the Result object.
Model sourcedId{1..1}, status{1..1}, dateLastModified{1..1}, metadata{0..1}, lineItem{1..1}, student{1..1}, class{0..1}, scoreScale{0..1}, scoreStatus{1..1}, score{0..1}, textScore{0..1}, scoreDate{1..1}, comment{0..1}, learningObjectiveSet{0..*}, inProgress{0..1}, incomplete{0..1}, late{0..1}, missing{0..1}
Source (OAS2)
    "ResultDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "sourcedId" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string"
            },
            "status" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "active","tobedeleted" ]
            },
            "dateLastModified" : {
                "description" : "Model Primitive Datatype = DateTime. ",
                "type" : "string",
                "format" : "date-time"
            },
            "metadata" : {
                "$ref" : "#/definitions/MetadataDType"
            },
            "lineItem" : {
                "$ref" : "#/definitions/LineItemGUIDRefDType"
            },
            "student" : {
                "$ref" : "#/definitions/UserGUIDRefDType"
            },
            "class" : {
                "$ref" : "#/definitions/ClassGUIDRefDType"
            },
            "scoreScale" : {
                "$ref" : "#/definitions/ScoreScaleGUIDRefDType"
            },
            "scoreStatus" : {
                "description" : "...",
                "type" : "string"
            },
            "score" : {
                "description" : "Model Primitive Datatype = Float. ",
                "type" : "number",
                "format" : "float"
            },
            "textScore" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
            "scoreDate" : {
                "description" : "Model Primitive Datatype = Date. ",
                "type" : "string",
                "format" : "date"
            },
            "comment" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string"
            },
            "learningObjectiveSet" : {
                "description" : "...",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "$ref" : "#/definitions/LearningObjectiveScoreSetDType"
                }
            },
            "inProgress" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "true","false" ]
            },
            "incomplete" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "true","false" ]
            },
            "late" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "true","false" ]
            },
            "missing" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "true","false" ]
            },
        },
        "required" : [ "lineItem","student","scoreStatus","scoreDate" ],
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "ResultDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "sourcedId" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string"
            },
            "status" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "active","tobedeleted" ]
            },
            "dateLastModified" : {
                "description" : "Model Primitive Datatype = DateTime. ",
                "type" : "string",
                "format" : "date-time"
            },
            "metadata" : {
                "$ref" : "#/components/schemas/MetadataDType"
            },
            "lineItem" : {
                "$ref" : "#/components/schemas/LineItemGUIDRefDType"
            },
            "student" : {
                "$ref" : "#/components/schemas/UserGUIDRefDType"
            },
            "class" : {
                "$ref" : "#/components/schemas/ClassGUIDRefDType"
            },
            "scoreScale" : {
                "$ref" : "#/components/schemas/ScoreScaleGUIDRefDType"
            },
            "scoreStatus" : {
                "description" : "...",
                "anyOf" : [
                        {
                            "description" : "Model Primitive Datatype = NormalizedString.",
                            "type" : "string",
                            "pattern" : "(ext:)[a-zA-Z0-9\\.\\-_]+"
                        },
                        {
                            "type" : "string",
                            "enum" : [ "exempt","fully graded","not submitted","partially graded","submitted" ]
                        }
                ]
            },
            "score" : {
                "description" : "Model Primitive Datatype = Float. ",
                "type" : "number",
                "format" : "float"
            },
            "textScore" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
            "scoreDate" : {
                "description" : "Model Primitive Datatype = Date. ",
                "type" : "string",
                "format" : "date"
            },
            "comment" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string"
            },
            "learningObjectiveSet" : {
                "description" : "...",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "$ref" : "#/components/schemas/LearningObjectiveScoreSetDType"
                }
            },
            "inProgress" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "true","false" ]
            },
            "incomplete" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "true","false" ]
            },
            "late" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "true","false" ]
            },
            "missing" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "true","false" ]
            },
        },
        "required" : [ "lineItem","student","scoreStatus","scoreDate" ],
        "additionalProperties" : false
    },
                        

7.5.23 "ResultSetDType" Definition

The OpenAPI JSON Schema description for the "ResultSetDType" Complex Type is given in Table 7.5.23.

Table 7.5.23 - OpenAPI JSON Schema description for the "ResultSetDType" Complex Type.
Annotations This is the container for a collection of result instances for a message payload. This may be empty if no instances are found that sustain the applied query constraints. The order is not significant.
Diagram JSON Schema diagram of the ResultSet object.
Model results{0..*}
Source (OAS2)
    "ResultSetDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "results" : {
                "description" : "...",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "$ref" : "#/definitions/ResultDType"
                }
            },
        },
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "ResultSetDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "results" : {
                "description" : "...",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "$ref" : "#/components/schemas/ResultDType"
                }
            },
        },
        "additionalProperties" : false
    },
                        

7.5.24 "ScoreScaleDType" Definition

The OpenAPI JSON Schema description for the "ScoreScaleDType" Complex Type is given in Table 7.5.24.

Table 7.5.24 - OpenAPI JSON Schema description for the "ScoreScaleDType" Complex Type.
Annotations The container for the definition Score Scale mapping i.e. the relationship between two score scales.
Diagram JSON Schema diagram of the ScoreScale object.
Model sourcedId{1..1} ! status{1..1} ! dateLastModified{1..1} ! metadata{0..1} ! title{1..1} ! type{1..1} ! course{0..1} ! class{1..1} ! scoreScaleValue{1..*}
Source (OAS2)
    "ScoreScaleDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "sourcedId" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string"
            },
            "status" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "active","tobedeleted" ]
            },
            "dateLastModified" : {
                "description" : "Model Primitive Datatype = DateTime. ",
                "type" : "string",
                "format" : "date-time"
            },
            "metadata" : {
                "$ref" : "#/definitions/MetadataDType"
            },
            "title" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
            "type" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
            "course" : {
                "$ref" : "#/definitions/CourseGUIDRefDType"
            },
            "class" : {
                "$ref" : "#/definitions/ClassGUIDRefDType"
            },
            "scoreScaleValue" : {
                "description" : "...",
                "type" : "array",
                "minItems" : 1,
                "items" : {
                    "$ref" : "#/definitions/ScoreScaleValueDType"
                }
            },
        },
        "required" : [ "title","type","class","scoreScaleValue" ],
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "ScoreScaleDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "sourcedId" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string"
            },
            "status" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "active","tobedeleted" ]
            },
            "dateLastModified" : {
                "description" : "Model Primitive Datatype = DateTime. ",
                "type" : "string",
                "format" : "date-time"
            },
            "metadata" : {
                "$ref" : "#/components/schemas/MetadataDType"
            },
            "title" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
            "type" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
            "course" : {
                "$ref" : "#/components/schemas/CourseGUIDRefDType"
            },
            "class" : {
                "$ref" : "#/components/schemas/ClassGUIDRefDType"
            },
            "scoreScaleValue" : {
                "description" : "...",
                "type" : "array",
                "minItems" : 1,
                "items" : {
                    "$ref" : "#/components/schemas/ScoreScaleValueDType"
                }
            },
        },
        "required" : [ "title","type","class","scoreScaleValue" ],
        "additionalProperties" : false
    },
                        

7.5.25 "ScoreScaleGUIDRefDType" Definition

The OpenAPI JSON Schema description for the "ScoreScaleGUIDRefDType" Complex Type is given in Table 7.5.25.

Table 7.5.25 - OpenAPI JSON Schema description for the "ScoreScaleGUIDRefDType" Complex Type.
Annotations This is the container for reference to a OneRoster 'ScoreScale' object that has an allocated sourcedId (GUID).
Diagram JSON Schema diagram of the ScoreScaleGUIDRef object.
Model href{1..1}, sourcedId{1..1}, type{1..1}
Source (OAS2)
    "ScoreScaleGUIDRefDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "href" : {
                "description" : "Model Primitive Datatype = AnyURI. ",
                "type" : "string",
                "format" : "uri"
            },
            "sourcedId" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string"
            },
            "type" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "scoreScale" ]
            },
        },
        "required" : [ "type" ],
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "ScoreScaleGUIDRefDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "href" : {
                "description" : "Model Primitive Datatype = AnyURI. ",
                "type" : "string",
                "format" : "uri"
            },
            "sourcedId" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string"
            },
            "type" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "scoreScale" ]
            },
        },
        "required" : [ "type" ],
        "additionalProperties" : false
    },
                        

7.5.26 "ScoreScaleSetDType" Definition

The OpenAPI JSON Schema description for the "ScoreScaleSetDType" Complex Type is given in Table 7.5.26.

Table 7.5.26 - OpenAPI JSON Schema description for the "ScoreScaleSetDType" Complex Type.
Annotations This is the container for a collection of scoreScale instances for a message payload. This may be empty if no instances are found that sustain the applied query constraints. The order is not significant.
Diagram JSON Schema diagram of the ScoreScaleSet object.
Model scoreScales{0..*}
Source (OAS2)
    "ScoreScaleSetDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "scoreScales" : {
                "description" : "...",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "$ref" : "#/definitions/ScoreScaleDType"
                }
            },
        },
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "ScoreScaleSetDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "scoreScales" : {
                "description" : "...",
                "type" : "array",
                "minItems" : 0,
                "items" : {
                    "$ref" : "#/components/schemas/ScoreScaleDType"
                }
            },
        },
        "additionalProperties" : false
    },
                        

7.5.27 "ScoreScaleValueDType" Definition

The OpenAPI JSON Schema description for the "ScoreScaleValueDType" Complex Type is given in Table 7.5.27.

Table 7.5.27 - OpenAPI JSON Schema description for the "ScoreScaleValueDType" Complex Type.
Annotations A specific mapping of values between two score scales. The left hand side (LHS) value is the reference point. Examples of this mapping are: '7' maps to 'A', '7'-'10' maps to 'A', etc.
Diagram JSON Schema diagram of the ScoreScaleValue object.
Model itemValueLHS{1..1} ! itemValueRHS{1..1}
Source (OAS2)
    "ScoreScaleValueDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "itemValueLHS" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
            "itemValueRHS" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
        },
        "required" : [ "itemValueLHS","itemValueRHS" ],
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "ScoreScaleValueDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "itemValueLHS" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
            "itemValueRHS" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string"
            },
        },
        "required" : [ "itemValueLHS","itemValueRHS" ],
        "additionalProperties" : false
    },
                        

7.5.28 "SingleAssessmentLineItemDType" Definition

The OpenAPI JSON Schema description for the "SingleAssessmentLineItemDType" Complex Type is given in Table 7.5.28.

Table 7.5.28 - OpenAPI JSON Schema description for the "SingleAssessmentLineItemDType" Complex Type.
Annotations This is the container for a single assessment lineItem instance for a message payload.
Diagram JSON Schema diagram of the SingleAssessmentLineItem object.
Model assessmentLineItem{1..1}
Source (OAS2)
    "SingleAssessmentLineItemDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "assessmentLineItem" : {
                "$ref" : "#/definitions/AssessmentLineItemDType"
            },
        },
        "required" : [ "assessmentLineItem" ],
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "SingleAssessmentLineItemDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "assessmentLineItem" : {
                "$ref" : "#/components/schemas/AssessmentLineItemDType"
            },
        },
        "required" : [ "assessmentLineItem" ],
        "additionalProperties" : false
    },
                        

7.5.29 "SingleAssessmentResultDType" Definition

The OpenAPI JSON Schema description for the "SingleAssessmentResultDType" Complex Type is given in Table 7.5.29.

Table 7.5.29 - OpenAPI JSON Schema description for the "SingleAssessmentResultDType" Complex Type.
Annotations This is the container for a single assessment result instance for a message payload.
Diagram JSON Schema diagram of the SingleAssessmentResult object.
Model assessmentResult{1..1}
Source (OAS2)
    "SingleAssessmentResultDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "assessmentResult" : {
                "$ref" : "#/definitions/AssessmentResultDType"
            },
        },
        "required" : [ "assessmentResult" ],
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "SingleAssessmentResultDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "assessmentResult" : {
                "$ref" : "#/components/schemas/AssessmentResultDType"
            },
        },
        "required" : [ "assessmentResult" ],
        "additionalProperties" : false
    },
                        

7.5.30 "SingleCategoryDType" Definition

The OpenAPI JSON Schema description for the "SingleCategoryDType" Complex Type is given in Table 7.5.30.

Table 7.5.30 - OpenAPI JSON Schema description for the "SingleCategoryDType" Complex Type.
Annotations This is the container for a single category instance for a message payload.
Diagram JSON Schema diagram of the SingleCategory object.
Model category{1..1}
Source (OAS2)
    "SingleCategoryDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "category" : {
                "$ref" : "#/definitions/CategoryDType"
            },
        },
        "required" : [ "category" ],
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "SingleCategoryDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "category" : {
                "$ref" : "#/components/schemas/CategoryDType"
            },
        },
        "required" : [ "category" ],
        "additionalProperties" : false
    },
                        

7.5.31 "SingleLineItemDType" Definition

The OpenAPI JSON Schema description for the "SingleLineItemDType" Complex Type is given in Table 7.5.31.

Table 7.5.31 - OpenAPI JSON Schema description for the "SingleLineItemDType" Complex Type.
Annotations This is the container for a single lineItem instance for a message payload.
Diagram JSON Schema diagram of the SingleLineItem object.
Model lineItem{1..1}
Source (OAS2)
    "SingleLineItemDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "lineItem" : {
                "$ref" : "#/definitions/LineItemDType"
            },
        },
        "required" : [ "lineItem" ],
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "SingleLineItemDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "lineItem" : {
                "$ref" : "#/components/schemas/LineItemDType"
            },
        },
        "required" : [ "lineItem" ],
        "additionalProperties" : false
    },
                        

7.5.32 "SingleResultDType" Definition

The OpenAPI JSON Schema description for the "SingleResultDType" Complex Type is given in Table 7.5.32.

Table 7.5.32 - OpenAPI JSON Schema description for the "SingleResultDType" Complex Type.
Annotations This is the container for a single result instance for a message payload.
Diagram JSON Schema diagram of the SingleResult object.
Model result{1..1}
Source (OAS2)
    "SingleResultDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "result" : {
                "$ref" : "#/definitions/ResultDType"
            },
        },
        "required" : [ "result" ],
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "SingleResultDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "result" : {
                "$ref" : "#/components/schemas/ResultDType"
            },
        },
        "required" : [ "result" ],
        "additionalProperties" : false
    },
                        

7.5.33 "SingleScoreScaleDType" Definition

The OpenAPI JSON Schema description for the "SingleScoreScaleDType" Complex Type is given in Table 7.5.33.

Table 7.5.33 - OpenAPI JSON Schema description for the "SingleScoreScaleDType" Complex Type.
Annotations This is the container for a single scoreScale instance for a message payload.
Diagram JSON Schema diagram of the SingleScoreScale object.
Model scoreScale{1..1}
Source (OAS2)
    "SingleScoreScaleDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "scoreScale" : {
                "$ref" : "#/definitions/ScoreScaleDType"
            },
        },
        "required" : [ "scoreScale" ],
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "SingleScoreScaleDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "scoreScale" : {
                "$ref" : "#/components/schemas/ScoreScaleDType"
            },
        },
        "required" : [ "scoreScale" ],
        "additionalProperties" : false
    },
                        

7.5.34 "UserGUIDRefDType" Definition

The OpenAPI JSON Schema description for the "UserGUIDRefDType" Complex Type is given in Table 7.5.34.

Table 7.5.34 - OpenAPI JSON Schema description for the "UserGUIDRefDType" Complex Type.
Annotations This is the container for reference to a OneRoster 'User' object that has an allocated sourcedId (GUID).
Diagram JSON Schema diagram of the UserGUIDRef object.
Model href{1..1}, sourcedId{1..1}, type{1..1}
Source (OAS2)
    "UserGUIDRefDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "href" : {
                "description" : "Model Primitive Datatype = AnyURI. ",
                "type" : "string",
                "format" : "uri"
            },
            "sourcedId" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string"
            },
            "type" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "user" ]
            },
        },
        "required" : [ "type" ],
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "UserGUIDRefDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "href" : {
                "description" : "Model Primitive Datatype = AnyURI. ",
                "type" : "string",
                "format" : "uri"
            },
            "sourcedId" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string"
            },
            "type" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "user" ]
            },
        },
        "required" : [ "type" ],
        "additionalProperties" : false
    },
                        

7.5.35 "imsx_CodeMinorDType" Definition

The OpenAPI JSON Schema description for the "imsx_CodeMinorDType" Complex Type is given in Table 7.5.35.

Table 7.5.35 - OpenAPI JSON Schema description for the "imsx_CodeMinorDType" Complex Type.
Annotations This is the container for the set of code minor status codes reported in the responses from the Service Provider.
Diagram JSON Schema diagram of the imsx_CodeMinor object.
Model imsx_codeMinorField{1..*}
Source (OAS2)
    "imsx_CodeMinorDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "imsx_codeMinorField" : {
                "description" : "...",
                "type" : "array",
                "minItems" : 1,
                "items" : {
                    "$ref" : "#/definitions/imsx_CodeMinorFieldDType"
                }
            },
        },
        "required" : [ "imsx_codeMinorField" ],
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "imsx_CodeMinorDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "imsx_codeMinorField" : {
                "description" : "...",
                "type" : "array",
                "minItems" : 1,
                "items" : {
                    "$ref" : "#/components/schemas/imsx_CodeMinorFieldDType"
                }
            },
        },
        "required" : [ "imsx_codeMinorField" ],
        "additionalProperties" : false
    },
                        

7.5.36 "imsx_CodeMinorFieldDType" Definition

The OpenAPI JSON Schema description for the "imsx_CodeMinorFieldDType" Complex Type is given in Table 7.5.36.

Table 7.5.36 - OpenAPI JSON Schema description for the "imsx_CodeMinorFieldDType" Complex Type.
Annotations This is the container for a single code minor status code.
Diagram JSON Schema diagram of the imsx_CodeMinorField object.
Model imsx_codeMinorFieldName{1..1}, imsx_codeMinorFieldValue{1..1}
Source (OAS2)
    "imsx_CodeMinorFieldDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "imsx_codeMinorFieldName" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string",
                "default" : "TargetEndSystem"
            },
            "imsx_codeMinorFieldValue" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "fullsuccess","invalid_filter_field","invalid_selection_field","invaliddata","unauthorisedrequest","internal_server_error",
                            "server_busy","deletefailure","unknownobject","forbidden" ]
            },
        },
        "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "imsx_CodeMinorFieldDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "imsx_codeMinorFieldName" : {
                "description" : "Model Primitive Datatype = NormalizedString. ",
                "type" : "string",
                "default" : "TargetEndSystem"
            },
            "imsx_codeMinorFieldValue" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "fullsuccess","invalid_filter_field","invalid_selection_field","invaliddata","unauthorisedrequest","internal_server_error",
                            "server_busy","deletefailure","unknownobject","forbidden" ]
            },
        },
        "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
        "additionalProperties" : false
    },
                        

7.5.37 "imsx_StatusInfoDType" Definition

The OpenAPI JSON Schema description for the "imsx_StatusInfoDType" Complex Type is given in Table 7.5.37.

Table 7.5.37 - OpenAPI JSON Schema description for the "imsx_StatusInfoDType" 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 OneRoster Rostering 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 JSON Schema diagram of the imsx_StatusInfo object.
Model imsx_codeMajor{1..1}, imsx_severity{1..1}, imsx_description{0..1}, imsx_CodeMinor{0..1}
Source (OAS2)
    "imsx_StatusInfoDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "imsx_codeMajor" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "success","processing","failure","unsupported" ]
            },
            "imsx_severity" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "status","warning","error" ]
            },
            "imsx_description" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string"
            },
            "imsx_CodeMinor" : {
                "$ref" : "#/definitions/imsx_CodeMinorDType"
            },
        },
        "required" : [ "imsx_codeMajor","imsx_severity" ],
        "additionalProperties" : false
    },
                        
Source (OAS3)
    "imsx_StatusInfoDType" : {
        "description" : "...",
        "type" : "object",
        "properties" : {
            "imsx_codeMajor" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "success","processing","failure","unsupported" ]
            },
            "imsx_severity" : {
                "description" : "...",
                "type" : "string",
                "enum" : [ "status","warning","error" ]
            },
            "imsx_description" : {
                "description" : "Model Primitive Datatype = String. ",
                "type" : "string"
            },
            "imsx_CodeMinor" : {
                "$ref" : "#/components/schemas/imsx_CodeMinorDType"
            },
        },
        "required" : [ "imsx_codeMajor","imsx_severity" ],
        "additionalProperties" : false
    },
                        

toc | top

8. Extending and Profiling the Binding

This Section is NOT NORMATIVE.

8.1. Extending the Binding

Proprietary extensions of the service are based upon three 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.

8.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 Implementation Guide document [OR-IMPL-12].

8.1.2. Proprietary Scopes

It is permitted to create extra OAuth 2 scopes to provide more control over the availability of various endpoints.

An example of creating such an extension is given in the accompanying Implementation Guide document [OR-IMPL-12].

8.1.3. Proprietary Data Elements

It is recognized that implementers may wish to extend the specification. The preferred mechanism for doing this is for implementers to use an extension space within the OneRoster data model, and then set their parsers to read those extension attributes. Extensions are ONLY permitted using the 'metadata' attribute within the 'Base' class.

These extensions take the form of name/value pairs. The name is the label of the extension field, and the value is the value of the extension. For example, if wanting to show the extension of field "classification", with value "private" that was added/provided by "ims", the name/value pair is: "ims.classification" : "private".

It is RECOMMENDED that where extensions are used, whenever possible the name/value pairs are based upon vocabulary controlled files. This eliminates a proliferation of free text equivalencies from entering the data e.g. "Florida" vs "FL", vs "Florida, USA". In such cases either the attribute, or the value (or both) MUST be a URI that references the attribute and/or value from an appropriate vocabulary file. For example:

"http://www.nbrs.org" : "FL"

Within the OpenAPI files, uncontrolled data extensions are explicitly prohibited by the JSON Schema definition.

8.1.4. Proprietary Vocabulary Terms

In this version the ability to extend some of the enumerated vocabularies has been added: currently, ONLY the 'ScoreStatusEnum' and 'SourceEnum'' vocabularies MAY be extended. Each proprietary term must start with the characters 'ext:'. An example is adding the two proprietary scoreStatus value of 'ext:pending' to the 'ScoreStatusEnum' vocabulary.

8.2. Profiling the Binding

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 1EdTech. 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 1EdTech VP of Operations at: operations@1edtech.org.

toc | top

References

[CASE, 17] Competencies and Academic Standards Exchange (CASE) Service, B.Grogan, G.Nadeau, C.Smythe and J.Hobson, IMS Global Learning Consortium Inc., July 2017, https://www.imsglobal.org/sites/default/files/CASE/casev1p0/information_model/caseservicev1p0_infomodelv1p0.html.
[I-BAT, 06] IMS Binding Auto-generation Toolkit (I-BAT), C.Smythe, IMS Global Learning Consortium Inc., July 2006.
[ISO 8601] ISO8601:2004 Data elements and interchange formats - Information interchange - Representation of dates and times, ISO, International Standards Organization (ISO), 2000.
[OAS, 14] OpenAPI Specification (version 2), D.Miller, J.Harmon, J.Whitlock, K.Hahn, M.Gardiner, M.Ralphson, R.Dolin, R.Ratovsky and T.Tam, OpenAPI Initiative (Linux Foundation), September 2014, https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md.
[OAS, 17] OpenAPI Specification (version 3), D.Miller, J.Whitlock, M.Gardiner, M.Ralphson, R.Ratovsky and U.Sarid, OpenAPI Initiative (Linux Foundation), July 2017, https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md.
[OR-CERT-12] IMS OneRoster 1.2 Conformance and Certification Final Release 1.0, Colin Smythe, Joshua McGhee and Matt Richards, IMS Global Learning Consortium Inc., June 2022, https://www.imsglobal.org/spec/oneroster/v1p2/cert.
[OR-GBK-SM-12] IMS OneRoster 1.2 Gradebook Service Final Release 1.0, Colin Smythe, Joshua McGhee and Matt Richards, IMS Global Learning Consortium Inc., June 2022, https://www.imsglobal.org/spec/oneroster/v1p2/gradebook/info.
[OR-IMPL-12] IMS OneRoster 1.2 Implementation Guide Final Release 1.0, Colin Smythe, Joshua McGhee and Matt Richards, IMS Global Learning Consortium Inc., June 2022, https://www.imsglobal.org/spec/oneroster/v1p2/impl.
[OR-RES-SM-12] IMS OneRoster 1.2 Resources Service Final Release 1.0, Colin Smythe, Joshua McGhee and Matt Richards, IMS Global Learning Consortium Inc., June 2022, https://www.imsglobal.org/spec/oneroster/v1p2/resource/info.
[OR-ROS-SM-12] IMS OneRoster 1.2 Rostering Service Final Release 1.0, Colin Smythe, Joshua McGhee and Matt Richards, IMS Global Learning Consortium Inc., June 2022, https://www.imsglobal.org/spec/oneroster/v1p2/rostering/info.
[RFC 2119] Key words for use in RFCs to Indicate Requirement Levels, S. Bradner, IETF (RFC 2119), March 1997, https://tools.ietf.org/pdf/rfc2119.pdf.
[RFC 2617] HTTP Authentication: Basic and Digest Access Authentication, J. Franks, P. Hallam-Baker, J. Hostetler, S. Lawrence, P. Leach, A. Luotonen and L. Stewart, IETF (RFC 2167), 1999, https://tools.ietf.org/pdf/rfc2617.pdf.
[RFC 3066] Tags for the Identification of Languages, H.Alvestrand, IETF (RFC 3066), January 2001, https://www.ietf.org/rfc/rfc3066.txt.
[RFC 6749] The OAuth 2.0 Authorization Framework,, D.Hardt, IETF (RFC 6749), 2012, https://tools.ietf.org/pdf/rfc6749.pdf.
[RFC 6750] The OAuth 2.0 Authorization Framework: Bearer Token Usage, D.Hardt, IETF (RFC 6750), 2012, https://tools.ietf.org/pdf/rfc6750.pdf.
[Security, 21] IMS Security Framework 1.1, C.Smythe, N.Mills, C.Vervoort and M.Mckell, IMS Global Learning Consortium Inc., July 2021, https://www.imsglobal.org/spec/security/v1p1/.
[UNICODE, 16] UNICODE Collation Algorithm Version 9.0, M.Davis, K.Whistler and M.Scheer, Unicode Technical Standard #10, May 2016.

toc | top

Appendix A Model Binding Terms and Concepts

This Section is NOT NORMATIVE.

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 relative 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);
    • Duration - the duration data-type (using the [ISO 8601] format)
    • Empty - the associated instance must be empty;
    • Float - the float data-type (single precision floating point number - 32bit);
    • 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 [BCP 47];
    • 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);
    • PositiveInteger - the positive integer data-type (this is derived from the "nonNegativeinteger" data-type) i.e. an integer that is one or higher;
    • 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 HTTP Codes and Handling for each Endpoint Table Explanation

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

Table A1.3 The key to the descriptions of the list of HTTP 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.
HTTP Codes and Handling The list of HTTP codes that may be returned by the service provider. A description of the cause of the HTTP code is supplied along with a link to the definition of the associated JSON payload structure that contains the detailed status information.

toc | top

A2 UML to JSON Mapping Description Explanations

A2.1 Service Parameter Payload Properties UML/JSON Mapping Table Definition

Table A2.1 provides the key to the descriptions of UML to JSON service parameter mapping tables.

Table A2.1 The key to the descriptions of UML to JSON service parameter mapping tables.
Feature Definition and Usage
Operation Name The name operation (this will be a list of all of the operations for the set of defined interfaces).
Parameter Name The name of the service parameter (these are the parameters listed for the operation that are not mapped to endpoint query parameters).
UML Class The name of the class, the type of the parameter, in the UML diagrams (each class will have an associated stereotype label to denote its modelling interpretation). If the information model description is contained within the same document, this value is hot-linked to that description.
JSON Name The equivalent name of the JSON parameter name in the JSON payload.
JSON Type The JSON type - this will be either "Object" or "Array of Objects".
JSON Schema Data Type The data-type in the context of the JSON Schema. This is hot-linked to the corresponding description table in the binding.

toc | top

A2.2 UML/JSON Payload Class Mapping Table Definition

Table A2.2 provides the key to the descriptions of UML to JSON payload class mapping tables. This table shows the relationship between the two modelling components:

Table A2.2 The key to the descriptions of UML to JSON payload class mapping tables.
Feature Definition and Usage
Name The name of the UML class and the associated set of attributes and characteristics. The first row is used to describe the UML class. Camel-case is used for the attribute and characteristic names.
UML Artefact The UML Class will be denoted as "Root" or "Core" depending on the nature of the class. The list of attributes (mapped to JSON properties) and characteristics (mapped to JSON properties) will be identified as either "Attributes" or "Characteristics".
Data Type The data-type has several permitted values:
  • PT:... - denotes a primitive type with "..." replaced by the actual primitiveType name
  • DT:... (PT:...) - denotes a derived type of name "..." derived from the primitive type "PT:..."
  • [Enumeration(...)] - denotes an enumeration of name "..."
  • [List(...)] - denotes a list of the name "..."
  • [Union(...)] - denotes a union of one or more data-types with the name "..."
  • [Imported(...)] - denotes a class with the name "..." has been imported from another specification
  • "Container[...]" - denotes a class of stereotype "..."
Multiplicity The multiplicity of the child attribute/characteristic. The value for the Class itself is "-N/A-". The multiplicity values are:
  • "0..1" [optional; restricted]
  • "0..*" [optional; unrestricted]
  • "1" [mandatory; restricted]
  • "1..*" [mandatory; unrestricted]
The multiplicity will also indicate when groups of elements have variable multiplicity. In the case when a selection between groups of elements is used then this is denoted by "XOR" being displayed above the multiplicity for each of the grouped elements. Alongside the XOR is the multiplicity of the group as a whole.
JSON Name This is the equivalent name of the UML artefact in the JSON.
JSON Type The JSON data-type. For the Class this will have the value "Object". For the attributes the value is either "Property" or "Array of Properties" depending on the multiplicity. For the characteristics the value is either "Properties" or "Array of Properties" depending on the multiplicity.

toc | top

A2.3 UML/JSON Enumerated and Enumerated List Class Mapping Table Definition

Table A2.3 provides the key to the descriptions of UML to JSON enumerated and enumerated list class mapping tables.

Table A2.3 The key to the descriptions of UML to JSON enumerated and enumerated list class mapping tables.
Feature Definition and Usage
Enumeration Class Name or Enumeration List Class Name The name of the enumeration class or the enumeration list class.
Description The list of permitted tokens for the enumeration or list. Each value is separated by the "|" character.

toc | top

A2.4 UML/JSON Primitive Types Mapping Table Definition

Table A2.4 provides the key to the descriptions of UML to JSON primitive-type mapping tables.

Table A2.4 The key to the descriptions of UML to JSON primitive-type mapping tables.
Feature Definition and Usage
Primitive Type Name The name of the primitve type used in the specification. Links to the definition of the primitive types, if provided elsewhere in the document, are supplied.
Description The equivalent base data type that is used in the JSON binding.

toc | top

A3 OpenAPI Descriptions Explanations

These definitions are with respect to the OpenAPI version 2 [OAS, 14] and version 3 [OAS, 17] specifications.

A3.1 OpenAPI General Information Table Explanation

Tables A3.1a and A3.1b provide the key to the OpenAPI(2) and OpenAPI(3) general information respectively.

Table A3.1a The key to the tabular description of the OpenAPI(2) general information.
Category Definition and Usage
Swagger Version The version of the OpenAPI/Swagger specification for this OpenAPI description (this must be set as 2.0).
Specification Title The title of the specification being described.
Specification Version The version of the specification being described.
Description A short, human readable description of the specification being described using OpenAPI.
Terms of Service The Terms of Service for the API.
Contact The contact information for the API. For the IMS OpenAPI released files this will be set as "Lisa Mattson (IMS COO)". When used for an implementation this should be changed to the actual contact person.
License The URL for the associated IMS License for the use of this OpenAPI description.
Host The host (name or ip) serving the API. For the IMS OpenAPI(2) released files this will be set as "www.imsglobal.org". When used for an implementation this should be changed to the actual host.
Base Path The base path that MUST be used in the endpoint URLs (this is relative to the host).
Schemes The set of transfer protocols that are supported using this API. This is a comma separated list.
Consumes A list of MIME types the APIs can consume. This is a comma separated list.
Produces A list of MIME types the APIs can produce. This is a comma separated list.

Table A3.1b The key to the tabular description of the OpenAPI(3) general information.
Category Definition and Usage
OpenAPI Version The version of the OpenAPI specification for this OpenAPI description (this must be set as 3.0.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 URL for the associated Terms of Service for the use of this OpenAPI description.
Contact The contact information for the API. For the IMS OpenAPI released files this will be set as "Lisa Mattson (IMS COO)". When used for an implementation this should be changed to the actual contact person.
License The URL for the associated IMS License for the use of this OpenAPI description.
Servers The host (name or ip) serving the API. For the IMS OpenAPI(3) released files this will be set as "www.imsglobal.org/{base-path}". When used for an implementation this should be changed to the actual host.

toc | top

A3.2 OpenAPI Tags Table Explanation

Table A3.2 provides the key to the tabular description of the OpenAPI tags information (versions 2 and 3).

Table A3.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

A3.3 OpenAPI Security Table Explanation

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

Table A3.3 The key to the tabular description of the OpenAPI security information.
Category Definition and Usage
Security Label The label by which this mode is identified within the OpenAPI file.
Type The security mode supported. The permitted values are:
  • "basic" - use of basic authentication
  • "apikey" - use of an API key (in the header or as a query parameter)
  • "oauth2" - use of OAuth 2.0
Description A human readable description of the usage of this security scheme.
Flow The flow used by the OAuth2 security scheme. The permitted values in OAS2 are:
  • "implicit" - implicit grant type is used to obtain access tokens (see [RFC 6749] sub-section 4.2)
  • "password" - resource owner password credentials grant type (see [RFC 6749] sub-section 4.3)
  • "application" - client credentials grant type (see [RFC 6749] sub-section 4.4)
  • "accessCode" - authorization code grant type (see [RFC 6749] sub-section 4.1)

The permitted values in OAS3 are:
  • "clientCredentials" - client credentials grant type (see [RFC 6749] sub-section 4.4)
  • "authorizationCode" - authorization code grant type (see [RFC 6749] sub-section 4.1)
Token URL The token URL to be used for this flow. A value MUST be supplied for the "password", "application" and "accessMode" flows in OAuth 2.
Authorization URL The authorization URL to be used for this flow. A value MUST be supplied for the "accessMode" flows in OAuth 2.
Refresh URL The refresh URL to be used for this flow. A value MAY be supplied for the "accessMode" flows in OAuth 2.
Scopes The set of labels by which the global scope will be identified.
Global Scope The default identification of the security mode to be applied to an endpoint.

toc | top

A3.4 OpenAPI Paths Table Explanation

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

Table A3.4 The key to the tabular description of the OpenAPI paths information for an HTTP Verb.
Category Definition and Usage
Operation ID A unique identifier for the service operation. This is the name of the operation defined in the Behavioral Model.
Summary A human readable summary of the objective of the service operation.
Tags The tag which has been assigned to this operation. The tag is determined by the Interface under which the operation is defined in the Behavioral Model.
Security and Scopes The list of security modes and scopes that MUST be used enable access to this endpoint.
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 Placeholders The set of placeholders, and their meaning, in the URL path that will be replaced by the appropriate 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 payload (this is linked to the corresponding OpenAPI definition). If there is no payload then this will be denoted by "N/A";
  • Description - the description of the response including any specific status code values.

toc | top

A3.5 OpenAPI Definitions Table Explanation

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

Table A3.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 This diagram consists of two types of linked blocks. Straight link lines denote the set of unordered JSON properties. The block forms are:
  • ComplexType Block - a purple and grey shaded rectangle containing the name of the complexType and whether or not the addition of proprietary properties is permitted;
  • Property Blocks - blue and grey shaded rounded rectangles containing the name of the property, its data-type, and the multiplicity (denoted by a circle containing either the symbol "?", "1", "*" or "+" representing optional, required, optionally many or at least). Anything with a multiplicity of more than one is identified as an ARRAY[].
Type Hierachy The identification of the superclass upon which this type is based (the superclass is shown on the top line). This indicates the source of the inherited set of JSON properties (this line is only displayed when there is a type hierarchy).
Model The set of child properties. This is an ordered list of properties (as per the implied or actual sequence in the object) and accompanied by their multiplicity. In the case where the type is an enumeration or primitiveType then the value is "N/A". The value may also be "Empty" to indicate that no children are permitted. In some situations the value may be "None" denoting that there are no children defined e.g. for a base class from which other classes are derived and which may have children as part of the extension.
Source (OAS2) The equivalent JSON Schema (OpenAPI dialect) code for the declaration of the complex-type. This is the full declaration. See the corresponding OpenAPI 2 documentation [OAS, 14] for the description of the permitted contents for this declaration.
Source (OAS3) The equivalent JSON Schema (OpenAPI dialect) code for the declaration of the complex-type. This is the full declaration. See the corresponding OpenAPI 3 documentation [OAS, 17] for the description of the permitted contents for this declaration.

toc | top

Appendix B OpenAPI Listings

This Section is NORMATIVE.

B1 Listing of the OpenAPI (JSON) File

B1.1 OpenAPI 2.0 JSON Listing

The OpenAPI 2 (JSON) listing (based upon [OAS, 14]) is shown below (the OpenAPI JSON is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/openapi/onerosterv1p2gradebookservice_openapi2_v1p0.json).

{
    "swagger" : "2.0",
    "info" : {
        "version" : "1.2",
        "title" : "OneRoster Gradebook Service OpenAPI (JSON) Definition",
        "description" : "The OneRoster Gradebook service binding is available in REST/JSON. The model is based upon the IMS PSM modelling approach.",
        "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" : "Vice President of Operations, 1EdTech",
            "url" : "https://www.1edtech.org",
            "email" : "operations@1edtech.org"
        },
        "license" : {
            "name" : "1EdTech",
            "url" : "https://www.1edtech.org/license.html"
        }
    },
    "host" : "www.imsglobal.org",
    "basePath" : "/ims/oneroster/gradebook/v1p2",
    "schemes" : [ "http","https" ],
    "tags" : [
        {
            "name" : "AssessmentLineItemsManagement",
            "description" : "This enables the management of the assessment lineItems i.e. lineitems that are used to store results about tests/assessments and where these test/assessments are not aligned to a class."
        },
        {
            "name" : "AssessmentResultsManagement",
            "description" : "This enables the management of the assessment results i.e. results that are used to store scores for tests/assessments and where these test/assessments are not aligned to a class."
        },
        {
            "name" : "CategoriesManagement",
            "description" : "This enables the management of Categories i.e. collections of LineItems."
        },
        {
            "name" : "ClassesManagement",
            "description" : "This enables the management of Classes i.e. scheduled learning of courses, with respect to scoreScales. For this service this is the collection of operations that provide gradebook data in the context of a class identifier."
        },
        {
            "name" : "LineItemsManagement",
            "description" : "This enables the management of lineItems i.e. the set of results for the assessment of some activity."
        },
        {
            "name" : "ResultsManagement",
            "description" : "This enables the management of results i.e. the score allocated to a learner from the assessent of a learning activity. Results are collected as a set of 'lineItems'."
        },
        {
            "name" : "SchoolsManagement",
            "description" : "This enables the management of information about schools with respect to scoreScales. A school is a type of 'org'. For this service this is the collection of operations that provide gradebook data in the context of a school identifier."
        },
        {
            "name" : "ScoreScalesManagement",
            "description" : "This enables the management of scoreScales i.e. the set of scales for the results and lineItems."
        }
    ],
    "securityDefinitions" : {
        "OAuth2CC" : {
            "type" : "oauth2",
            "description" : "OAuth 2 Client Credentials (as per the requirements in the IMS Security Framework) is to be used.",
            "flow" : "application",
            "tokenUrl" : "https://www.imsglobal.org/oauth2token",
            "scopes" : {
                "https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.delete" : "Access to the set of assessment operations that permit an object to be deleted.",
                "https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.readonly" : "Access to ALL of the assessment read operations.",
                "https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.createput" : "Access to all of the write assessment operations that permit the creation of a new single object in which the 'sourcedId' is supplied.",
                "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.delete" : "Access to the set of gradebook operations that permit an object to be deleted.",
                "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly" : "Access to ALL of the gradebook read operations.",
                "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook-core.readonly" : "Access to the set of core read operations i.e. reading of all objects or a single object. ",
                "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createpost" : "Access to the set of write operations that permit the creation of objects where the server allocates the 'sourcedIds'.",
                "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createput" : "Access to all of the gradebook write operations that permit the creation of a new single object in which the 'sourcedId' is supplied."
            }
        }
    },
    "paths" : {
        "/assessmentLineItems" : {
            "get" : {
                "operationId" : "getAllAssessmentLineItems",
                "summary" : "The REST read request message for the getAllAssessmentLineItems() API call.",
                "tags" : [ "AssessmentLineItemsManagement" ],
                "description" : "Get all of the Assessment Line Items on the service provider.",
                "parameters" : [
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 100,
                        "minimum" : 1,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 0,
                        "minimum" : 0,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "enum" : [ "asc","desc" ],
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/AssessmentLineItemSetDType"
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "type" : "integer"
                            }
                        }
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/assessmentLineItems/{sourcedId}" : {
            "get" : {
                "operationId" : "getAssessmentLineItem",
                "summary" : "The REST read request message for the getAssessmentLineItem() API call.",
                "tags" : [ "AssessmentLineItemsManagement" ],
                "description" : "Get a specific Assessment LineItem on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.",
                "parameters" : [
                    {
                        "name" : "sourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for this assessment lineItem.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/SingleAssessmentLineItemDType"
                        }
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    }
                }
            },
            "delete" : {
                "operationId" : "deleteAssessmentLineItem",
                "summary" : "The REST delete request message for the deleteAssessmentLineItem() API call.",
                "tags" : [ "AssessmentLineItemsManagement" ],
                "description" : "Delete a specific Assessment LineItem on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.",
                "parameters" : [
                    {
                        "name" : "sourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the assessment lineItem to be deleted.",
                        "required" : true,
                        "type" : "string"
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.delete"
                        ]
                    }
                ],
                "responses" : {
                    "204" : {
                        "description" : "The object has been successfully deleted. "
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    }
                }
            },
            "put" : {
                "operationId" : "putAssessmentLineItem",
                "summary" : "The REST create request message for the putAssessmentLineItem() API call.",
                "tags" : [ "AssessmentLineItemsManagement" ],
                "description" : "To create a new Assessment LineItem. The associated sourcedId for this new record is supplied by the requesting system.",
                "parameters" : [
                    {
                        "name" : "sourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, to be allocated to this new assessment lineItem.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "assessmentLineItem",
                        "in" : "body",
                        "description" : "The assessment lineItem data that is to be stored.",
                        "required" : true,
                        "schema" : {
                            "$ref" : "#/definitions/SingleAssessmentLineItemDType"
                        }
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.createput"
                        ]
                    }
                ],
                "responses" : {
                    "201" : {
                        "description" : "The object has been successfully stored in the Service Provider repository."
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/assessmentResults" : {
            "get" : {
                "operationId" : "getAllAssessmentResults",
                "summary" : "The REST read request message for the getAllAssessmentResults() API call.",
                "tags" : [ "AssessmentResultsManagement" ],
                "description" : "Get all of the Assessment Results on the service provider.",
                "parameters" : [
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 100,
                        "minimum" : 1,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 0,
                        "minimum" : 0,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "enum" : [ "asc","desc" ],
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/AssessmentResultSetDType"
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "type" : "integer"
                            }
                        }
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/assessmentResults/{sourcedId}" : {
            "get" : {
                "operationId" : "getAssessmentResult",
                "summary" : "The REST read request message for the getAssessmentResult() API call.",
                "tags" : [ "AssessmentResultsManagement" ],
                "description" : "Get a specific Assessment Result on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.",
                "parameters" : [
                    {
                        "name" : "sourcedId",
                        "in" : "path",
                        "description" : "Tthe unique identifier, GUID, for this assessment result.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/SingleAssessmentResultDType"
                        }
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    }
                }
            },
            "delete" : {
                "operationId" : "deleteAssessmentResult",
                "summary" : "The REST delete request message for the deleteAssessmentResult() API call.",
                "tags" : [ "AssessmentResultsManagement" ],
                "description" : "Delete a specific Assessment Result on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.",
                "parameters" : [
                    {
                        "name" : "sourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the assessment result to be deleted.",
                        "required" : true,
                        "type" : "string"
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.delete"
                        ]
                    }
                ],
                "responses" : {
                    "204" : {
                        "description" : "The object has been successfully deleted. "
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    }
                }
            },
            "put" : {
                "operationId" : "putAssessmentResult",
                "summary" : "The REST create request message for the putAssessmentResult() API call.",
                "tags" : [ "AssessmentResultsManagement" ],
                "description" : "To create a new Assessment Result. The associated sourcedId for this new record is supplied by the requesting system.",
                "parameters" : [
                    {
                        "name" : "sourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, to be allocated to this new assessment result.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "assessmentResult",
                        "in" : "body",
                        "description" : "The assessment result data that is to be stored.",
                        "required" : true,
                        "schema" : {
                            "$ref" : "#/definitions/SingleAssessmentResultDType"
                        }
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.createput"
                        ]
                    }
                ],
                "responses" : {
                    "201" : {
                        "description" : "The object has been successfully stored in the Service Provider repository."
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/categories" : {
            "get" : {
                "operationId" : "getAllCategories",
                "summary" : "The REST read request message for the getAllCategories() API call.",
                "tags" : [ "CategoriesManagement" ],
                "description" : "Get all of the lineItem categories on the service provider.",
                "parameters" : [
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 100,
                        "minimum" : 1,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 0,
                        "minimum" : 0,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "enum" : [ "asc","desc" ],
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook-core.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/CategoriesSetDType"
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "type" : "integer"
                            }
                        }
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/categories/{sourcedId}" : {
            "get" : {
                "operationId" : "getCategory",
                "summary" : "The REST read request message for the getCategory() API call.",
                "tags" : [ "CategoriesManagement" ],
                "description" : "Get a specific lineItem category on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.",
                "parameters" : [
                    {
                        "name" : "sourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for this category.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook-core.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/SingleCategoryDType"
                        }
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    }
                }
            },
            "delete" : {
                "operationId" : "deleteCategory",
                "summary" : "The REST delete request message for the deleteCategory() API call.",
                "tags" : [ "CategoriesManagement" ],
                "description" : "Delete a specific lineItem category on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.",
                "parameters" : [
                    {
                        "name" : "sourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the category to be deleted.",
                        "required" : true,
                        "type" : "string"
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.delete"
                        ]
                    }
                ],
                "responses" : {
                    "204" : {
                        "description" : "The object has been successfully deleted. "
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    }
                }
            },
            "put" : {
                "operationId" : "putCategory",
                "summary" : "The REST create request message for the putCategory() API call.",
                "tags" : [ "CategoriesManagement" ],
                "description" : "To create a new lineItem category. The associated sourcedId for this new record is supplied by the requesting system.",
                "parameters" : [
                    {
                        "name" : "sourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, to be allocated to this new category.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "category",
                        "in" : "body",
                        "description" : "The category data that is to be stored.",
                        "required" : true,
                        "schema" : {
                            "$ref" : "#/definitions/SingleCategoryDType"
                        }
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createput"
                        ]
                    }
                ],
                "responses" : {
                    "201" : {
                        "description" : "The object has been successfully stored in the Service Provider repository."
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/classes/{classSourcedId}/academicSessions/{academicSessionSourcedId}/results" : {
            "post" : {
                "operationId" : "postResultsForAcademicSessionForClass",
                "summary" : "The REST createbp request message for the postResultsForAcademicSessionForClass() API call.",
                "tags" : [ "ClassesManagement" ],
                "description" : "To create a set of results for a specific academic session and specific class. The responding system must return the set of sourcedIds that have been allocated to the newly created result records. If the corresponding class or academic session cannot be located then an 'unknown' error code is returned.",
                "parameters" : [
                    {
                        "name" : "classSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the class.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "academicSessionSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the academic session.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "results",
                        "in" : "body",
                        "description" : "The set of result records to be created in response to this request. This includes an initial assignment of sourcedId so that the mapping between this and the actually assigned sourcedId can be reported. ",
                        "required" : true,
                        "schema" : {
                            "$ref" : "#/definitions/ResultSetDType"
                        }
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createpost"
                        ]
                    }
                ],
                "responses" : {
                    "201" : {
                        "description" : "The object has been successfully stored in the Service Provider repository.",
                        "schema" : {
                            "$ref" : "#/definitions/GUIDPairSetDType"
                        }
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/classes/{classSourcedId}/categories" : {
            "get" : {
                "operationId" : "getCategoriesForClass",
                "summary" : "The REST read request message for the getCategoriesForClass() API call.",
                "tags" : [ "ClassesManagement" ],
                "description" : "Get the set of categories on the service provider for a specific class. If the corresponding class cannot be located then an 'unknown' error code is returned.",
                "parameters" : [
                    {
                        "name" : "classSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the class.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 100,
                        "minimum" : 1,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 0,
                        "minimum" : 0,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "enum" : [ "asc","desc" ],
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/CategoriesSetDType"
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "type" : "integer"
                            }
                        }
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/classes/{classSourcedId}/lineItems" : {
            "get" : {
                "operationId" : "getLineItemsForClass",
                "summary" : "The REST read request message for the getLineItemsForClass() API call.",
                "tags" : [ "ClassesManagement" ],
                "description" : "Get the set of lineItems on the service provider for a specific class. If the corresponding class cannot be located then an 'unknown' error code is returned.",
                "parameters" : [
                    {
                        "name" : "classSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the class.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 100,
                        "minimum" : 1,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 0,
                        "minimum" : 0,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "enum" : [ "asc","desc" ],
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/LineItemSetDType"
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "type" : "integer"
                            }
                        }
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    }
                }
            },
            "post" : {
                "operationId" : "postLineItemsForClass",
                "summary" : "The REST createbp request message for the postLineItemsForClass() API call.",
                "tags" : [ "ClassesManagement" ],
                "description" : "To create a set of lineItems for a specific class. The responding system must return the set of sourcedIds that have been allocated to the newly created lineItem records. If the corresponding class cannot be located then an 'unknown' error code is returned.",
                "parameters" : [
                    {
                        "name" : "classSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the class.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "lineItems",
                        "in" : "body",
                        "description" : "The set of lineItem records to be created in response to this request. This includes an initial assignment of sourcedId so that the mapping between this and the actually assigned sourcedId can be reported. ",
                        "required" : true,
                        "schema" : {
                            "$ref" : "#/definitions/LineItemSetDType"
                        }
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createpost"
                        ]
                    }
                ],
                "responses" : {
                    "201" : {
                        "description" : "The object has been successfully stored in the Service Provider repository.",
                        "schema" : {
                            "$ref" : "#/definitions/GUIDPairSetDType"
                        }
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/classes/{classSourcedId}/lineItems/{lineItemSourcedId}/results" : {
            "get" : {
                "operationId" : "getResultsForLineItemForClass",
                "summary" : "The REST read request message for the getResultsForLineItemForClass() API call.",
                "tags" : [ "ClassesManagement" ],
                "description" : "Get the set of results on the service provider for a specific lineItem and for a specific class. If the corresponding class cannot be located then an 'unknown' error code is returned.",
                "parameters" : [
                    {
                        "name" : "classSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the class.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "lineItemSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the lineItem.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 100,
                        "minimum" : 1,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 0,
                        "minimum" : 0,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "enum" : [ "asc","desc" ],
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/ResultSetDType"
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "type" : "integer"
                            }
                        }
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/classes/{classSourcedId}/results" : {
            "get" : {
                "operationId" : "getResultsForClass",
                "summary" : "The REST read request message for the getResultsForClass() API call.",
                "tags" : [ "ClassesManagement" ],
                "description" : "Get the set of results on the service provider for a specific class. If the corresponding class cannot be located then an 'unknown' error code is returned.",
                "parameters" : [
                    {
                        "name" : "classSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the class.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 100,
                        "minimum" : 1,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 0,
                        "minimum" : 0,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "enum" : [ "asc","desc" ],
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/ResultSetDType"
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "type" : "integer"
                            }
                        }
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/classes/{classSourcedId}/scoreScales" : {
            "get" : {
                "operationId" : "getScoreScalesForClass",
                "summary" : "The REST read request message for the getScoreScalesForClass() API call.",
                "tags" : [ "ClassesManagement" ],
                "description" : "Get the set of scoreScales on the service provider for a specific class. If the corresponding class cannot be located then an 'unknown' error code is returned.",
                "parameters" : [
                    {
                        "name" : "classSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the class.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 100,
                        "minimum" : 1,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 0,
                        "minimum" : 0,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "enum" : [ "asc","desc" ],
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/ScoreScaleSetDType"
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "type" : "integer"
                            }
                        }
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/classes/{classSourcedId}/students/{studentSourcedId}/results" : {
            "get" : {
                "operationId" : "getResultsForStudentForClass",
                "summary" : "The REST read request message for the getResultsForStudentForClass() API call.",
                "tags" : [ "ClassesManagement" ],
                "description" : "Get the set of results on the service provider for a specific student and for a specific class. If the corresponding class cannot be located then an 'unknown' error code is returned.",
                "parameters" : [
                    {
                        "name" : "classSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the class.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "studentSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the student.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 100,
                        "minimum" : 1,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 0,
                        "minimum" : 0,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "enum" : [ "asc","desc" ],
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/ResultSetDType"
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "type" : "integer"
                            }
                        }
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/lineItems" : {
            "get" : {
                "operationId" : "getAllLineItems",
                "summary" : "The REST read request message for the getAllLineItems() API call.",
                "tags" : [ "LineItemsManagement" ],
                "description" : "Get all of the Line Items on the service provider.",
                "parameters" : [
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 100,
                        "minimum" : 1,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 0,
                        "minimum" : 0,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "enum" : [ "asc","desc" ],
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook-core.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/LineItemSetDType"
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "type" : "integer"
                            }
                        }
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/lineItems/{lineItemSourcedId}/results" : {
            "post" : {
                "operationId" : "postResultsForLineItem",
                "summary" : "The REST createbp request message for the postResultsForLineItem() API call.",
                "tags" : [ "LineItemsManagement" ],
                "description" : "To create a set of results for a specific lineItem. The responding system must return the set of sourcedIds that have been allocated to the newly created result records.",
                "parameters" : [
                    {
                        "name" : "lineItemSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the lineItem.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "results",
                        "in" : "body",
                        "description" : "The set of result records to be created in response to this request. This includes an initial assignment of sourcedId so that the mapping between this and the actually assigned sourcedId can be reported. ",
                        "required" : true,
                        "schema" : {
                            "$ref" : "#/definitions/ResultSetDType"
                        }
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createpost"
                        ]
                    }
                ],
                "responses" : {
                    "201" : {
                        "description" : "The object has been successfully stored in the Service Provider repository.",
                        "schema" : {
                            "$ref" : "#/definitions/GUIDPairSetDType"
                        }
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/lineItems/{sourcedId}" : {
            "get" : {
                "operationId" : "getLineItem",
                "summary" : "The REST read request message for the getLineItem() API call.",
                "tags" : [ "LineItemsManagement" ],
                "description" : "Get a specific LineItem on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.",
                "parameters" : [
                    {
                        "name" : "sourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for this lineItem.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook-core.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/SingleLineItemDType"
                        }
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    }
                }
            },
            "delete" : {
                "operationId" : "deleteLineItem",
                "summary" : "The REST delete request message for the deleteLineItem() API call.",
                "tags" : [ "LineItemsManagement" ],
                "description" : "Delete a specific lineItem on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.",
                "parameters" : [
                    {
                        "name" : "sourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the lineItem to be deleted.",
                        "required" : true,
                        "type" : "string"
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.delete"
                        ]
                    }
                ],
                "responses" : {
                    "204" : {
                        "description" : "The object has been successfully deleted. "
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    }
                }
            },
            "put" : {
                "operationId" : "putLineItem",
                "summary" : "The REST create request message for the putLineItem() API call.",
                "tags" : [ "LineItemsManagement" ],
                "description" : "To create a new lineItem. The associated sourcedId for this new record is supplied by the requesting system.",
                "parameters" : [
                    {
                        "name" : "sourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, to be allocated to this new lineItem.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "lineItem",
                        "in" : "body",
                        "description" : "The lineItem data that is to be stored.",
                        "required" : true,
                        "schema" : {
                            "$ref" : "#/definitions/SingleLineItemDType"
                        }
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createput"
                        ]
                    }
                ],
                "responses" : {
                    "201" : {
                        "description" : "The object has been successfully stored in the Service Provider repository."
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/results" : {
            "get" : {
                "operationId" : "getAllResults",
                "summary" : "The REST read request message for the getAllResults() API call.",
                "tags" : [ "ResultsManagement" ],
                "description" : "Get all of the results on the service provider.",
                "parameters" : [
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 100,
                        "minimum" : 1,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 0,
                        "minimum" : 0,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "enum" : [ "asc","desc" ],
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook-core.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/ResultSetDType"
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "type" : "integer"
                            }
                        }
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/results/{sourcedId}" : {
            "get" : {
                "operationId" : "getResult",
                "summary" : "The REST read request message for the getResult() API call.",
                "tags" : [ "ResultsManagement" ],
                "description" : "Get a specific result on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.",
                "parameters" : [
                    {
                        "name" : "sourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for this result.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook-core.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/SingleResultDType"
                        }
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    }
                }
            },
            "delete" : {
                "operationId" : "deleteResult",
                "summary" : "The REST delete request message for the deleteResult() API call.",
                "tags" : [ "ResultsManagement" ],
                "description" : "Delete a specific result on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.",
                "parameters" : [
                    {
                        "name" : "sourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the result to be deleted.",
                        "required" : true,
                        "type" : "string"
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.delete"
                        ]
                    }
                ],
                "responses" : {
                    "204" : {
                        "description" : "The object has been successfully deleted. "
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    }
                }
            },
            "put" : {
                "operationId" : "putResult",
                "summary" : "The REST create request message for the putResult() API call.",
                "tags" : [ "ResultsManagement" ],
                "description" : "To create a new result. The associated sourcedId for this new record is supplied by the requesting system.",
                "parameters" : [
                    {
                        "name" : "sourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, to be allocated to this new result.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "result",
                        "in" : "body",
                        "description" : "The result data that is to be stored.",
                        "required" : true,
                        "schema" : {
                            "$ref" : "#/definitions/SingleResultDType"
                        }
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createput"
                        ]
                    }
                ],
                "responses" : {
                    "201" : {
                        "description" : "The object has been successfully stored in the Service Provider repository."
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/schools/{schoolSourcedId}/lineItems" : {
            "post" : {
                "operationId" : "postLineItemsForSchool",
                "summary" : "The REST createbp request message for the postLineItemsForSchool() API call.",
                "tags" : [ "SchoolsManagement" ],
                "description" : "To create a set of lineItems for a specific school.  The responding system must return the set of sourcedIds that have been allocated to the newly created lineItem records.",
                "parameters" : [
                    {
                        "name" : "schoolSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the school.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "lineItems",
                        "in" : "body",
                        "description" : "The set of lineItem records to be created in response to this request. This includes an initial assignment of sourcedId so that the mapping between this and the actually assigned sourcedId can be reported. ",
                        "required" : true,
                        "schema" : {
                            "$ref" : "#/definitions/LineItemSetDType"
                        }
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createpost"
                        ]
                    }
                ],
                "responses" : {
                    "201" : {
                        "description" : "The object has been successfully stored in the Service Provider repository.",
                        "schema" : {
                            "$ref" : "#/definitions/GUIDPairSetDType"
                        }
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/schools/{schoolSourcedId}/scoreScales" : {
            "get" : {
                "operationId" : "getScoreScalesForSchool",
                "summary" : "The REST read request message for the getScoreScalesForSchool() API call.",
                "tags" : [ "SchoolsManagement" ],
                "description" : "Get the set of scoreScales on the service provider for a specific school. If the corresponding school cannot be located then an 'unknown' error code is returned.",
                "parameters" : [
                    {
                        "name" : "schoolSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the school.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 100,
                        "minimum" : 1,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 0,
                        "minimum" : 0,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "enum" : [ "asc","desc" ],
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/ScoreScaleSetDType"
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "type" : "integer"
                            }
                        }
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/scoreScales" : {
            "get" : {
                "operationId" : "getAllScoreScales",
                "summary" : "The REST read request message for the getAllScoreScales() API call.",
                "tags" : [ "ScoreScalesManagement" ],
                "description" : "Get all of the ScoreScales on the service provider.",
                "parameters" : [
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 100,
                        "minimum" : 1,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 0,
                        "minimum" : 0,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "enum" : [ "asc","desc" ],
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook-core.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/ScoreScaleSetDType"
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "type" : "integer"
                            }
                        }
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/scoreScales/{sourcedId}" : {
            "get" : {
                "operationId" : "getScoreScale",
                "summary" : "The REST read request message for the getScoreScale() API call.",
                "tags" : [ "ScoreScalesManagement" ],
                "description" : "Get a specific scoreScale on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.",
                "parameters" : [
                    {
                        "name" : "sourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for this scoreScale.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook-core.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/SingleScoreScaleDType"
                        }
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    }
                }
            },
            "delete" : {
                "operationId" : "deleteScoreScale",
                "summary" : "The REST delete request message for the deleteScoreScale() API call.",
                "tags" : [ "ScoreScalesManagement" ],
                "description" : "Delete a specific scoreScale on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.",
                "parameters" : [
                    {
                        "name" : "sourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the scoreScale to be deleted.",
                        "required" : true,
                        "type" : "string"
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.delete"
                        ]
                    }
                ],
                "responses" : {
                    "204" : {
                        "description" : "The object has been successfully deleted. "
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    }
                }
            },
            "put" : {
                "operationId" : "putScoreScale",
                "summary" : "The REST create request message for the putScoreScale() API call.",
                "tags" : [ "ScoreScalesManagement" ],
                "description" : "To create a new scoreScale. The associated sourcedId for this new record is supplied by the requesting system.",
                "parameters" : [
                    {
                        "name" : "sourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, to be allocated to this new scoreScale.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "scoreScale",
                        "in" : "body",
                        "description" : "The scoreScale data that is to be stored.",
                        "required" : true,
                        "schema" : {
                            "$ref" : "#/definitions/SingleScoreScaleDType"
                        }
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createput"
                        ]
                    }
                ],
                "responses" : {
                    "201" : {
                        "description" : "The object has been successfully stored in the Service Provider repository."
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    }
                }
            }
        }
    },
    "definitions" : {
        "AcadSessionGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Academic Session' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. an 'academicSession'.",
                    "type" : "string",
                    "enum" : [ "academicSession" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "AssessmentLineItemDType" : {
            "description" : "This is the container for the definition of an assessment lineItem. An assessment lineItem is a collection of results for a set of students who are completing an assignment.",
            "type" : "object",
            "properties" : {
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                    "type" : "string"
                },
                "status" : {
                    "description" : "All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                    "type" : "string",
                    "enum" : [ "active","tobedeleted" ]
                },
                "dateLastModified" : {
                    "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                    "type" : "string",
                    "format" : "date-time"
                },
                "metadata" : {
                    "$ref" : "#/definitions/MetadataDType"
                },
                "title" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The title, human readable, for the assessment lineItem.  This should allow the assessment lineItem to be distinguished from its peer assessment lineItems.",
                    "type" : "string"
                },
                "description" : {
                    "description" : "Model Primitive Datatype = String. A human readable description of the usage of the assessment lineItem.",
                    "type" : "string"
                },
                "class" : {
                    "$ref" : "#/definitions/ClassGUIDRefDType"
                },
                "parentAssessmentLineItem" : {
                    "$ref" : "#/definitions/AssessmentLineItemGUIDRefDType"
                },
                "scoreScale" : {
                    "$ref" : "#/definitions/ScoreScaleGUIDRefDType"
                },
                "resultValueMin" : {
                    "description" : "Model Primitive Datatype = Float. The minimum value (numeric) that can be assigned to the score attribute in a result. The score scale mapping should be used to map to other scores.",
                    "type" : "number",
                    "format" : "float"
                },
                "resultValueMax" : {
                    "description" : "Model Primitive Datatype = Float. The maximum value (numeric) that can be assigned to the score attribute in a result. The score scale mapping should be used to map to other scores.",
                    "type" : "number",
                    "format" : "float"
                },
                "learningObjectiveSet" : {
                    "description" : "The set of identifiers for the learning objectives to which this assessment is aligned. Any number groups of learning objectives can be assigned.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/LearningObjectiveSetDType"
                    }
                }
            },
            "required" : [ "sourcedId","status","dateLastModified","title" ],
            "additionalProperties" : false
        },
        "AssessmentLineItemGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'AssessmentLineItem' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. an 'assessmentLineItem'.",
                    "type" : "string",
                    "enum" : [ "assessmentLineItem" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "AssessmentLineItemSetDType" : {
            "description" : "This is the container for a collection of assessment lineItem instances for a message payload. This may be empty if no instances are found that sustain the applied query constraints. The order is not significant.",
            "type" : "object",
            "properties" : {
                "assessmentLineItems" : {
                    "description" : "The collection of assessment lineItem instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/AssessmentLineItemDType"
                    }
                }
            },
            "additionalProperties" : false
        },
        "AssessmentResultDType" : {
            "description" : "This is the container for the AssessmentResult record.  An assessment result consists of the assigned score plus the context for that score.",
            "type" : "object",
            "properties" : {
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                    "type" : "string"
                },
                "status" : {
                    "description" : "All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                    "type" : "string",
                    "enum" : [ "active","tobedeleted" ]
                },
                "dateLastModified" : {
                    "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                    "type" : "string",
                    "format" : "date-time"
                },
                "metadata" : {
                    "$ref" : "#/definitions/MetadataDType"
                },
                "assessmentLineItem" : {
                    "$ref" : "#/definitions/AssessmentLineItemGUIDRefDType"
                },
                "student" : {
                    "$ref" : "#/definitions/UserGUIDRefDType"
                },
                "score" : {
                    "description" : "Model Primitive Datatype = Float. The score for the result. If a scoreScale is assigned then the value must align with the scale.",
                    "type" : "number",
                    "format" : "float"
                },
                "textScore" : {
                    "description" : "Model Primitive Datatype = NormalizedString. An optional non-numeric score value. If a scoreScale is assigned then the value must align with the scale.",
                    "type" : "string"
                },
                "scoreDate" : {
                    "description" : "Model Primitive Datatype = Date. The date at which the score is assigned or there is an update to the result e.g. change in the 'scoreStatus'.. The format is YYYY-MM-DD as defined in [ISO 8601].",
                    "type" : "string",
                    "format" : "date"
                },
                "scoreScale" : {
                    "$ref" : "#/definitions/ScoreScaleGUIDRefDType"
                },
                "scorePercentile" : {
                    "description" : "Model Primitive Datatype = Float. The percentile rank of a score is the percentage of scores in its frequency distribution that are equal to or lower than it.",
                    "type" : "number",
                    "format" : "float"
                },
                "scoreStatus" : {
                    "description" : "The status of the score. The value is from an extensible enumerated vocabulary.",
                    "type" : "string"
                },
                "comment" : {
                    "description" : "Model Primitive Datatype = String. A human readable comment about the score.",
                    "type" : "string"
                },
                "learningObjectiveSet" : {
                    "description" : "The set of identifiers for the learning objectives to which this result is aligned. Any number groups of learning objectives can be assigned.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/LearningObjectiveScoreSetDType"
                    }
                },
                "inProgress" : {
                    "description" : "This is used to indicate that the associated work activity has been assigned and student's work product is not yet expected to have been submitted.",
                    "type" : "string",
                    "enum" : [ "true","false" ]
                },
                "incomplete" : {
                    "description" : "This is used to indicate that the student's work product has been submitted but it is deemed incomplete by the teacher.",
                    "type" : "string",
                    "enum" : [ "true","false" ]
                },
                "late" : {
                    "description" : "This is used to indicate that the student's work product is either past due or it has been submitted past the due date. The score on this result may be impacted as as result of this flag.",
                    "type" : "string",
                    "enum" : [ "true","false" ]
                },
                "missing" : {
                    "description" : "This is used to indicate that the student's work product as not been submitted.",
                    "type" : "string",
                    "enum" : [ "true","false" ]
                }
            },
            "required" : [ "sourcedId","status","dateLastModified","assessmentLineItem","student","scoreDate","scoreStatus" ],
            "additionalProperties" : false
        },
        "AssessmentResultSetDType" : {
            "description" : "This is the container for a collection of assessment result instances for a message payload. This may be empty if no instances are found that sustain the applied query constraints. The order is not significant.",
            "type" : "object",
            "properties" : {
                "assessmentResults" : {
                    "description" : "The collection of assessment result instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/AssessmentResultDType"
                    }
                }
            },
            "additionalProperties" : false
        },
        "CategoriesSetDType" : {
            "description" : "This is the container for a collection of category instances for a message payload. This may be empty if no instances are found that sustain the applied query constraints. The order is not significant.",
            "type" : "object",
            "properties" : {
                "categories" : {
                    "description" : "The collection of category instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/CategoryDType"
                    }
                }
            },
            "additionalProperties" : false
        },
        "CategoryDType" : {
            "description" : "A Category is the name given to a grouping of line items (line items being equivalent to assignments which students will complete). ",
            "type" : "object",
            "properties" : {
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                    "type" : "string"
                },
                "status" : {
                    "description" : "All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                    "type" : "string",
                    "enum" : [ "active","tobedeleted" ]
                },
                "dateLastModified" : {
                    "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                    "type" : "string",
                    "format" : "date-time"
                },
                "metadata" : {
                    "$ref" : "#/definitions/MetadataDType"
                },
                "title" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The human readable title for the category.",
                    "type" : "string"
                },
                "weight" : {
                    "description" : "Model Primitive Datatype = Float. Total weight of this grading category in calculation of the course final score.",
                    "type" : "number",
                    "format" : "float"
                }
            },
            "required" : [ "sourcedId","status","dateLastModified","title" ],
            "additionalProperties" : false
        },
        "CategoryGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Category' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'category'.",
                    "type" : "string",
                    "enum" : [ "category" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "ClassGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Class' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'class'.",
                    "type" : "string",
                    "enum" : [ "class" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "CourseGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Course' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'course'.",
                    "type" : "string",
                    "enum" : [ "course" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "GUIDPairDType" : {
            "description" : "The container for the mapping between the supplied (assigned by the requesting system) and allocated (assigned by the responding system) sourcedIds i.e. GUIDs.",
            "type" : "object",
            "properties" : {
                "suppliedSourcedId" : {
                    "description" : "Model Primitive Datatype = String. The temporary sourcedId that has been allocated by the requesting system. This sourcedId is used to enable identification of the original record for which the new sourcedId has been allocated at the service provider.",
                    "type" : "string"
                },
                "allocatedSourcedId" : {
                    "description" : "Model Primitive Datatype = String. The sourcedId that has been allocated by the system on which the new record has been created.",
                    "type" : "string"
                }
            },
            "required" : [ "suppliedSourcedId","allocatedSourcedId" ],
            "additionalProperties" : false
        },
        "GUIDPairSetDType" : {
            "description" : "The container for the set of sourcedId pairs. This is used to provide the mapping between a set of original/new values allocated to a set of sourcedIds.",
            "type" : "object",
            "properties" : {
                "sourcedIdPairs" : {
                    "description" : "The set of sourcedId pairs. The order is not significant as each pair contains the information between the original/new values.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/GUIDPairDType"
                    }
                }
            },
            "additionalProperties" : false
        },
        "LearningObjectiveResultsDType" : {
            "description" : "This is the container for a learning objective identifier. This also allows a mastery score to be aligned with the learning objective.",
            "type" : "object",
            "properties" : {
                "learningObjectiveId" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The unique identifier for the associated learning objective. If this is a CASE identifier it MUST be a valid UUID.",
                    "type" : "string"
                },
                "score" : {
                    "description" : "Model Primitive Datatype = Float. The optional mastery score supplied as a numeric value. ",
                    "type" : "number",
                    "format" : "float"
                },
                "textScore" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The optional mastery score supplied in a non-numeric form. ",
                    "type" : "string"
                }
            },
            "required" : [ "learningObjectiveId" ],
            "additionalProperties" : false
        },
        "LearningObjectiveScoreSetDType" : {
            "description" : "This is the container for the set of learning objective identifiers that are from a single source responsible for creating those identifiers. This also allows a mastery score to be aligned with a learning objective.",
            "type" : "object",
            "properties" : {
                "source" : {
                    "description" : "The source responsible for creating the learning objective identifiers. The permitted values are from an extensible vocabulary.",
                    "type" : "string"
                },
                "learningObjectiveResults" : {
                    "description" : "The set of unique identifiers for the associated learning objectives (these may have alignment with a mastery score). If these are CASE identifiers they MUST be valid UUIDs.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/LearningObjectiveResultsDType"
                    }
                }
            },
            "required" : [ "source","learningObjectiveResults" ],
            "additionalProperties" : false
        },
        "LearningObjectiveSetDType" : {
            "description" : "This is the container for the set of learning objective identifiers that are from a single source responsible for creating those identifiers.",
            "type" : "object",
            "properties" : {
                "source" : {
                    "description" : "The source responsible for creating the learning objective identifiers. The permitted values are from an extensible vocabulary.",
                    "type" : "string"
                },
                "learningObjectiveIds" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The set of unique identifiers for the associated learning objectives. If these are CASE identifiers they MUST be valid UUIDs.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "type" : "string"
                    }
                }
            },
            "required" : [ "source","learningObjectiveIds" ],
            "additionalProperties" : false
        },
        "LineItemDType" : {
            "description" : "This is the container for the definition of a lineItem. A lineItem is a collection of results for a set of students who are completing an assignment as part of a class at a school.",
            "type" : "object",
            "properties" : {
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                    "type" : "string"
                },
                "status" : {
                    "description" : "All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                    "type" : "string",
                    "enum" : [ "active","tobedeleted" ]
                },
                "dateLastModified" : {
                    "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                    "type" : "string",
                    "format" : "date-time"
                },
                "metadata" : {
                    "$ref" : "#/definitions/MetadataDType"
                },
                "title" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The title, human readable, for the lineItem.  This should allow the lineItem to be distinguished from its peer lineItems.",
                    "type" : "string"
                },
                "description" : {
                    "description" : "Model Primitive Datatype = String. A human readable description of the usage of the lineItem.",
                    "type" : "string"
                },
                "assignDate" : {
                    "description" : "Model Primitive Datatype = DateTime. The date/time the activity being addressed by the lineItem was assigned to the student. This has a format as defined in [ISO 8601].",
                    "type" : "string",
                    "format" : "date-time"
                },
                "dueDate" : {
                    "description" : "Model Primitive Datatype = DateTime. The date/time by which the assignment must be completed and submitted. This has the dateTime format as defined in [ISO 8601].",
                    "type" : "string",
                    "format" : "date-time"
                },
                "class" : {
                    "$ref" : "#/definitions/ClassGUIDRefDType"
                },
                "school" : {
                    "$ref" : "#/definitions/OrgGUIDRefDType"
                },
                "category" : {
                    "$ref" : "#/definitions/CategoryGUIDRefDType"
                },
                "gradingPeriod" : {
                    "$ref" : "#/definitions/AcadSessionGUIDRefDType"
                },
                "academicSession" : {
                    "$ref" : "#/definitions/AcadSessionGUIDRefDType"
                },
                "scoreScale" : {
                    "$ref" : "#/definitions/ScoreScaleGUIDRefDType"
                },
                "resultValueMin" : {
                    "description" : "Model Primitive Datatype = Float. The minimum value (numeric) that can be assigned to the score attribute in a result. The score scale mapping should be used to map to other scores.",
                    "type" : "number",
                    "format" : "float"
                },
                "resultValueMax" : {
                    "description" : "Model Primitive Datatype = Float. The maximum value (numeric) that can be assigned to the score attribute in a result. The score scale mapping should be used to map to other scores.",
                    "type" : "number",
                    "format" : "float"
                },
                "learningObjectiveSet" : {
                    "description" : "The set of identifiers for the learning objectives to which this assessment is aligned. Any number groups of learning objectives can be assigned.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/LearningObjectiveSetDType"
                    }
                }
            },
            "required" : [ "sourcedId","status","dateLastModified","title","assignDate","dueDate","class","school","category" ],
            "additionalProperties" : false
        },
        "LineItemGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'LineItem' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'lineItem'.",
                    "type" : "string",
                    "enum" : [ "lineItem" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "LineItemSetDType" : {
            "description" : "This is the container for a collection of lineItem instances for a message payload. This may be empty if no instances are found that sustain the applied query constraints. The order is not significant.",
            "type" : "object",
            "properties" : {
                "lineItems" : {
                    "description" : "The collection of lineItem instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/LineItemDType"
                    }
                }
            },
            "additionalProperties" : false
        },
        "MetadataDType" : {
            "description" : "The container for the proprietary extensions.",
            "type" : "object",
            "properties" : {

            },
            "additionalProperties" : true
        },
        "OrgGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Org' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. an 'org'.",
                    "type" : "string",
                    "enum" : [ "org" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "ResultDType" : {
            "description" : "This is the container for the Result record.  A result consists of the assigned score plus the context for that score.",
            "type" : "object",
            "properties" : {
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                    "type" : "string"
                },
                "status" : {
                    "description" : "All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                    "type" : "string",
                    "enum" : [ "active","tobedeleted" ]
                },
                "dateLastModified" : {
                    "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                    "type" : "string",
                    "format" : "date-time"
                },
                "metadata" : {
                    "$ref" : "#/definitions/MetadataDType"
                },
                "lineItem" : {
                    "$ref" : "#/definitions/LineItemGUIDRefDType"
                },
                "student" : {
                    "$ref" : "#/definitions/UserGUIDRefDType"
                },
                "class" : {
                    "$ref" : "#/definitions/ClassGUIDRefDType"
                },
                "scoreScale" : {
                    "$ref" : "#/definitions/ScoreScaleGUIDRefDType"
                },
                "scoreStatus" : {
                    "description" : "The status of the score. The value is from an extensible enumerated vocabulary.",
                    "type" : "string"
                },
                "score" : {
                    "description" : "Model Primitive Datatype = Float. The score for the result. If a scoreScale is assigned then the value must align with the scale.",
                    "type" : "number",
                    "format" : "float"
                },
                "textScore" : {
                    "description" : "Model Primitive Datatype = NormalizedString. An optional non-numeric score value. If a scoreScale is assigned then the value must align with the scale. This attribute was added in OR 1.2.",
                    "type" : "string"
                },
                "scoreDate" : {
                    "description" : "Model Primitive Datatype = Date. The date at which the score is assigned or there is an update to the result e.g. change in the 'scoreStatus'. The format is YYYY-MM-DD as defined in [ISO 8601].",
                    "type" : "string",
                    "format" : "date"
                },
                "comment" : {
                    "description" : "Model Primitive Datatype = String. A human readable comment about the score.",
                    "type" : "string"
                },
                "learningObjectiveSet" : {
                    "description" : "The set of identifiers for the learning objectives to which this result is aligned. Any number groups of learning objectives can be assigned.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/LearningObjectiveScoreSetDType"
                    }
                },
                "inProgress" : {
                    "description" : "This is used to indicate that the associated work activity has been assigned and student's work product is not yet expected to have been submitted.",
                    "type" : "string",
                    "enum" : [ "true","false" ]
                },
                "incomplete" : {
                    "description" : "This is used to indicate that the student's work product has been submitted but it is deemed incomplete by the teacher.",
                    "type" : "string",
                    "enum" : [ "true","false" ]
                },
                "late" : {
                    "description" : "This is used to indicate that the student's work product is either past due or it has been submitted past the due date. The score on this result may be impacted as as result of this flag.",
                    "type" : "string",
                    "enum" : [ "true","false" ]
                },
                "missing" : {
                    "description" : "This is used to indicate that the student's work product as not been submitted.",
                    "type" : "string",
                    "enum" : [ "true","false" ]
                }
            },
            "required" : [ "sourcedId","status","dateLastModified","lineItem","student","scoreStatus","scoreDate" ],
            "additionalProperties" : false
        },
        "ResultSetDType" : {
            "description" : "This is the container for a collection of result instances for a message payload. This may be empty if no instances are found that sustain the applied query constraints. The order is not significant.",
            "type" : "object",
            "properties" : {
                "results" : {
                    "description" : "The collection of result instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/ResultDType"
                    }
                }
            },
            "additionalProperties" : false
        },
        "ScoreScaleDType" : {
            "description" : "The container for the definition Score Scale mapping i.e. the relationship between two score scales.",
            "type" : "object",
            "properties" : {
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                    "type" : "string"
                },
                "status" : {
                    "description" : "All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                    "type" : "string",
                    "enum" : [ "active","tobedeleted" ]
                },
                "dateLastModified" : {
                    "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                    "type" : "string",
                    "format" : "date-time"
                },
                "metadata" : {
                    "$ref" : "#/definitions/MetadataDType"
                },
                "title" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The human readable title for the score scale mapping.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The type of score scale mapping. At present there is no predefined vocabulary. This should be used by an organization to differentiate between the score scales that it produces.",
                    "type" : "string"
                },
                "course" : {
                    "$ref" : "#/definitions/CourseGUIDRefDType"
                },
                "class" : {
                    "$ref" : "#/definitions/ClassGUIDRefDType"
                },
                "scoreScaleValue" : {
                    "description" : "The set of mappings for this score scale.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/ScoreScaleValueDType"
                    }
                }
            },
            "required" : [ "sourcedId","status","dateLastModified","title","type","class","scoreScaleValue" ],
            "additionalProperties" : false
        },
        "ScoreScaleGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'ScoreScale' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'scoreScale'.",
                    "type" : "string",
                    "enum" : [ "scoreScale" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "ScoreScaleSetDType" : {
            "description" : "This is the container for a collection of scoreScale instances for a message payload. This may be empty if no instances are found that sustain the applied query constraints. The order is not significant.",
            "type" : "object",
            "properties" : {
                "scoreScales" : {
                    "description" : "The collection of scoreScale instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/ScoreScaleDType"
                    }
                }
            },
            "additionalProperties" : false
        },
        "ScoreScaleValueDType" : {
            "description" : "A specific mapping of values between two score scales. The left hand side (LHS) value is the reference point. Examples of this mapping are: '7' maps to 'A', '7'-'10' maps to 'A', etc.",
            "type" : "object",
            "properties" : {
                "itemValueLHS" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The left hand side value of the mapping relationship. The format is either a single value ('x') or a range ('x' - 'y'). In the case of a single value this is considered to be the inclusive lower value for the implied range. When a range is specified (lower-to-upper) the values are inclusive.",
                    "type" : "string"
                },
                "itemValueRHS" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The right hand side value of the mapping relationship  i.e. the equivalent value to the reference point defined in the LHS.",
                    "type" : "string"
                }
            },
            "required" : [ "itemValueLHS","itemValueRHS" ],
            "additionalProperties" : false
        },
        "SingleAssessmentLineItemDType" : {
            "description" : "This is the container for a single assessment lineItem instance for a message payload.",
            "type" : "object",
            "properties" : {
                "assessmentLineItem" : {
                    "$ref" : "#/definitions/AssessmentLineItemDType"
                }
            },
            "required" : [ "assessmentLineItem" ],
            "additionalProperties" : false
        },
        "SingleAssessmentResultDType" : {
            "description" : "This is the container for a single assessment result instance for a message payload.",
            "type" : "object",
            "properties" : {
                "assessmentResult" : {
                    "$ref" : "#/definitions/AssessmentResultDType"
                }
            },
            "required" : [ "assessmentResult" ],
            "additionalProperties" : false
        },
        "SingleCategoryDType" : {
            "description" : "This is the container for a single category instance for a message payload.",
            "type" : "object",
            "properties" : {
                "category" : {
                    "$ref" : "#/definitions/CategoryDType"
                }
            },
            "required" : [ "category" ],
            "additionalProperties" : false
        },
        "SingleLineItemDType" : {
            "description" : "This is the container for a single lineItem instance for a message payload.",
            "type" : "object",
            "properties" : {
                "lineItem" : {
                    "$ref" : "#/definitions/LineItemDType"
                }
            },
            "required" : [ "lineItem" ],
            "additionalProperties" : false
        },
        "SingleResultDType" : {
            "description" : "This is the container for a single result instance for a message payload.",
            "type" : "object",
            "properties" : {
                "result" : {
                    "$ref" : "#/definitions/ResultDType"
                }
            },
            "required" : [ "result" ],
            "additionalProperties" : false
        },
        "SingleScoreScaleDType" : {
            "description" : "This is the container for a single scoreScale instance for a message payload.",
            "type" : "object",
            "properties" : {
                "scoreScale" : {
                    "$ref" : "#/definitions/ScoreScaleDType"
                }
            },
            "required" : [ "scoreScale" ],
            "additionalProperties" : false
        },
        "UserGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'User' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'user'.",
                    "type" : "string",
                    "enum" : [ "user" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "imsx_CodeMinorDType" : {
            "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorField" : {
                    "description" : "Each reported code minor status code.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/imsx_CodeMinorFieldDType"
                    }
                }
            },
            "required" : [ "imsx_codeMinorField" ],
            "additionalProperties" : false
        },
        "imsx_CodeMinorFieldDType" : {
            "description" : "This is the container for a single code minor status code.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorFieldName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
                    "type" : "string",
                    "default" : "TargetEndSystem"
                },
                "imsx_codeMinorFieldValue" : {
                    "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
                    "type" : "string",
                    "enum" : [ "fullsuccess","invalid_filter_field","invalid_selection_field","invaliddata","unauthorisedrequest","internal_server_error",
                                "server_busy","deletefailure","unknownobject","forbidden" ]
                }
            },
            "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
            "additionalProperties" : false
        },
        "imsx_StatusInfoDType" : {
            "description" : "This is the container for the status code and associated information returned within the HTTP messages received from the Service Provider. For the OneRoster Rostering 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" : {
                    "description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
                    "type" : "string",
                    "enum" : [ "success","processing","failure","unsupported" ]
                },
                "imsx_severity" : {
                    "description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
                    "type" : "string",
                    "enum" : [ "status","warning","error" ]
                },
                "imsx_description" : {
                    "description" : "Model Primitive Datatype = String. A human readable description supplied by the entity creating the status code information.",
                    "type" : "string"
                },
                "imsx_CodeMinor" : {
                    "$ref" : "#/definitions/imsx_CodeMinorDType"
                }
            },
            "required" : [ "imsx_codeMajor","imsx_severity" ],
            "additionalProperties" : false
        }
    },
    "consumes" : [ "application/json" ],
    "produces" : [ "application/json" ]
}
        

B1.2 OpenAPI 3.0 JSON Listing

The OpenAPI 3 (JSON) listing (based upon [OAS, 17]) is shown below (the OpenAPI JSON is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/openapi/onerosterv1p2gradebookservice_openapi3_v1p0.json).

{
    "openapi" : "3.0.0",
    "info" : {
        "version" : "1.2",
        "title" : "OneRoster Gradebook Service OpenAPI (JSON) Definition",
        "description" : "The OneRoster Gradebook service binding is available in REST/JSON. The model is based upon the IMS PSM modelling approach.",
        "termsOfService" : "https://www.imsglobal.org/license.html",
        "contact" : {
            "name" : "Vice President of Operations, 1EdTech",
            "url" : "https://www.1edtech.org",
            "email" : "operations@1edtech.org"
        },
        "license" : {
            "name" : "1EdTech",
            "url" : "https://www.1edtech.org/license.html"
        }
    },
    "servers" : [
        {
            "url" : "https://{hostName}{basePath}",
            "description" : "The pattern for the Server URL should be configured for the actual server location.",
            "variables" : {
                "hostName" : {
                    "description" : "This is the hostname for the server and MUST be set to the actual service provider (the 1EdTech url is given as a default value).",
                    "default" : "www.imsglobal.org"
                },
                "basePath" : {
                    "description" : "This is the base-path for the full URL and MUST be a part of the service endpoints.",
                    "enum" : ["/ims/oneroster/gradebook/v1p2"],
                    "default" : "/ims/oneroster/gradebook/v1p2"
                }
            }
        }
    ],
    "tags" : [
        {
            "name" : "AssessmentLineItemsManagement",
            "description" : "This enables the management of the assessment lineItems i.e. lineitems that are used to store results about tests/assessments and where these test/assessments are not aligned to a class."
        },
        {
            "name" : "AssessmentResultsManagement",
            "description" : "This enables the management of the assessment results i.e. results that are used to store scores for tests/assessments and where these test/assessments are not aligned to a class."
        },
        {
            "name" : "CategoriesManagement",
            "description" : "This enables the management of Categories i.e. collections of LineItems."
        },
        {
            "name" : "ClassesManagement",
            "description" : "This enables the management of Classes i.e. scheduled learning of courses, with respect to scoreScales. For this service this is the collection of operations that provide gradebook data in the context of a class identifier."
        },
        {
            "name" : "LineItemsManagement",
            "description" : "This enables the management of lineItems i.e. the set of results for the assessment of some activity."
        },
        {
            "name" : "ResultsManagement",
            "description" : "This enables the management of results i.e. the score allocated to a learner from the assessent of a learning activity. Results are collected as a set of 'lineItems'."
        },
        {
            "name" : "SchoolsManagement",
            "description" : "This enables the management of information about schools with respect to scoreScales. A school is a type of 'org'. For this service this is the collection of operations that provide gradebook data in the context of a school identifier."
        },
        {
            "name" : "ScoreScalesManagement",
            "description" : "This enables the management of scoreScales i.e. the set of scales for the results and lineItems."
        }
    ],
    "paths" : {
        "/assessmentLineItems" : {
            "get" : {
                "operationId" : "getAllAssessmentLineItems",
                "summary" : "The REST read request message for the getAllAssessmentLineItems() API call.",
                "tags" : [ "AssessmentLineItemsManagement" ],
                "description" : "Get all of the Assessment Line Items on the service provider.",
                "parameters" : [
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "schema" : {
                            "type" : "integer",
                            "format" : "int32",
                            "default" : 100,
                            "minimum" : 1
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "integer",
                            "format" : "int32",
                            "default" : 0,
                            "minimum" : 0
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string",
                            "enum" : [ "asc","desc" ]
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "array",
                            "items" : {
                                "type" : "string"
                            }
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/AssessmentLineItemSetDType"
                                }
                            }
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "schema" : {
                                    "type" : "integer"
                                }
                            }
                        },
                        "links" : {
                            "next" : {
                                "description" : "Get the next set of resources i.e. from offset to offset+limit",
                                "operationId" : "getAllAssessmentLineItems",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "last" : {
                                "description" : "Get the last set of resources i.e. from offset to end",
                                "operationId" : "getAllAssessmentLineItems",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "first" : {
                                "description" : "Get the first set of resources i.e. from first to limit",
                                "operationId" : "getAllAssessmentLineItems",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "prev" : {
                                "description" : "Get the previous set of resources i.e. from last_offset to last_offset+limit",
                                "operationId" : "getAllAssessmentLineItems",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            }
                        }
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/assessmentLineItems/{sourcedId}" : {
            "get" : {
                "operationId" : "getAssessmentLineItem",
                "summary" : "The REST read request message for the getAssessmentLineItem() API call.",
                "tags" : [ "AssessmentLineItemsManagement" ],
                "description" : "Get a specific Assessment LineItem on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.",
                "parameters" : [
                    {
                        "name" : "sourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for this assessment lineItem.",
                        "required" : true,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "simple"
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "array",
                            "items" : {
                                "type" : "string"
                            }
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/SingleAssessmentLineItemDType"
                                }
                            }
                        }
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    }
                }
            },
            "delete" : {
                "operationId" : "deleteAssessmentLineItem",
                "summary" : "The REST delete request message for the deleteAssessmentLineItem() API call.",
                "tags" : [ "AssessmentLineItemsManagement" ],
                "description" : "Delete a specific Assessment LineItem on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.",
                "parameters" : [
                    {
                        "name" : "sourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the assessment lineItem to be deleted.",
                        "required" : true,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "simple"
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.delete"
                        ]
                    }
                ],
                "responses" : {
                    "204" : {
                        "description" : "The object has been successfully deleted. "
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    }
                }
            },
            "put" : {
                "operationId" : "putAssessmentLineItem",
                "summary" : "The REST create request message for the putAssessmentLineItem() API call.",
                "tags" : [ "AssessmentLineItemsManagement" ],
                "description" : "To create a new Assessment LineItem. The associated sourcedId for this new record is supplied by the requesting system.",
                "parameters" : [
                    {
                        "name" : "sourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, to be allocated to this new assessment lineItem.",
                        "required" : true,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "simple"
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.createput"
                        ]
                    }
                ],
                "requestBody" : {
                    "description" : "The assessment lineItem data that is to be stored.",
                    "content" : {
                        "application/json" : {
                            "schema" : {
                                "$ref" : "#/components/schemas/SingleAssessmentLineItemDType"
                            }
                        }
                    },
                    "required" : true
                },
                "responses" : {
                    "201" : {
                        "description" : "The object has been successfully stored in the Service Provider repository."
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/assessmentResults" : {
            "get" : {
                "operationId" : "getAllAssessmentResults",
                "summary" : "The REST read request message for the getAllAssessmentResults() API call.",
                "tags" : [ "AssessmentResultsManagement" ],
                "description" : "Get all of the Assessment Results on the service provider.",
                "parameters" : [
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "schema" : {
                            "type" : "integer",
                            "format" : "int32",
                            "default" : 100,
                            "minimum" : 1
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "integer",
                            "format" : "int32",
                            "default" : 0,
                            "minimum" : 0
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string",
                            "enum" : [ "asc","desc" ]
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "array",
                            "items" : {
                                "type" : "string"
                            }
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/AssessmentResultSetDType"
                                }
                            }
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "schema" : {
                                    "type" : "integer"
                                }
                            }
                        },
                        "links" : {
                            "next" : {
                                "description" : "Get the next set of resources i.e. from offset to offset+limit",
                                "operationId" : "getAllAssessmentResults",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "last" : {
                                "description" : "Get the last set of resources i.e. from offset to end",
                                "operationId" : "getAllAssessmentResults",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "first" : {
                                "description" : "Get the first set of resources i.e. from first to limit",
                                "operationId" : "getAllAssessmentResults",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "prev" : {
                                "description" : "Get the previous set of resources i.e. from last_offset to last_offset+limit",
                                "operationId" : "getAllAssessmentResults",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            }
                        }
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/assessmentResults/{sourcedId}" : {
            "get" : {
                "operationId" : "getAssessmentResult",
                "summary" : "The REST read request message for the getAssessmentResult() API call.",
                "tags" : [ "AssessmentResultsManagement" ],
                "description" : "Get a specific Assessment Result on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.",
                "parameters" : [
                    {
                        "name" : "sourcedId",
                        "in" : "path",
                        "description" : "Tthe unique identifier, GUID, for this assessment result.",
                        "required" : true,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "simple"
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "array",
                            "items" : {
                                "type" : "string"
                            }
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/SingleAssessmentResultDType"
                                }
                            }
                        }
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    }
                }
            },
            "delete" : {
                "operationId" : "deleteAssessmentResult",
                "summary" : "The REST delete request message for the deleteAssessmentResult() API call.",
                "tags" : [ "AssessmentResultsManagement" ],
                "description" : "Delete a specific Assessment Result on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.",
                "parameters" : [
                    {
                        "name" : "sourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the assessment result to be deleted.",
                        "required" : true,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "simple"
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.delete"
                        ]
                    }
                ],
                "responses" : {
                    "204" : {
                        "description" : "The object has been successfully deleted. "
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    }
                }
            },
            "put" : {
                "operationId" : "putAssessmentResult",
                "summary" : "The REST create request message for the putAssessmentResult() API call.",
                "tags" : [ "AssessmentResultsManagement" ],
                "description" : "To create a new Assessment Result. The associated sourcedId for this new record is supplied by the requesting system.",
                "parameters" : [
                    {
                        "name" : "sourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, to be allocated to this new assessment result.",
                        "required" : true,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "simple"
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.createput"
                        ]
                    }
                ],
                "requestBody" : {
                    "description" : "The assessment result data that is to be stored.",
                    "content" : {
                        "application/json" : {
                            "schema" : {
                                "$ref" : "#/components/schemas/SingleAssessmentResultDType"
                            }
                        }
                    },
                    "required" : true
                },
                "responses" : {
                    "201" : {
                        "description" : "The object has been successfully stored in the Service Provider repository."
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/categories" : {
            "get" : {
                "operationId" : "getAllCategories",
                "summary" : "The REST read request message for the getAllCategories() API call.",
                "tags" : [ "CategoriesManagement" ],
                "description" : "Get all of the lineItem categories on the service provider.",
                "parameters" : [
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "schema" : {
                            "type" : "integer",
                            "format" : "int32",
                            "default" : 100,
                            "minimum" : 1
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "integer",
                            "format" : "int32",
                            "default" : 0,
                            "minimum" : 0
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string",
                            "enum" : [ "asc","desc" ]
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "array",
                            "items" : {
                                "type" : "string"
                            }
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook-core.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/CategoriesSetDType"
                                }
                            }
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "schema" : {
                                    "type" : "integer"
                                }
                            }
                        },
                        "links" : {
                            "next" : {
                                "description" : "Get the next set of resources i.e. from offset to offset+limit",
                                "operationId" : "getAllCategories",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "last" : {
                                "description" : "Get the last set of resources i.e. from offset to end",
                                "operationId" : "getAllCategories",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "first" : {
                                "description" : "Get the first set of resources i.e. from first to limit",
                                "operationId" : "getAllCategories",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "prev" : {
                                "description" : "Get the previous set of resources i.e. from last_offset to last_offset+limit",
                                "operationId" : "getAllCategories",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            }
                        }
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/categories/{sourcedId}" : {
            "get" : {
                "operationId" : "getCategory",
                "summary" : "The REST read request message for the getCategory() API call.",
                "tags" : [ "CategoriesManagement" ],
                "description" : "Get a specific lineItem category on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.",
                "parameters" : [
                    {
                        "name" : "sourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for this category.",
                        "required" : true,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "simple"
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "array",
                            "items" : {
                                "type" : "string"
                            }
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook-core.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/SingleCategoryDType"
                                }
                            }
                        }
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    }
                }
            },
            "delete" : {
                "operationId" : "deleteCategory",
                "summary" : "The REST delete request message for the deleteCategory() API call.",
                "tags" : [ "CategoriesManagement" ],
                "description" : "Delete a specific lineItem category on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.",
                "parameters" : [
                    {
                        "name" : "sourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the category to be deleted.",
                        "required" : true,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "simple"
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.delete"
                        ]
                    }
                ],
                "responses" : {
                    "204" : {
                        "description" : "The object has been successfully deleted. "
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    }
                }
            },
            "put" : {
                "operationId" : "putCategory",
                "summary" : "The REST create request message for the putCategory() API call.",
                "tags" : [ "CategoriesManagement" ],
                "description" : "To create a new lineItem category. The associated sourcedId for this new record is supplied by the requesting system.",
                "parameters" : [
                    {
                        "name" : "sourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, to be allocated to this new category.",
                        "required" : true,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "simple"
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createput"
                        ]
                    }
                ],
                "requestBody" : {
                    "description" : "The category data that is to be stored.",
                    "content" : {
                        "application/json" : {
                            "schema" : {
                                "$ref" : "#/components/schemas/SingleCategoryDType"
                            }
                        }
                    },
                    "required" : true
                },
                "responses" : {
                    "201" : {
                        "description" : "The object has been successfully stored in the Service Provider repository."
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/classes/{classSourcedId}/academicSessions/{academicSessionSourcedId}/results" : {
            "post" : {
                "operationId" : "postResultsForAcademicSessionForClass",
                "summary" : "The REST createbp request message for the postResultsForAcademicSessionForClass() API call.",
                "tags" : [ "ClassesManagement" ],
                "description" : "To create a set of results for a specific academic session and specific class. The responding system must return the set of sourcedIds that have been allocated to the newly created result records. If the corresponding class or academic session cannot be located then an 'unknown' error code is returned.",
                "parameters" : [
                    {
                        "name" : "classSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the class.",
                        "required" : true,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "simple"
                    },
                    {
                        "name" : "academicSessionSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the academic session.",
                        "required" : true,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "simple"
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createpost"
                        ]
                    }
                ],
                "requestBody" : {
                    "description" : "The set of result records to be created in response to this request. This includes an initial assignment of sourcedId so that the mapping between this and the actually assigned sourcedId can be reported. ",
                    "content" : {
                        "application/json" : {
                            "schema" : {
                                "$ref" : "#/components/schemas/ResultSetDType"
                            }
                        }
                    },
                    "required" : true
                },
                "responses" : {
                    "201" : {
                        "description" : "The object has been successfully stored in the Service Provider repository.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/GUIDPairSetDType"
                                }
                            }
                        }
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/classes/{classSourcedId}/categories" : {
            "get" : {
                "operationId" : "getCategoriesForClass",
                "summary" : "The REST read request message for the getCategoriesForClass() API call.",
                "tags" : [ "ClassesManagement" ],
                "description" : "Get the set of categories on the service provider for a specific class. If the corresponding class cannot be located then an 'unknown' error code is returned.",
                "parameters" : [
                    {
                        "name" : "classSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the class.",
                        "required" : true,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "simple"
                    },
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "schema" : {
                            "type" : "integer",
                            "format" : "int32",
                            "default" : 100,
                            "minimum" : 1
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "integer",
                            "format" : "int32",
                            "default" : 0,
                            "minimum" : 0
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string",
                            "enum" : [ "asc","desc" ]
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "array",
                            "items" : {
                                "type" : "string"
                            }
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/CategoriesSetDType"
                                }
                            }
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "schema" : {
                                    "type" : "integer"
                                }
                            }
                        },
                        "links" : {
                            "next" : {
                                "description" : "Get the next set of resources i.e. from offset to offset+limit",
                                "operationId" : "getCategoriesForClass",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "last" : {
                                "description" : "Get the last set of resources i.e. from offset to end",
                                "operationId" : "getCategoriesForClass",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "first" : {
                                "description" : "Get the first set of resources i.e. from first to limit",
                                "operationId" : "getCategoriesForClass",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "prev" : {
                                "description" : "Get the previous set of resources i.e. from last_offset to last_offset+limit",
                                "operationId" : "getCategoriesForClass",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            }
                        }
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/classes/{classSourcedId}/lineItems" : {
            "get" : {
                "operationId" : "getLineItemsForClass",
                "summary" : "The REST read request message for the getLineItemsForClass() API call.",
                "tags" : [ "ClassesManagement" ],
                "description" : "Get the set of lineItems on the service provider for a specific class. If the corresponding class cannot be located then an 'unknown' error code is returned.",
                "parameters" : [
                    {
                        "name" : "classSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the class.",
                        "required" : true,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "simple"
                    },
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "schema" : {
                            "type" : "integer",
                            "format" : "int32",
                            "default" : 100,
                            "minimum" : 1
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "integer",
                            "format" : "int32",
                            "default" : 0,
                            "minimum" : 0
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string",
                            "enum" : [ "asc","desc" ]
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "array",
                            "items" : {
                                "type" : "string"
                            }
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/LineItemSetDType"
                                }
                            }
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "schema" : {
                                    "type" : "integer"
                                }
                            }
                        },
                        "links" : {
                            "next" : {
                                "description" : "Get the next set of resources i.e. from offset to offset+limit",
                                "operationId" : "getLineItemsForClass",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "last" : {
                                "description" : "Get the last set of resources i.e. from offset to end",
                                "operationId" : "getLineItemsForClass",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "first" : {
                                "description" : "Get the first set of resources i.e. from first to limit",
                                "operationId" : "getLineItemsForClass",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "prev" : {
                                "description" : "Get the previous set of resources i.e. from last_offset to last_offset+limit",
                                "operationId" : "getLineItemsForClass",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            }
                        }
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    }
                }
            },
            "post" : {
                "operationId" : "postLineItemsForClass",
                "summary" : "The REST createbp request message for the postLineItemsForClass() API call.",
                "tags" : [ "ClassesManagement" ],
                "description" : "To create a set of lineItems for a specific class. The responding system must return the set of sourcedIds that have been allocated to the newly created lineItem records. If the corresponding class cannot be located then an 'unknown' error code is returned.",
                "parameters" : [
                    {
                        "name" : "classSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the class.",
                        "required" : true,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "simple"
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createpost"
                        ]
                    }
                ],
                "requestBody" : {
                    "description" : "The set of lineItem records to be created in response to this request. This includes an initial assignment of sourcedId so that the mapping between this and the actually assigned sourcedId can be reported. ",
                    "content" : {
                        "application/json" : {
                            "schema" : {
                                "$ref" : "#/components/schemas/LineItemSetDType"
                            }
                        }
                    },
                    "required" : true
                },
                "responses" : {
                    "201" : {
                        "description" : "The object has been successfully stored in the Service Provider repository.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/GUIDPairSetDType"
                                }
                            }
                        }
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/classes/{classSourcedId}/lineItems/{lineItemSourcedId}/results" : {
            "get" : {
                "operationId" : "getResultsForLineItemForClass",
                "summary" : "The REST read request message for the getResultsForLineItemForClass() API call.",
                "tags" : [ "ClassesManagement" ],
                "description" : "Get the set of results on the service provider for a specific lineItem and for a specific class. If the corresponding class cannot be located then an 'unknown' error code is returned.",
                "parameters" : [
                    {
                        "name" : "classSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the class.",
                        "required" : true,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "simple"
                    },
                    {
                        "name" : "lineItemSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the lineItem.",
                        "required" : true,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "simple"
                    },
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "schema" : {
                            "type" : "integer",
                            "format" : "int32",
                            "default" : 100,
                            "minimum" : 1
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "integer",
                            "format" : "int32",
                            "default" : 0,
                            "minimum" : 0
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string",
                            "enum" : [ "asc","desc" ]
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "array",
                            "items" : {
                                "type" : "string"
                            }
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/ResultSetDType"
                                }
                            }
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "schema" : {
                                    "type" : "integer"
                                }
                            }
                        },
                        "links" : {
                            "next" : {
                                "description" : "Get the next set of resources i.e. from offset to offset+limit",
                                "operationId" : "getResultsForLineItemForClass",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "last" : {
                                "description" : "Get the last set of resources i.e. from offset to end",
                                "operationId" : "getResultsForLineItemForClass",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "first" : {
                                "description" : "Get the first set of resources i.e. from first to limit",
                                "operationId" : "getResultsForLineItemForClass",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "prev" : {
                                "description" : "Get the previous set of resources i.e. from last_offset to last_offset+limit",
                                "operationId" : "getResultsForLineItemForClass",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            }
                        }
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/classes/{classSourcedId}/results" : {
            "get" : {
                "operationId" : "getResultsForClass",
                "summary" : "The REST read request message for the getResultsForClass() API call.",
                "tags" : [ "ClassesManagement" ],
                "description" : "Get the set of results on the service provider for a specific class. If the corresponding class cannot be located then an 'unknown' error code is returned.",
                "parameters" : [
                    {
                        "name" : "classSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the class.",
                        "required" : true,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "simple"
                    },
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "schema" : {
                            "type" : "integer",
                            "format" : "int32",
                            "default" : 100,
                            "minimum" : 1
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "integer",
                            "format" : "int32",
                            "default" : 0,
                            "minimum" : 0
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string",
                            "enum" : [ "asc","desc" ]
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "array",
                            "items" : {
                                "type" : "string"
                            }
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/ResultSetDType"
                                }
                            }
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "schema" : {
                                    "type" : "integer"
                                }
                            }
                        },
                        "links" : {
                            "next" : {
                                "description" : "Get the next set of resources i.e. from offset to offset+limit",
                                "operationId" : "getResultsForClass",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "last" : {
                                "description" : "Get the last set of resources i.e. from offset to end",
                                "operationId" : "getResultsForClass",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "first" : {
                                "description" : "Get the first set of resources i.e. from first to limit",
                                "operationId" : "getResultsForClass",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "prev" : {
                                "description" : "Get the previous set of resources i.e. from last_offset to last_offset+limit",
                                "operationId" : "getResultsForClass",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            }
                        }
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/classes/{classSourcedId}/scoreScales" : {
            "get" : {
                "operationId" : "getScoreScalesForClass",
                "summary" : "The REST read request message for the getScoreScalesForClass() API call.",
                "tags" : [ "ClassesManagement" ],
                "description" : "Get the set of scoreScales on the service provider for a specific class. If the corresponding class cannot be located then an 'unknown' error code is returned.",
                "parameters" : [
                    {
                        "name" : "classSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the class.",
                        "required" : true,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "simple"
                    },
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "schema" : {
                            "type" : "integer",
                            "format" : "int32",
                            "default" : 100,
                            "minimum" : 1
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "integer",
                            "format" : "int32",
                            "default" : 0,
                            "minimum" : 0
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string",
                            "enum" : [ "asc","desc" ]
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "array",
                            "items" : {
                                "type" : "string"
                            }
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/ScoreScaleSetDType"
                                }
                            }
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "schema" : {
                                    "type" : "integer"
                                }
                            }
                        },
                        "links" : {
                            "next" : {
                                "description" : "Get the next set of resources i.e. from offset to offset+limit",
                                "operationId" : "getScoreScalesForClass",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "last" : {
                                "description" : "Get the last set of resources i.e. from offset to end",
                                "operationId" : "getScoreScalesForClass",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "first" : {
                                "description" : "Get the first set of resources i.e. from first to limit",
                                "operationId" : "getScoreScalesForClass",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "prev" : {
                                "description" : "Get the previous set of resources i.e. from last_offset to last_offset+limit",
                                "operationId" : "getScoreScalesForClass",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            }
                        }
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/classes/{classSourcedId}/students/{studentSourcedId}/results" : {
            "get" : {
                "operationId" : "getResultsForStudentForClass",
                "summary" : "The REST read request message for the getResultsForStudentForClass() API call.",
                "tags" : [ "ClassesManagement" ],
                "description" : "Get the set of results on the service provider for a specific student and for a specific class. If the corresponding class cannot be located then an 'unknown' error code is returned.",
                "parameters" : [
                    {
                        "name" : "classSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the class.",
                        "required" : true,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "simple"
                    },
                    {
                        "name" : "studentSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the student.",
                        "required" : true,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "simple"
                    },
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "schema" : {
                            "type" : "integer",
                            "format" : "int32",
                            "default" : 100,
                            "minimum" : 1
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "integer",
                            "format" : "int32",
                            "default" : 0,
                            "minimum" : 0
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string",
                            "enum" : [ "asc","desc" ]
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "array",
                            "items" : {
                                "type" : "string"
                            }
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/ResultSetDType"
                                }
                            }
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "schema" : {
                                    "type" : "integer"
                                }
                            }
                        },
                        "links" : {
                            "next" : {
                                "description" : "Get the next set of resources i.e. from offset to offset+limit",
                                "operationId" : "getResultsForStudentForClass",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "last" : {
                                "description" : "Get the last set of resources i.e. from offset to end",
                                "operationId" : "getResultsForStudentForClass",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "first" : {
                                "description" : "Get the first set of resources i.e. from first to limit",
                                "operationId" : "getResultsForStudentForClass",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "prev" : {
                                "description" : "Get the previous set of resources i.e. from last_offset to last_offset+limit",
                                "operationId" : "getResultsForStudentForClass",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            }
                        }
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/lineItems" : {
            "get" : {
                "operationId" : "getAllLineItems",
                "summary" : "The REST read request message for the getAllLineItems() API call.",
                "tags" : [ "LineItemsManagement" ],
                "description" : "Get all of the Line Items on the service provider.",
                "parameters" : [
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "schema" : {
                            "type" : "integer",
                            "format" : "int32",
                            "default" : 100,
                            "minimum" : 1
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "integer",
                            "format" : "int32",
                            "default" : 0,
                            "minimum" : 0
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string",
                            "enum" : [ "asc","desc" ]
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "array",
                            "items" : {
                                "type" : "string"
                            }
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook-core.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/LineItemSetDType"
                                }
                            }
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "schema" : {
                                    "type" : "integer"
                                }
                            }
                        },
                        "links" : {
                            "next" : {
                                "description" : "Get the next set of resources i.e. from offset to offset+limit",
                                "operationId" : "getAllLineItems",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "last" : {
                                "description" : "Get the last set of resources i.e. from offset to end",
                                "operationId" : "getAllLineItems",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "first" : {
                                "description" : "Get the first set of resources i.e. from first to limit",
                                "operationId" : "getAllLineItems",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "prev" : {
                                "description" : "Get the previous set of resources i.e. from last_offset to last_offset+limit",
                                "operationId" : "getAllLineItems",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            }
                        }
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/lineItems/{lineItemSourcedId}/results" : {
            "post" : {
                "operationId" : "postResultsForLineItem",
                "summary" : "The REST createbp request message for the postResultsForLineItem() API call.",
                "tags" : [ "LineItemsManagement" ],
                "description" : "To create a set of results for a specific lineItem. The responding system must return the set of sourcedIds that have been allocated to the newly created result records.",
                "parameters" : [
                    {
                        "name" : "lineItemSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the lineItem.",
                        "required" : true,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "simple"
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createpost"
                        ]
                    }
                ],
                "requestBody" : {
                    "description" : "The set of result records to be created in response to this request. This includes an initial assignment of sourcedId so that the mapping between this and the actually assigned sourcedId can be reported. ",
                    "content" : {
                        "application/json" : {
                            "schema" : {
                                "$ref" : "#/components/schemas/ResultSetDType"
                            }
                        }
                    },
                    "required" : true
                },
                "responses" : {
                    "201" : {
                        "description" : "The object has been successfully stored in the Service Provider repository.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/GUIDPairSetDType"
                                }
                            }
                        }
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/lineItems/{sourcedId}" : {
            "get" : {
                "operationId" : "getLineItem",
                "summary" : "The REST read request message for the getLineItem() API call.",
                "tags" : [ "LineItemsManagement" ],
                "description" : "Get a specific LineItem on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.",
                "parameters" : [
                    {
                        "name" : "sourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for this lineItem.",
                        "required" : true,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "simple"
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "array",
                            "items" : {
                                "type" : "string"
                            }
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook-core.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/SingleLineItemDType"
                                }
                            }
                        }
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    }
                }
            },
            "delete" : {
                "operationId" : "deleteLineItem",
                "summary" : "The REST delete request message for the deleteLineItem() API call.",
                "tags" : [ "LineItemsManagement" ],
                "description" : "Delete a specific lineItem on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.",
                "parameters" : [
                    {
                        "name" : "sourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the lineItem to be deleted.",
                        "required" : true,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "simple"
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.delete"
                        ]
                    }
                ],
                "responses" : {
                    "204" : {
                        "description" : "The object has been successfully deleted. "
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    }
                }
            },
            "put" : {
                "operationId" : "putLineItem",
                "summary" : "The REST create request message for the putLineItem() API call.",
                "tags" : [ "LineItemsManagement" ],
                "description" : "To create a new lineItem. The associated sourcedId for this new record is supplied by the requesting system.",
                "parameters" : [
                    {
                        "name" : "sourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, to be allocated to this new lineItem.",
                        "required" : true,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "simple"
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createput"
                        ]
                    }
                ],
                "requestBody" : {
                    "description" : "The lineItem data that is to be stored.",
                    "content" : {
                        "application/json" : {
                            "schema" : {
                                "$ref" : "#/components/schemas/SingleLineItemDType"
                            }
                        }
                    },
                    "required" : true
                },
                "responses" : {
                    "201" : {
                        "description" : "The object has been successfully stored in the Service Provider repository."
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/results" : {
            "get" : {
                "operationId" : "getAllResults",
                "summary" : "The REST read request message for the getAllResults() API call.",
                "tags" : [ "ResultsManagement" ],
                "description" : "Get all of the results on the service provider.",
                "parameters" : [
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "schema" : {
                            "type" : "integer",
                            "format" : "int32",
                            "default" : 100,
                            "minimum" : 1
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "integer",
                            "format" : "int32",
                            "default" : 0,
                            "minimum" : 0
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string",
                            "enum" : [ "asc","desc" ]
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "array",
                            "items" : {
                                "type" : "string"
                            }
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook-core.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/ResultSetDType"
                                }
                            }
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "schema" : {
                                    "type" : "integer"
                                }
                            }
                        },
                        "links" : {
                            "next" : {
                                "description" : "Get the next set of resources i.e. from offset to offset+limit",
                                "operationId" : "getAllResults",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "last" : {
                                "description" : "Get the last set of resources i.e. from offset to end",
                                "operationId" : "getAllResults",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "first" : {
                                "description" : "Get the first set of resources i.e. from first to limit",
                                "operationId" : "getAllResults",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "prev" : {
                                "description" : "Get the previous set of resources i.e. from last_offset to last_offset+limit",
                                "operationId" : "getAllResults",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            }
                        }
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/results/{sourcedId}" : {
            "get" : {
                "operationId" : "getResult",
                "summary" : "The REST read request message for the getResult() API call.",
                "tags" : [ "ResultsManagement" ],
                "description" : "Get a specific result on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.",
                "parameters" : [
                    {
                        "name" : "sourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for this result.",
                        "required" : true,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "simple"
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "array",
                            "items" : {
                                "type" : "string"
                            }
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook-core.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/SingleResultDType"
                                }
                            }
                        }
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    }
                }
            },
            "delete" : {
                "operationId" : "deleteResult",
                "summary" : "The REST delete request message for the deleteResult() API call.",
                "tags" : [ "ResultsManagement" ],
                "description" : "Delete a specific result on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.",
                "parameters" : [
                    {
                        "name" : "sourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the result to be deleted.",
                        "required" : true,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "simple"
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.delete"
                        ]
                    }
                ],
                "responses" : {
                    "204" : {
                        "description" : "The object has been successfully deleted. "
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    }
                }
            },
            "put" : {
                "operationId" : "putResult",
                "summary" : "The REST create request message for the putResult() API call.",
                "tags" : [ "ResultsManagement" ],
                "description" : "To create a new result. The associated sourcedId for this new record is supplied by the requesting system.",
                "parameters" : [
                    {
                        "name" : "sourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, to be allocated to this new result.",
                        "required" : true,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "simple"
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createput"
                        ]
                    }
                ],
                "requestBody" : {
                    "description" : "The result data that is to be stored.",
                    "content" : {
                        "application/json" : {
                            "schema" : {
                                "$ref" : "#/components/schemas/SingleResultDType"
                            }
                        }
                    },
                    "required" : true
                },
                "responses" : {
                    "201" : {
                        "description" : "The object has been successfully stored in the Service Provider repository."
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/schools/{schoolSourcedId}/lineItems" : {
            "post" : {
                "operationId" : "postLineItemsForSchool",
                "summary" : "The REST createbp request message for the postLineItemsForSchool() API call.",
                "tags" : [ "SchoolsManagement" ],
                "description" : "To create a set of lineItems for a specific school.  The responding system must return the set of sourcedIds that have been allocated to the newly created lineItem records.",
                "parameters" : [
                    {
                        "name" : "schoolSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the school.",
                        "required" : true,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "simple"
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createpost"
                        ]
                    }
                ],
                "requestBody" : {
                    "description" : "The set of lineItem records to be created in response to this request. This includes an initial assignment of sourcedId so that the mapping between this and the actually assigned sourcedId can be reported. ",
                    "content" : {
                        "application/json" : {
                            "schema" : {
                                "$ref" : "#/components/schemas/LineItemSetDType"
                            }
                        }
                    },
                    "required" : true
                },
                "responses" : {
                    "201" : {
                        "description" : "The object has been successfully stored in the Service Provider repository.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/GUIDPairSetDType"
                                }
                            }
                        }
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/schools/{schoolSourcedId}/scoreScales" : {
            "get" : {
                "operationId" : "getScoreScalesForSchool",
                "summary" : "The REST read request message for the getScoreScalesForSchool() API call.",
                "tags" : [ "SchoolsManagement" ],
                "description" : "Get the set of scoreScales on the service provider for a specific school. If the corresponding school cannot be located then an 'unknown' error code is returned.",
                "parameters" : [
                    {
                        "name" : "schoolSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the school.",
                        "required" : true,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "simple"
                    },
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "schema" : {
                            "type" : "integer",
                            "format" : "int32",
                            "default" : 100,
                            "minimum" : 1
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "integer",
                            "format" : "int32",
                            "default" : 0,
                            "minimum" : 0
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string",
                            "enum" : [ "asc","desc" ]
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "array",
                            "items" : {
                                "type" : "string"
                            }
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/ScoreScaleSetDType"
                                }
                            }
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "schema" : {
                                    "type" : "integer"
                                }
                            }
                        },
                        "links" : {
                            "next" : {
                                "description" : "Get the next set of resources i.e. from offset to offset+limit",
                                "operationId" : "getScoreScalesForSchool",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "last" : {
                                "description" : "Get the last set of resources i.e. from offset to end",
                                "operationId" : "getScoreScalesForSchool",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "first" : {
                                "description" : "Get the first set of resources i.e. from first to limit",
                                "operationId" : "getScoreScalesForSchool",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "prev" : {
                                "description" : "Get the previous set of resources i.e. from last_offset to last_offset+limit",
                                "operationId" : "getScoreScalesForSchool",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            }
                        }
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/scoreScales" : {
            "get" : {
                "operationId" : "getAllScoreScales",
                "summary" : "The REST read request message for the getAllScoreScales() API call.",
                "tags" : [ "ScoreScalesManagement" ],
                "description" : "Get all of the ScoreScales on the service provider.",
                "parameters" : [
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "schema" : {
                            "type" : "integer",
                            "format" : "int32",
                            "default" : 100,
                            "minimum" : 1
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "integer",
                            "format" : "int32",
                            "default" : 0,
                            "minimum" : 0
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "schema" : {
                            "type" : "string",
                            "enum" : [ "asc","desc" ]
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "array",
                            "items" : {
                                "type" : "string"
                            }
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook-core.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/ScoreScaleSetDType"
                                }
                            }
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "schema" : {
                                    "type" : "integer"
                                }
                            }
                        },
                        "links" : {
                            "next" : {
                                "description" : "Get the next set of resources i.e. from offset to offset+limit",
                                "operationId" : "getAllScoreScales",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "last" : {
                                "description" : "Get the last set of resources i.e. from offset to end",
                                "operationId" : "getAllScoreScales",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "first" : {
                                "description" : "Get the first set of resources i.e. from first to limit",
                                "operationId" : "getAllScoreScales",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            },
                            "prev" : {
                                "description" : "Get the previous set of resources i.e. from last_offset to last_offset+limit",
                                "operationId" : "getAllScoreScales",
                                "parameters" : {
                                    "limit" : "$request.path.limit",
                                    "offset" : "$request.path.offset"
                                }
                            }
                        }
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/scoreScales/{sourcedId}" : {
            "get" : {
                "operationId" : "getScoreScale",
                "summary" : "The REST read request message for the getScoreScale() API call.",
                "tags" : [ "ScoreScalesManagement" ],
                "description" : "Get a specific scoreScale on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.",
                "parameters" : [
                    {
                        "name" : "sourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for this scoreScale.",
                        "required" : true,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "simple"
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "schema" : {
                            "type" : "array",
                            "items" : {
                                "type" : "string"
                            }
                        },
                        "style" : "form",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook-core.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/SingleScoreScaleDType"
                                }
                            }
                        }
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    }
                }
            },
            "delete" : {
                "operationId" : "deleteScoreScale",
                "summary" : "The REST delete request message for the deleteScoreScale() API call.",
                "tags" : [ "ScoreScalesManagement" ],
                "description" : "Delete a specific scoreScale on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.",
                "parameters" : [
                    {
                        "name" : "sourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the scoreScale to be deleted.",
                        "required" : true,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "simple"
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.delete"
                        ]
                    }
                ],
                "responses" : {
                    "204" : {
                        "description" : "The object has been successfully deleted. "
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    }
                }
            },
            "put" : {
                "operationId" : "putScoreScale",
                "summary" : "The REST create request message for the putScoreScale() API call.",
                "tags" : [ "ScoreScalesManagement" ],
                "description" : "To create a new scoreScale. The associated sourcedId for this new record is supplied by the requesting system.",
                "parameters" : [
                    {
                        "name" : "sourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, to be allocated to this new scoreScale.",
                        "required" : true,
                        "schema" : {
                            "type" : "string"
                        },
                        "style" : "simple"
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createput"
                        ]
                    }
                ],
                "requestBody" : {
                    "description" : "The scoreScale data that is to be stored.",
                    "content" : {
                        "application/json" : {
                            "schema" : {
                                "$ref" : "#/components/schemas/SingleScoreScaleDType"
                            }
                        }
                    },
                    "required" : true
                },
                "responses" : {
                    "201" : {
                        "description" : "The object has been successfully stored in the Service Provider repository."
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "401" : {
                        "description" : "The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    },
                    "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'. ",
                        "content" : {
                            "application/json" : {
                                "schema" : {
                                    "$ref" : "#/components/schemas/imsx_StatusInfoDType"
                                }
                            }
                        }
                    }
                }
            }
        }
    },
    "components" : {
        "securitySchemes" : {
            "OAuth2CC" : {
                "type" : "oauth2",
                "description" : "OAuth 2 Client Credentials (as per the requirements in the IMS Security Framework) is to be used.",
                "flows" : {
                    "clientCredentials" : {
                        "tokenUrl" : "https://www.imsglobal.org/oauth2token",
                        "scopes" : {
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.delete" : "Access to the set of assessment operations that permit an object to be deleted.",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.readonly" : "Access to ALL of the assessment read operations.",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.createput" : "Access to all of the write assessment operations that permit the creation of a new single object in which the 'sourcedId' is supplied.",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.delete" : "Access to the set of gradebook operations that permit an object to be deleted.",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly" : "Access to ALL of the gradebook read operations.",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook-core.readonly" : "Access to the set of core read operations i.e. reading of all objects or a single object. ",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createpost" : "Access to the set of write operations that permit the creation of objects where the server allocates the 'sourcedIds'.",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createput" : "Access to all of the gradebook write operations that permit the creation of a new single object in which the 'sourcedId' is supplied."
                        }
                    }
                }
            }
        },
        "schemas" : {
            "AcadSessionGUIDRefDType" : {
                "description" : "This is the container for reference to a OneRoster 'Academic Session' object that has an allocated sourcedId (GUID).",
                "type" : "object",
                "properties" : {
                    "href" : {
                        "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                        "type" : "string",
                        "format" : "uri"
                    },
                    "sourcedId" : {
                        "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                        "type" : "string"
                    },
                    "type" : {
                        "description" : "The type of object being referenced i.e. an 'academicSession'.",
                        "type" : "string",
                        "enum" : [ "academicSession" ]
                    }
                },
                "required" : [ "href","sourcedId","type" ],
                "additionalProperties" : false
            },
            "AssessmentLineItemDType" : {
                "description" : "This is the container for the definition of an assessment lineItem. An assessment lineItem is a collection of results for a set of students who are completing an assignment.",
                "type" : "object",
                "properties" : {
                    "sourcedId" : {
                        "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                        "type" : "string"
                    },
                    "status" : {
                        "description" : "All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                        "type" : "string",
                        "enum" : [ "active","tobedeleted" ]
                    },
                    "dateLastModified" : {
                        "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                        "type" : "string",
                        "format" : "date-time"
                    },
                    "metadata" : {
                        "$ref" : "#/components/schemas/MetadataDType"
                    },
                    "title" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The title, human readable, for the assessment lineItem.  This should allow the assessment lineItem to be distinguished from its peer assessment lineItems.",
                        "type" : "string"
                    },
                    "description" : {
                        "description" : "Model Primitive Datatype = String. A human readable description of the usage of the assessment lineItem.",
                        "type" : "string"
                    },
                    "class" : {
                        "$ref" : "#/components/schemas/ClassGUIDRefDType"
                    },
                    "parentAssessmentLineItem" : {
                        "$ref" : "#/components/schemas/AssessmentLineItemGUIDRefDType"
                    },
                    "scoreScale" : {
                        "$ref" : "#/components/schemas/ScoreScaleGUIDRefDType"
                    },
                    "resultValueMin" : {
                        "description" : "Model Primitive Datatype = Float. The minimum value (numeric) that can be assigned to the score attribute in a result. The score scale mapping should be used to map to other scores.",
                        "type" : "number",
                        "format" : "float"
                    },
                    "resultValueMax" : {
                        "description" : "Model Primitive Datatype = Float. The maximum value (numeric) that can be assigned to the score attribute in a result. The score scale mapping should be used to map to other scores.",
                        "type" : "number",
                        "format" : "float"
                    },
                    "learningObjectiveSet" : {
                        "description" : "The set of identifiers for the learning objectives to which this assessment is aligned. Any number groups of learning objectives can be assigned.",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "$ref" : "#/components/schemas/LearningObjectiveSetDType"
                        }
                    }
                },
                "required" : [ "sourcedId","status","dateLastModified","title" ],
                "additionalProperties" : false
            },
            "AssessmentLineItemGUIDRefDType" : {
                "description" : "This is the container for reference to a OneRoster 'AssessmentLineItem' object that has an allocated sourcedId (GUID).",
                "type" : "object",
                "properties" : {
                    "href" : {
                        "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                        "type" : "string",
                        "format" : "uri"
                    },
                    "sourcedId" : {
                        "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                        "type" : "string"
                    },
                    "type" : {
                        "description" : "The type of object being referenced i.e. an 'assessmentLineItem'.",
                        "type" : "string",
                        "enum" : [ "assessmentLineItem" ]
                    }
                },
                "required" : [ "href","sourcedId","type" ],
                "additionalProperties" : false
            },
            "AssessmentLineItemSetDType" : {
                "description" : "This is the container for a collection of assessment lineItem instances for a message payload. This may be empty if no instances are found that sustain the applied query constraints. The order is not significant.",
                "type" : "object",
                "properties" : {
                    "assessmentLineItems" : {
                        "description" : "The collection of assessment lineItem instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "$ref" : "#/components/schemas/AssessmentLineItemDType"
                        }
                    }
                },
                "additionalProperties" : false
            },
            "AssessmentResultDType" : {
                "description" : "This is the container for the AssessmentResult record.  An assessment result consists of the assigned score plus the context for that score.",
                "type" : "object",
                "properties" : {
                    "sourcedId" : {
                        "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                        "type" : "string"
                    },
                    "status" : {
                        "description" : "All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                        "type" : "string",
                        "enum" : [ "active","tobedeleted" ]
                    },
                    "dateLastModified" : {
                        "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                        "type" : "string",
                        "format" : "date-time"
                    },
                    "metadata" : {
                        "$ref" : "#/components/schemas/MetadataDType"
                    },
                    "assessmentLineItem" : {
                        "$ref" : "#/components/schemas/AssessmentLineItemGUIDRefDType"
                    },
                    "student" : {
                        "$ref" : "#/components/schemas/UserGUIDRefDType"
                    },
                    "score" : {
                        "description" : "Model Primitive Datatype = Float. The score for the result. If a scoreScale is assigned then the value must align with the scale.",
                        "type" : "number",
                        "format" : "float"
                    },
                    "textScore" : {
                        "description" : "Model Primitive Datatype = NormalizedString. An optional non-numeric score value. If a scoreScale is assigned then the value must align with the scale.",
                        "type" : "string"
                    },
                    "scoreDate" : {
                        "description" : "Model Primitive Datatype = Date. The date at which the score is assigned or there is an update to the result e.g. change in the 'scoreStatus'.. The format is YYYY-MM-DD as defined in [ISO 8601].",
                        "type" : "string",
                        "format" : "date"
                    },
                    "scoreScale" : {
                        "$ref" : "#/components/schemas/ScoreScaleGUIDRefDType"
                    },
                    "scorePercentile" : {
                        "description" : "Model Primitive Datatype = Float. The percentile rank of a score is the percentage of scores in its frequency distribution that are equal to or lower than it.",
                        "type" : "number",
                        "format" : "float"
                    },
                    "scoreStatus" : {
                        "description" : "The status of the score. The value is from an extensible enumerated vocabulary.",
                        "anyOf" : [
                                {
                                    "description" : "Model Primitive Datatype = NormalizedString.",
                                    "type" : "string",
                                    "pattern" : "(ext:)[a-zA-Z0-9\\.\\-_]+"
                                },
                                {
                                    "type" : "string",
                                    "enum" : [ "exempt","fully graded","not submitted","partially graded","submitted" ]
                                }
                        ]
                    },
                    "comment" : {
                        "description" : "Model Primitive Datatype = String. A human readable comment about the score.",
                        "type" : "string"
                    },
                    "learningObjectiveSet" : {
                        "description" : "The set of identifiers for the learning objectives to which this result is aligned. Any number groups of learning objectives can be assigned.",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "$ref" : "#/components/schemas/LearningObjectiveScoreSetDType"
                        }
                    },
                    "inProgress" : {
                        "description" : "This is used to indicate that the associated work activity has been assigned and student's work product is not yet expected to have been submitted.",
                        "type" : "string",
                        "enum" : [ "true","false" ]
                    },
                    "incomplete" : {
                        "description" : "This is used to indicate that the student's work product has been submitted but it is deemed incomplete by the teacher.",
                        "type" : "string",
                        "enum" : [ "true","false" ]
                    },
                    "late" : {
                        "description" : "This is used to indicate that the student's work product is either past due or it has been submitted past the due date. The score on this result may be impacted as as result of this flag.",
                        "type" : "string",
                        "enum" : [ "true","false" ]
                    },
                    "missing" : {
                        "description" : "This is used to indicate that the student's work product as not been submitted.",
                        "type" : "string",
                        "enum" : [ "true","false" ]
                    }
                },
                "required" : [ "sourcedId","status","dateLastModified","assessmentLineItem","student","scoreDate","scoreStatus" ],
                "additionalProperties" : false
            },
            "AssessmentResultSetDType" : {
                "description" : "This is the container for a collection of assessment result instances for a message payload. This may be empty if no instances are found that sustain the applied query constraints. The order is not significant.",
                "type" : "object",
                "properties" : {
                    "assessmentResults" : {
                        "description" : "The collection of assessment result instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "$ref" : "#/components/schemas/AssessmentResultDType"
                        }
                    }
                },
                "additionalProperties" : false
            },
            "CategoriesSetDType" : {
                "description" : "This is the container for a collection of category instances for a message payload. This may be empty if no instances are found that sustain the applied query constraints. The order is not significant.",
                "type" : "object",
                "properties" : {
                    "categories" : {
                        "description" : "The collection of category instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "$ref" : "#/components/schemas/CategoryDType"
                        }
                    }
                },
                "additionalProperties" : false
            },
            "CategoryDType" : {
                "description" : "A Category is the name given to a grouping of line items (line items being equivalent to assignments which students will complete). ",
                "type" : "object",
                "properties" : {
                    "sourcedId" : {
                        "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                        "type" : "string"
                    },
                    "status" : {
                        "description" : "All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                        "type" : "string",
                        "enum" : [ "active","tobedeleted" ]
                    },
                    "dateLastModified" : {
                        "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                        "type" : "string",
                        "format" : "date-time"
                    },
                    "metadata" : {
                        "$ref" : "#/components/schemas/MetadataDType"
                    },
                    "title" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The human readable title for the category.",
                        "type" : "string"
                    },
                    "weight" : {
                        "description" : "Model Primitive Datatype = Float. Total weight of this grading category in calculation of the course final score.",
                        "type" : "number",
                        "format" : "float"
                    }
                },
                "required" : [ "sourcedId","status","dateLastModified","title" ],
                "additionalProperties" : false
            },
            "CategoryGUIDRefDType" : {
                "description" : "This is the container for reference to a OneRoster 'Category' object that has an allocated sourcedId (GUID).",
                "type" : "object",
                "properties" : {
                    "href" : {
                        "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                        "type" : "string",
                        "format" : "uri"
                    },
                    "sourcedId" : {
                        "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                        "type" : "string"
                    },
                    "type" : {
                        "description" : "The type of object being referenced i.e. a 'category'.",
                        "type" : "string",
                        "enum" : [ "category" ]
                    }
                },
                "required" : [ "href","sourcedId","type" ],
                "additionalProperties" : false
            },
            "ClassGUIDRefDType" : {
                "description" : "This is the container for reference to a OneRoster 'Class' object that has an allocated sourcedId (GUID).",
                "type" : "object",
                "properties" : {
                    "href" : {
                        "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                        "type" : "string",
                        "format" : "uri"
                    },
                    "sourcedId" : {
                        "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                        "type" : "string"
                    },
                    "type" : {
                        "description" : "The type of object being referenced i.e. a 'class'.",
                        "type" : "string",
                        "enum" : [ "class" ]
                    }
                },
                "required" : [ "href","sourcedId","type" ],
                "additionalProperties" : false
            },
            "CourseGUIDRefDType" : {
                "description" : "This is the container for reference to a OneRoster 'Course' object that has an allocated sourcedId (GUID).",
                "type" : "object",
                "properties" : {
                    "href" : {
                        "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                        "type" : "string",
                        "format" : "uri"
                    },
                    "sourcedId" : {
                        "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                        "type" : "string"
                    },
                    "type" : {
                        "description" : "The type of object being referenced i.e. a 'course'.",
                        "type" : "string",
                        "enum" : [ "course" ]
                    }
                },
                "required" : [ "href","sourcedId","type" ],
                "additionalProperties" : false
            },
            "GUIDPairDType" : {
                "description" : "The container for the mapping between the supplied (assigned by the requesting system) and allocated (assigned by the responding system) sourcedIds i.e. GUIDs.",
                "type" : "object",
                "properties" : {
                    "suppliedSourcedId" : {
                        "description" : "Model Primitive Datatype = String. The temporary sourcedId that has been allocated by the requesting system. This sourcedId is used to enable identification of the original record for which the new sourcedId has been allocated at the service provider.",
                        "type" : "string"
                    },
                    "allocatedSourcedId" : {
                        "description" : "Model Primitive Datatype = String. The sourcedId that has been allocated by the system on which the new record has been created.",
                        "type" : "string"
                    }
                },
                "required" : [ "suppliedSourcedId","allocatedSourcedId" ],
                "additionalProperties" : false
            },
            "GUIDPairSetDType" : {
                "description" : "The container for the set of sourcedId pairs. This is used to provide the mapping between a set of original/new values allocated to a set of sourcedIds.",
                "type" : "object",
                "properties" : {
                    "sourcedIdPairs" : {
                        "description" : "The set of sourcedId pairs. The order is not significant as each pair contains the information between the original/new values.",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "$ref" : "#/components/schemas/GUIDPairDType"
                        }
                    }
                },
                "additionalProperties" : false
            },
            "LearningObjectiveResultsDType" : {
                "description" : "This is the container for a learning objective identifier. This also allows a mastery score to be aligned with the learning objective.",
                "type" : "object",
                "properties" : {
                    "learningObjectiveId" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The unique identifier for the associated learning objective. If this is a CASE identifier it MUST be a valid UUID.",
                        "type" : "string"
                    },
                    "score" : {
                        "description" : "Model Primitive Datatype = Float. The optional mastery score supplied as a numeric value. ",
                        "type" : "number",
                        "format" : "float"
                    },
                    "textScore" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The optional mastery score supplied in a non-numeric form. ",
                        "type" : "string"
                    }
                },
                "required" : [ "learningObjectiveId" ],
                "additionalProperties" : false
            },
            "LearningObjectiveScoreSetDType" : {
                "description" : "This is the container for the set of learning objective identifiers that are from a single source responsible for creating those identifiers. This also allows a mastery score to be aligned with a learning objective.",
                "type" : "object",
                "properties" : {
                    "source" : {
                        "description" : "The source responsible for creating the learning objective identifiers. The permitted values are from an extensible vocabulary.",
                        "anyOf" : [
                                {
                                    "description" : "Model Primitive Datatype = NormalizedString.",
                                    "type" : "string",
                                    "pattern" : "^/(?!case$)(?!unknown$)[a-z0-9]+$"
                                },
                                {
                                    "type" : "string",
                                    "enum" : [ "case","unknown" ]
                                }
                        ]
                    },
                    "learningObjectiveResults" : {
                        "description" : "The set of unique identifiers for the associated learning objectives (these may have alignment with a mastery score). If these are CASE identifiers they MUST be valid UUIDs.",
                        "type" : "array",
                        "minItems" : 1,
                        "items" : {
                            "$ref" : "#/components/schemas/LearningObjectiveResultsDType"
                        }
                    }
                },
                "required" : [ "source","learningObjectiveResults" ],
                "additionalProperties" : false
            },
            "LearningObjectiveSetDType" : {
                "description" : "This is the container for the set of learning objective identifiers that are from a single source responsible for creating those identifiers.",
                "type" : "object",
                "properties" : {
                    "source" : {
                        "description" : "The source responsible for creating the learning objective identifiers. The permitted values are from an extensible vocabulary.",
                        "anyOf" : [
                                {
                                    "description" : "Model Primitive Datatype = NormalizedString.",
                                    "type" : "string",
                                    "pattern" : "^/(?!case$)(?!unknown$)[a-z0-9]+$"
                                },
                                {
                                    "type" : "string",
                                    "enum" : [ "case","unknown" ]
                                }
                        ]
                    },
                    "learningObjectiveIds" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The set of unique identifiers for the associated learning objectives. If these are CASE identifiers they MUST be valid UUIDs.",
                        "type" : "array",
                        "minItems" : 1,
                        "items" : {
                            "type" : "string"
                        }
                    }
                },
                "required" : [ "source","learningObjectiveIds" ],
                "additionalProperties" : false
            },
            "LineItemDType" : {
                "description" : "This is the container for the definition of a lineItem. A lineItem is a collection of results for a set of students who are completing an assignment as part of a class at a school.",
                "type" : "object",
                "properties" : {
                    "sourcedId" : {
                        "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                        "type" : "string"
                    },
                    "status" : {
                        "description" : "All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                        "type" : "string",
                        "enum" : [ "active","tobedeleted" ]
                    },
                    "dateLastModified" : {
                        "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                        "type" : "string",
                        "format" : "date-time"
                    },
                    "metadata" : {
                        "$ref" : "#/components/schemas/MetadataDType"
                    },
                    "title" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The title, human readable, for the lineItem.  This should allow the lineItem to be distinguished from its peer lineItems.",
                        "type" : "string"
                    },
                    "description" : {
                        "description" : "Model Primitive Datatype = String. A human readable description of the usage of the lineItem.",
                        "type" : "string"
                    },
                    "assignDate" : {
                        "description" : "Model Primitive Datatype = DateTime. The date/time the activity being addressed by the lineItem was assigned to the student. This has a format as defined in [ISO 8601].",
                        "type" : "string",
                        "format" : "date-time"
                    },
                    "dueDate" : {
                        "description" : "Model Primitive Datatype = DateTime. The date/time by which the assignment must be completed and submitted. This has the dateTime format as defined in [ISO 8601].",
                        "type" : "string",
                        "format" : "date-time"
                    },
                    "class" : {
                        "$ref" : "#/components/schemas/ClassGUIDRefDType"
                    },
                    "school" : {
                        "$ref" : "#/components/schemas/OrgGUIDRefDType"
                    },
                    "category" : {
                        "$ref" : "#/components/schemas/CategoryGUIDRefDType"
                    },
                    "gradingPeriod" : {
                        "$ref" : "#/components/schemas/AcadSessionGUIDRefDType"
                    },
                    "academicSession" : {
                        "$ref" : "#/components/schemas/AcadSessionGUIDRefDType"
                    },
                    "scoreScale" : {
                        "$ref" : "#/components/schemas/ScoreScaleGUIDRefDType"
                    },
                    "resultValueMin" : {
                        "description" : "Model Primitive Datatype = Float. The minimum value (numeric) that can be assigned to the score attribute in a result. The score scale mapping should be used to map to other scores.",
                        "type" : "number",
                        "format" : "float"
                    },
                    "resultValueMax" : {
                        "description" : "Model Primitive Datatype = Float. The maximum value (numeric) that can be assigned to the score attribute in a result. The score scale mapping should be used to map to other scores.",
                        "type" : "number",
                        "format" : "float"
                    },
                    "learningObjectiveSet" : {
                        "description" : "The set of identifiers for the learning objectives to which this assessment is aligned. Any number groups of learning objectives can be assigned.",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "$ref" : "#/components/schemas/LearningObjectiveSetDType"
                        }
                    }
                },
                "required" : [ "sourcedId","status","dateLastModified","title","assignDate","dueDate","class","school","category" ],
                "additionalProperties" : false
            },
            "LineItemGUIDRefDType" : {
                "description" : "This is the container for reference to a OneRoster 'LineItem' object that has an allocated sourcedId (GUID).",
                "type" : "object",
                "properties" : {
                    "href" : {
                        "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                        "type" : "string",
                        "format" : "uri"
                    },
                    "sourcedId" : {
                        "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                        "type" : "string"
                    },
                    "type" : {
                        "description" : "The type of object being referenced i.e. a 'lineItem'.",
                        "type" : "string",
                        "enum" : [ "lineItem" ]
                    }
                },
                "required" : [ "href","sourcedId","type" ],
                "additionalProperties" : false
            },
            "LineItemSetDType" : {
                "description" : "This is the container for a collection of lineItem instances for a message payload. This may be empty if no instances are found that sustain the applied query constraints. The order is not significant.",
                "type" : "object",
                "properties" : {
                    "lineItems" : {
                        "description" : "The collection of lineItem instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "$ref" : "#/components/schemas/LineItemDType"
                        }
                    }
                },
                "additionalProperties" : false
            },
            "MetadataDType" : {
                "description" : "The container for the proprietary extensions.",
                "type" : "object",
                "properties" : {

                },
                "additionalProperties" : true
            },
            "OrgGUIDRefDType" : {
                "description" : "This is the container for reference to a OneRoster 'Org' object that has an allocated sourcedId (GUID).",
                "type" : "object",
                "properties" : {
                    "href" : {
                        "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                        "type" : "string",
                        "format" : "uri"
                    },
                    "sourcedId" : {
                        "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                        "type" : "string"
                    },
                    "type" : {
                        "description" : "The type of object being referenced i.e. an 'org'.",
                        "type" : "string",
                        "enum" : [ "org" ]
                    }
                },
                "required" : [ "href","sourcedId","type" ],
                "additionalProperties" : false
            },
            "ResultDType" : {
                "description" : "This is the container for the Result record.  A result consists of the assigned score plus the context for that score.",
                "type" : "object",
                "properties" : {
                    "sourcedId" : {
                        "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                        "type" : "string"
                    },
                    "status" : {
                        "description" : "All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                        "type" : "string",
                        "enum" : [ "active","tobedeleted" ]
                    },
                    "dateLastModified" : {
                        "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                        "type" : "string",
                        "format" : "date-time"
                    },
                    "metadata" : {
                        "$ref" : "#/components/schemas/MetadataDType"
                    },
                    "lineItem" : {
                        "$ref" : "#/components/schemas/LineItemGUIDRefDType"
                    },
                    "student" : {
                        "$ref" : "#/components/schemas/UserGUIDRefDType"
                    },
                    "class" : {
                        "$ref" : "#/components/schemas/ClassGUIDRefDType"
                    },
                    "scoreScale" : {
                        "$ref" : "#/components/schemas/ScoreScaleGUIDRefDType"
                    },
                    "scoreStatus" : {
                        "description" : "The status of the score. The value is from an extensible enumerated vocabulary.",
                        "anyOf" : [
                                {
                                    "description" : "Model Primitive Datatype = NormalizedString.",
                                    "type" : "string",
                                    "pattern" : "(ext:)[a-zA-Z0-9\\.\\-_]+"
                                },
                                {
                                    "type" : "string",
                                    "enum" : [ "exempt","fully graded","not submitted","partially graded","submitted" ]
                                }
                        ]
                    },
                    "score" : {
                        "description" : "Model Primitive Datatype = Float. The score for the result. If a scoreScale is assigned then the value must align with the scale.",
                        "type" : "number",
                        "format" : "float"
                    },
                    "textScore" : {
                        "description" : "Model Primitive Datatype = NormalizedString. An optional non-numeric score value. If a scoreScale is assigned then the value must align with the scale. This attribute was added in OR 1.2.",
                        "type" : "string"
                    },
                    "scoreDate" : {
                        "description" : "Model Primitive Datatype = Date. The date at which the score is assigned or there is an update to the result e.g. change in the 'scoreStatus'. The format is YYYY-MM-DD as defined in [ISO 8601].",
                        "type" : "string",
                        "format" : "date"
                    },
                    "comment" : {
                        "description" : "Model Primitive Datatype = String. A human readable comment about the score.",
                        "type" : "string"
                    },
                    "learningObjectiveSet" : {
                        "description" : "The set of identifiers for the learning objectives to which this result is aligned. Any number groups of learning objectives can be assigned.",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "$ref" : "#/components/schemas/LearningObjectiveScoreSetDType"
                        }
                    },
                    "inProgress" : {
                        "description" : "This is used to indicate that the associated work activity has been assigned and student's work product is not yet expected to have been submitted.",
                        "type" : "string",
                        "enum" : [ "true","false" ]
                    },
                    "incomplete" : {
                        "description" : "This is used to indicate that the student's work product has been submitted but it is deemed incomplete by the teacher.",
                        "type" : "string",
                        "enum" : [ "true","false" ]
                    },
                    "late" : {
                        "description" : "This is used to indicate that the student's work product is either past due or it has been submitted past the due date. The score on this result may be impacted as as result of this flag.",
                        "type" : "string",
                        "enum" : [ "true","false" ]
                    },
                    "missing" : {
                        "description" : "This is used to indicate that the student's work product as not been submitted.",
                        "type" : "string",
                        "enum" : [ "true","false" ]
                    }
                },
                "required" : [ "sourcedId","status","dateLastModified","lineItem","student","scoreStatus","scoreDate" ],
                "additionalProperties" : false
            },
            "ResultSetDType" : {
                "description" : "This is the container for a collection of result instances for a message payload. This may be empty if no instances are found that sustain the applied query constraints. The order is not significant.",
                "type" : "object",
                "properties" : {
                    "results" : {
                        "description" : "The collection of result instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "$ref" : "#/components/schemas/ResultDType"
                        }
                    }
                },
                "additionalProperties" : false
            },
            "ScoreScaleDType" : {
                "description" : "The container for the definition Score Scale mapping i.e. the relationship between two score scales.",
                "type" : "object",
                "properties" : {
                    "sourcedId" : {
                        "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                        "type" : "string"
                    },
                    "status" : {
                        "description" : "All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                        "type" : "string",
                        "enum" : [ "active","tobedeleted" ]
                    },
                    "dateLastModified" : {
                        "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                        "type" : "string",
                        "format" : "date-time"
                    },
                    "metadata" : {
                        "$ref" : "#/components/schemas/MetadataDType"
                    },
                    "title" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The human readable title for the score scale mapping.",
                        "type" : "string"
                    },
                    "type" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The type of score scale mapping. At present there is no predefined vocabulary. This should be used by an organization to differentiate between the score scales that it produces.",
                        "type" : "string"
                    },
                    "course" : {
                        "$ref" : "#/components/schemas/CourseGUIDRefDType"
                    },
                    "class" : {
                        "$ref" : "#/components/schemas/ClassGUIDRefDType"
                    },
                    "scoreScaleValue" : {
                        "description" : "The set of mappings for this score scale.",
                        "type" : "array",
                        "minItems" : 1,
                        "items" : {
                            "$ref" : "#/components/schemas/ScoreScaleValueDType"
                        }
                    }
                },
                "required" : [ "sourcedId","status","dateLastModified","title","type","class","scoreScaleValue" ],
                "additionalProperties" : false
            },
            "ScoreScaleGUIDRefDType" : {
                "description" : "This is the container for reference to a OneRoster 'ScoreScale' object that has an allocated sourcedId (GUID).",
                "type" : "object",
                "properties" : {
                    "href" : {
                        "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                        "type" : "string",
                        "format" : "uri"
                    },
                    "sourcedId" : {
                        "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                        "type" : "string"
                    },
                    "type" : {
                        "description" : "The type of object being referenced i.e. a 'scoreScale'.",
                        "type" : "string",
                        "enum" : [ "scoreScale" ]
                    }
                },
                "required" : [ "href","sourcedId","type" ],
                "additionalProperties" : false
            },
            "ScoreScaleSetDType" : {
                "description" : "This is the container for a collection of scoreScale instances for a message payload. This may be empty if no instances are found that sustain the applied query constraints. The order is not significant.",
                "type" : "object",
                "properties" : {
                    "scoreScales" : {
                        "description" : "The collection of scoreScale instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "$ref" : "#/components/schemas/ScoreScaleDType"
                        }
                    }
                },
                "additionalProperties" : false
            },
            "ScoreScaleValueDType" : {
                "description" : "A specific mapping of values between two score scales. The left hand side (LHS) value is the reference point. Examples of this mapping are: '7' maps to 'A', '7'-'10' maps to 'A', etc.",
                "type" : "object",
                "properties" : {
                    "itemValueLHS" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The left hand side value of the mapping relationship. The format is either a single value ('x') or a range ('x' - 'y'). In the case of a single value this is considered to be the inclusive lower value for the implied range. When a range is specified (lower-to-upper) the values are inclusive.",
                        "type" : "string"
                    },
                    "itemValueRHS" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The right hand side value of the mapping relationship  i.e. the equivalent value to the reference point defined in the LHS.",
                        "type" : "string"
                    }
                },
                "required" : [ "itemValueLHS","itemValueRHS" ],
                "additionalProperties" : false
            },
            "SingleAssessmentLineItemDType" : {
                "description" : "This is the container for a single assessment lineItem instance for a message payload.",
                "type" : "object",
                "properties" : {
                    "assessmentLineItem" : {
                        "$ref" : "#/components/schemas/AssessmentLineItemDType"
                    }
                },
                "required" : [ "assessmentLineItem" ],
                "additionalProperties" : false
            },
            "SingleAssessmentResultDType" : {
                "description" : "This is the container for a single assessment result instance for a message payload.",
                "type" : "object",
                "properties" : {
                    "assessmentResult" : {
                        "$ref" : "#/components/schemas/AssessmentResultDType"
                    }
                },
                "required" : [ "assessmentResult" ],
                "additionalProperties" : false
            },
            "SingleCategoryDType" : {
                "description" : "This is the container for a single category instance for a message payload.",
                "type" : "object",
                "properties" : {
                    "category" : {
                        "$ref" : "#/components/schemas/CategoryDType"
                    }
                },
                "required" : [ "category" ],
                "additionalProperties" : false
            },
            "SingleLineItemDType" : {
                "description" : "This is the container for a single lineItem instance for a message payload.",
                "type" : "object",
                "properties" : {
                    "lineItem" : {
                        "$ref" : "#/components/schemas/LineItemDType"
                    }
                },
                "required" : [ "lineItem" ],
                "additionalProperties" : false
            },
            "SingleResultDType" : {
                "description" : "This is the container for a single result instance for a message payload.",
                "type" : "object",
                "properties" : {
                    "result" : {
                        "$ref" : "#/components/schemas/ResultDType"
                    }
                },
                "required" : [ "result" ],
                "additionalProperties" : false
            },
            "SingleScoreScaleDType" : {
                "description" : "This is the container for a single scoreScale instance for a message payload.",
                "type" : "object",
                "properties" : {
                    "scoreScale" : {
                        "$ref" : "#/components/schemas/ScoreScaleDType"
                    }
                },
                "required" : [ "scoreScale" ],
                "additionalProperties" : false
            },
            "UserGUIDRefDType" : {
                "description" : "This is the container for reference to a OneRoster 'User' object that has an allocated sourcedId (GUID).",
                "type" : "object",
                "properties" : {
                    "href" : {
                        "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                        "type" : "string",
                        "format" : "uri"
                    },
                    "sourcedId" : {
                        "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                        "type" : "string"
                    },
                    "type" : {
                        "description" : "The type of object being referenced i.e. a 'user'.",
                        "type" : "string",
                        "enum" : [ "user" ]
                    }
                },
                "required" : [ "href","sourcedId","type" ],
                "additionalProperties" : false
            },
            "imsx_CodeMinorDType" : {
                "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
                "type" : "object",
                "properties" : {
                    "imsx_codeMinorField" : {
                        "description" : "Each reported code minor status code.",
                        "type" : "array",
                        "minItems" : 1,
                        "items" : {
                            "$ref" : "#/components/schemas/imsx_CodeMinorFieldDType"
                        }
                    }
                },
                "required" : [ "imsx_codeMinorField" ],
                "additionalProperties" : false
            },
            "imsx_CodeMinorFieldDType" : {
                "description" : "This is the container for a single code minor status code.",
                "type" : "object",
                "properties" : {
                    "imsx_codeMinorFieldName" : {
                        "description" : "Model Primitive Datatype = NormalizedString. This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
                        "type" : "string",
                        "default" : "TargetEndSystem"
                    },
                    "imsx_codeMinorFieldValue" : {
                        "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
                        "type" : "string",
                        "enum" : [ "fullsuccess","invalid_filter_field","invalid_selection_field","invaliddata","unauthorisedrequest","internal_server_error",
                                    "server_busy","deletefailure","unknownobject","forbidden" ]
                    }
                },
                "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
                "additionalProperties" : false
            },
            "imsx_StatusInfoDType" : {
                "description" : "This is the container for the status code and associated information returned within the HTTP messages received from the Service Provider. For the OneRoster Rostering 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" : {
                        "description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
                        "type" : "string",
                        "enum" : [ "success","processing","failure","unsupported" ]
                    },
                    "imsx_severity" : {
                        "description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
                        "type" : "string",
                        "enum" : [ "status","warning","error" ]
                    },
                    "imsx_description" : {
                        "description" : "Model Primitive Datatype = String. A human readable description supplied by the entity creating the status code information.",
                        "type" : "string"
                    },
                    "imsx_CodeMinor" : {
                        "$ref" : "#/components/schemas/imsx_CodeMinorDType"
                    }
                },
                "required" : [ "imsx_codeMajor","imsx_severity" ],
                "additionalProperties" : false
            }
        }
    }
}
        

B1.3 OpenAPI 3.1 JSON Listing

The OpenAPI 3.1 (JSON) listing (based upon [OAS, 21]) is shown below (the OpenAPI JSON is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/openapi/onerosterv1p2gradebookservice_openapi3p1_v1p0.json).

{
    "openapi" : "3.1.0",
    "info" : {
        "version" : "1.2",
        "title" : "OneRoster Gradebook Service OpenAPI (JSON) Definition",
        "description" : "The OneRoster Gradebook service binding is available in REST/JSON. The model is based upon the IMS PSM modelling approach.",
        "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" : "Vice President of Operations, 1EdTech",
            "url" : "https://www.1edtech.org",
            "email" : "operations@1edtech.org"
        },
        "license" : {
            "name" : "1EdTech",
            "url" : "https://www.1edtech.org/license.html"
        }
    },
    "servers" : [
        {
            "url" : "https://{hostName}{basePath}",
            "description" : "The pattern for the Server URL should be configured for the actual server location.",
            "variables" : {
                "hostName" : {
                    "description" : "This is the hostname for the server and MUST be set to the actual service provider (the 1EdTech url is given as a default value).",
                    "default" : "www.imsglobal.org"
                },
                "basePath" : {
                    "description" : "This is the base-path for the full URL and MUST be a part of the service endpoints.",
                    "enum" : ["/ims/oneroster/gradebook/v1p2"],
                    "default" : "/ims/oneroster/gradebook/v1p2"
                }
            }
        }
    ],
    "tags" : [
        {
            "name" : "AssessmentLineItemsManagement",
            "description" : "This enables the management of the assessment lineItems i.e. lineitems that are used to store results about tests/assessments and where these test/assessments are not aligned to a class."
        },
        {
            "name" : "AssessmentResultsManagement",
            "description" : "This enables the management of the assessment results i.e. results that are used to store scores for tests/assessments and where these test/assessments are not aligned to a class."
        },
        {
            "name" : "CategoriesManagement",
            "description" : "This enables the management of Categories i.e. collections of LineItems."
        },
        {
            "name" : "ClassesManagement",
            "description" : "This enables the management of Classes i.e. scheduled learning of courses, with respect to scoreScales. For this service this is the collection of operations that provide gradebook data in the context of a class identifier."
        },
        {
            "name" : "LineItemsManagement",
            "description" : "This enables the management of lineItems i.e. the set of results for the assessment of some activity."
        },
        {
            "name" : "ResultsManagement",
            "description" : "This enables the management of results i.e. the score allocated to a learner from the assessent of a learning activity. Results are collected as a set of 'lineItems'."
        },
        {
            "name" : "SchoolsManagement",
            "description" : "This enables the management of information about schools with respect to scoreScales. A school is a type of 'org'. For this service this is the collection of operations that provide gradebook data in the context of a school identifier."
        },
        {
            "name" : "ScoreScalesManagement",
            "description" : "This enables the management of scoreScales i.e. the set of scales for the results and lineItems."
        }
    ],
    "paths" : {
        "/assessmentLineItems" : {
            "get" : {
                "operationId" : "getAllAssessmentLineItems",
                "summary" : "The REST read request message for the getAllAssessmentLineItems() API call.",
                "tags" : [ "AssessmentLineItemsManagement" ],
                "description" : "Get all of the Assessment Line Items on the service provider.",
                "parameters" : [
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 100,
                        "minimum" : 1,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 0,
                        "minimum" : 0,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "enum" : [ "asc","desc" ],
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/AssessmentLineItemSetDType"
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "type" : "integer"
                            }
                        }
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/assessmentLineItems/{sourcedId}" : {
            "get" : {
                "operationId" : "getAssessmentLineItem",
                "summary" : "The REST read request message for the getAssessmentLineItem() API call.",
                "tags" : [ "AssessmentLineItemsManagement" ],
                "description" : "Get a specific Assessment LineItem on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.",
                "parameters" : [
                    {
                        "name" : "sourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for this assessment lineItem.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/SingleAssessmentLineItemDType"
                        }
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    }
                }
            },
            "delete" : {
                "operationId" : "deleteAssessmentLineItem",
                "summary" : "The REST delete request message for the deleteAssessmentLineItem() API call.",
                "tags" : [ "AssessmentLineItemsManagement" ],
                "description" : "Delete a specific Assessment LineItem on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.",
                "parameters" : [
                    {
                        "name" : "sourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the assessment lineItem to be deleted.",
                        "required" : true,
                        "type" : "string"
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.delete"
                        ]
                    }
                ],
                "responses" : {
                    "204" : {
                        "description" : "The object has been successfully deleted. "
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    }
                }
            },
            "put" : {
                "operationId" : "putAssessmentLineItem",
                "summary" : "The REST create request message for the putAssessmentLineItem() API call.",
                "tags" : [ "AssessmentLineItemsManagement" ],
                "description" : "To create a new Assessment LineItem. The associated sourcedId for this new record is supplied by the requesting system.",
                "parameters" : [
                    {
                        "name" : "sourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, to be allocated to this new assessment lineItem.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "assessmentLineItem",
                        "in" : "body",
                        "description" : "The assessment lineItem data that is to be stored.",
                        "required" : true,
                        "schema" : {
                            "$ref" : "#/definitions/SingleAssessmentLineItemDType"
                        }
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.createput"
                        ]
                    }
                ],
                "responses" : {
                    "201" : {
                        "description" : "The object has been successfully stored in the Service Provider repository."
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/assessmentResults" : {
            "get" : {
                "operationId" : "getAllAssessmentResults",
                "summary" : "The REST read request message for the getAllAssessmentResults() API call.",
                "tags" : [ "AssessmentResultsManagement" ],
                "description" : "Get all of the Assessment Results on the service provider.",
                "parameters" : [
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 100,
                        "minimum" : 1,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 0,
                        "minimum" : 0,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "enum" : [ "asc","desc" ],
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/AssessmentResultSetDType"
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "type" : "integer"
                            }
                        }
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/assessmentResults/{sourcedId}" : {
            "get" : {
                "operationId" : "getAssessmentResult",
                "summary" : "The REST read request message for the getAssessmentResult() API call.",
                "tags" : [ "AssessmentResultsManagement" ],
                "description" : "Get a specific Assessment Result on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.",
                "parameters" : [
                    {
                        "name" : "sourcedId",
                        "in" : "path",
                        "description" : "Tthe unique identifier, GUID, for this assessment result.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/SingleAssessmentResultDType"
                        }
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    }
                }
            },
            "delete" : {
                "operationId" : "deleteAssessmentResult",
                "summary" : "The REST delete request message for the deleteAssessmentResult() API call.",
                "tags" : [ "AssessmentResultsManagement" ],
                "description" : "Delete a specific Assessment Result on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.",
                "parameters" : [
                    {
                        "name" : "sourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the assessment result to be deleted.",
                        "required" : true,
                        "type" : "string"
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.delete"
                        ]
                    }
                ],
                "responses" : {
                    "204" : {
                        "description" : "The object has been successfully deleted. "
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    }
                }
            },
            "put" : {
                "operationId" : "putAssessmentResult",
                "summary" : "The REST create request message for the putAssessmentResult() API call.",
                "tags" : [ "AssessmentResultsManagement" ],
                "description" : "To create a new Assessment Result. The associated sourcedId for this new record is supplied by the requesting system.",
                "parameters" : [
                    {
                        "name" : "sourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, to be allocated to this new assessment result.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "assessmentResult",
                        "in" : "body",
                        "description" : "The assessment result data that is to be stored.",
                        "required" : true,
                        "schema" : {
                            "$ref" : "#/definitions/SingleAssessmentResultDType"
                        }
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.createput"
                        ]
                    }
                ],
                "responses" : {
                    "201" : {
                        "description" : "The object has been successfully stored in the Service Provider repository."
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/categories" : {
            "get" : {
                "operationId" : "getAllCategories",
                "summary" : "The REST read request message for the getAllCategories() API call.",
                "tags" : [ "CategoriesManagement" ],
                "description" : "Get all of the lineItem categories on the service provider.",
                "parameters" : [
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 100,
                        "minimum" : 1,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 0,
                        "minimum" : 0,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "enum" : [ "asc","desc" ],
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook-core.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/CategoriesSetDType"
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "type" : "integer"
                            }
                        }
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/categories/{sourcedId}" : {
            "get" : {
                "operationId" : "getCategory",
                "summary" : "The REST read request message for the getCategory() API call.",
                "tags" : [ "CategoriesManagement" ],
                "description" : "Get a specific lineItem category on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.",
                "parameters" : [
                    {
                        "name" : "sourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for this category.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook-core.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/SingleCategoryDType"
                        }
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    }
                }
            },
            "delete" : {
                "operationId" : "deleteCategory",
                "summary" : "The REST delete request message for the deleteCategory() API call.",
                "tags" : [ "CategoriesManagement" ],
                "description" : "Delete a specific lineItem category on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.",
                "parameters" : [
                    {
                        "name" : "sourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the category to be deleted.",
                        "required" : true,
                        "type" : "string"
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.delete"
                        ]
                    }
                ],
                "responses" : {
                    "204" : {
                        "description" : "The object has been successfully deleted. "
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    }
                }
            },
            "put" : {
                "operationId" : "putCategory",
                "summary" : "The REST create request message for the putCategory() API call.",
                "tags" : [ "CategoriesManagement" ],
                "description" : "To create a new lineItem category. The associated sourcedId for this new record is supplied by the requesting system.",
                "parameters" : [
                    {
                        "name" : "sourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, to be allocated to this new category.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "category",
                        "in" : "body",
                        "description" : "The category data that is to be stored.",
                        "required" : true,
                        "schema" : {
                            "$ref" : "#/definitions/SingleCategoryDType"
                        }
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createput"
                        ]
                    }
                ],
                "responses" : {
                    "201" : {
                        "description" : "The object has been successfully stored in the Service Provider repository."
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/classes/{classSourcedId}/academicSessions/{academicSessionSourcedId}/results" : {
            "post" : {
                "operationId" : "postResultsForAcademicSessionForClass",
                "summary" : "The REST createbp request message for the postResultsForAcademicSessionForClass() API call.",
                "tags" : [ "ClassesManagement" ],
                "description" : "To create a set of results for a specific academic session and specific class. The responding system must return the set of sourcedIds that have been allocated to the newly created result records. If the corresponding class or academic session cannot be located then an 'unknown' error code is returned.",
                "parameters" : [
                    {
                        "name" : "classSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the class.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "academicSessionSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the academic session.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "results",
                        "in" : "body",
                        "description" : "The set of result records to be created in response to this request. This includes an initial assignment of sourcedId so that the mapping between this and the actually assigned sourcedId can be reported. ",
                        "required" : true,
                        "schema" : {
                            "$ref" : "#/definitions/ResultSetDType"
                        }
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createpost"
                        ]
                    }
                ],
                "responses" : {
                    "201" : {
                        "description" : "The object has been successfully stored in the Service Provider repository.",
                        "schema" : {
                            "$ref" : "#/definitions/GUIDPairSetDType"
                        }
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/classes/{classSourcedId}/categories" : {
            "get" : {
                "operationId" : "getCategoriesForClass",
                "summary" : "The REST read request message for the getCategoriesForClass() API call.",
                "tags" : [ "ClassesManagement" ],
                "description" : "Get the set of categories on the service provider for a specific class. If the corresponding class cannot be located then an 'unknown' error code is returned.",
                "parameters" : [
                    {
                        "name" : "classSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the class.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 100,
                        "minimum" : 1,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 0,
                        "minimum" : 0,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "enum" : [ "asc","desc" ],
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/CategoriesSetDType"
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "type" : "integer"
                            }
                        }
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/classes/{classSourcedId}/lineItems" : {
            "get" : {
                "operationId" : "getLineItemsForClass",
                "summary" : "The REST read request message for the getLineItemsForClass() API call.",
                "tags" : [ "ClassesManagement" ],
                "description" : "Get the set of lineItems on the service provider for a specific class. If the corresponding class cannot be located then an 'unknown' error code is returned.",
                "parameters" : [
                    {
                        "name" : "classSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the class.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 100,
                        "minimum" : 1,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 0,
                        "minimum" : 0,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "enum" : [ "asc","desc" ],
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/LineItemSetDType"
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "type" : "integer"
                            }
                        }
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    }
                }
            },
            "post" : {
                "operationId" : "postLineItemsForClass",
                "summary" : "The REST createbp request message for the postLineItemsForClass() API call.",
                "tags" : [ "ClassesManagement" ],
                "description" : "To create a set of lineItems for a specific class. The responding system must return the set of sourcedIds that have been allocated to the newly created lineItem records. If the corresponding class cannot be located then an 'unknown' error code is returned.",
                "parameters" : [
                    {
                        "name" : "classSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the class.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "lineItems",
                        "in" : "body",
                        "description" : "The set of lineItem records to be created in response to this request. This includes an initial assignment of sourcedId so that the mapping between this and the actually assigned sourcedId can be reported. ",
                        "required" : true,
                        "schema" : {
                            "$ref" : "#/definitions/LineItemSetDType"
                        }
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createpost"
                        ]
                    }
                ],
                "responses" : {
                    "201" : {
                        "description" : "The object has been successfully stored in the Service Provider repository.",
                        "schema" : {
                            "$ref" : "#/definitions/GUIDPairSetDType"
                        }
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/classes/{classSourcedId}/lineItems/{lineItemSourcedId}/results" : {
            "get" : {
                "operationId" : "getResultsForLineItemForClass",
                "summary" : "The REST read request message for the getResultsForLineItemForClass() API call.",
                "tags" : [ "ClassesManagement" ],
                "description" : "Get the set of results on the service provider for a specific lineItem and for a specific class. If the corresponding class cannot be located then an 'unknown' error code is returned.",
                "parameters" : [
                    {
                        "name" : "classSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the class.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "lineItemSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the lineItem.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 100,
                        "minimum" : 1,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 0,
                        "minimum" : 0,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "enum" : [ "asc","desc" ],
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/ResultSetDType"
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "type" : "integer"
                            }
                        }
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/classes/{classSourcedId}/results" : {
            "get" : {
                "operationId" : "getResultsForClass",
                "summary" : "The REST read request message for the getResultsForClass() API call.",
                "tags" : [ "ClassesManagement" ],
                "description" : "Get the set of results on the service provider for a specific class. If the corresponding class cannot be located then an 'unknown' error code is returned.",
                "parameters" : [
                    {
                        "name" : "classSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the class.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 100,
                        "minimum" : 1,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 0,
                        "minimum" : 0,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "enum" : [ "asc","desc" ],
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/ResultSetDType"
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "type" : "integer"
                            }
                        }
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/classes/{classSourcedId}/scoreScales" : {
            "get" : {
                "operationId" : "getScoreScalesForClass",
                "summary" : "The REST read request message for the getScoreScalesForClass() API call.",
                "tags" : [ "ClassesManagement" ],
                "description" : "Get the set of scoreScales on the service provider for a specific class. If the corresponding class cannot be located then an 'unknown' error code is returned.",
                "parameters" : [
                    {
                        "name" : "classSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the class.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 100,
                        "minimum" : 1,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 0,
                        "minimum" : 0,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "enum" : [ "asc","desc" ],
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/ScoreScaleSetDType"
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "type" : "integer"
                            }
                        }
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/classes/{classSourcedId}/students/{studentSourcedId}/results" : {
            "get" : {
                "operationId" : "getResultsForStudentForClass",
                "summary" : "The REST read request message for the getResultsForStudentForClass() API call.",
                "tags" : [ "ClassesManagement" ],
                "description" : "Get the set of results on the service provider for a specific student and for a specific class. If the corresponding class cannot be located then an 'unknown' error code is returned.",
                "parameters" : [
                    {
                        "name" : "classSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the class.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "studentSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the student.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 100,
                        "minimum" : 1,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 0,
                        "minimum" : 0,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "enum" : [ "asc","desc" ],
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/ResultSetDType"
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "type" : "integer"
                            }
                        }
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/lineItems" : {
            "get" : {
                "operationId" : "getAllLineItems",
                "summary" : "The REST read request message for the getAllLineItems() API call.",
                "tags" : [ "LineItemsManagement" ],
                "description" : "Get all of the Line Items on the service provider.",
                "parameters" : [
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 100,
                        "minimum" : 1,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 0,
                        "minimum" : 0,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "enum" : [ "asc","desc" ],
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook-core.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/LineItemSetDType"
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "type" : "integer"
                            }
                        }
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/lineItems/{lineItemSourcedId}/results" : {
            "post" : {
                "operationId" : "postResultsForLineItem",
                "summary" : "The REST createbp request message for the postResultsForLineItem() API call.",
                "tags" : [ "LineItemsManagement" ],
                "description" : "To create a set of results for a specific lineItem. The responding system must return the set of sourcedIds that have been allocated to the newly created result records.",
                "parameters" : [
                    {
                        "name" : "lineItemSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the lineItem.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "results",
                        "in" : "body",
                        "description" : "The set of result records to be created in response to this request. This includes an initial assignment of sourcedId so that the mapping between this and the actually assigned sourcedId can be reported. ",
                        "required" : true,
                        "schema" : {
                            "$ref" : "#/definitions/ResultSetDType"
                        }
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createpost"
                        ]
                    }
                ],
                "responses" : {
                    "201" : {
                        "description" : "The object has been successfully stored in the Service Provider repository.",
                        "schema" : {
                            "$ref" : "#/definitions/GUIDPairSetDType"
                        }
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/lineItems/{sourcedId}" : {
            "get" : {
                "operationId" : "getLineItem",
                "summary" : "The REST read request message for the getLineItem() API call.",
                "tags" : [ "LineItemsManagement" ],
                "description" : "Get a specific LineItem on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.",
                "parameters" : [
                    {
                        "name" : "sourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for this lineItem.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook-core.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/SingleLineItemDType"
                        }
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    }
                }
            },
            "delete" : {
                "operationId" : "deleteLineItem",
                "summary" : "The REST delete request message for the deleteLineItem() API call.",
                "tags" : [ "LineItemsManagement" ],
                "description" : "Delete a specific lineItem on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.",
                "parameters" : [
                    {
                        "name" : "sourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the lineItem to be deleted.",
                        "required" : true,
                        "type" : "string"
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.delete"
                        ]
                    }
                ],
                "responses" : {
                    "204" : {
                        "description" : "The object has been successfully deleted. "
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    }
                }
            },
            "put" : {
                "operationId" : "putLineItem",
                "summary" : "The REST create request message for the putLineItem() API call.",
                "tags" : [ "LineItemsManagement" ],
                "description" : "To create a new lineItem. The associated sourcedId for this new record is supplied by the requesting system.",
                "parameters" : [
                    {
                        "name" : "sourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, to be allocated to this new lineItem.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "lineItem",
                        "in" : "body",
                        "description" : "The lineItem data that is to be stored.",
                        "required" : true,
                        "schema" : {
                            "$ref" : "#/definitions/SingleLineItemDType"
                        }
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createput"
                        ]
                    }
                ],
                "responses" : {
                    "201" : {
                        "description" : "The object has been successfully stored in the Service Provider repository."
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/results" : {
            "get" : {
                "operationId" : "getAllResults",
                "summary" : "The REST read request message for the getAllResults() API call.",
                "tags" : [ "ResultsManagement" ],
                "description" : "Get all of the results on the service provider.",
                "parameters" : [
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 100,
                        "minimum" : 1,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 0,
                        "minimum" : 0,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "enum" : [ "asc","desc" ],
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook-core.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/ResultSetDType"
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "type" : "integer"
                            }
                        }
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/results/{sourcedId}" : {
            "get" : {
                "operationId" : "getResult",
                "summary" : "The REST read request message for the getResult() API call.",
                "tags" : [ "ResultsManagement" ],
                "description" : "Get a specific result on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.",
                "parameters" : [
                    {
                        "name" : "sourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for this result.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook-core.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/SingleResultDType"
                        }
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    }
                }
            },
            "delete" : {
                "operationId" : "deleteResult",
                "summary" : "The REST delete request message for the deleteResult() API call.",
                "tags" : [ "ResultsManagement" ],
                "description" : "Delete a specific result on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.",
                "parameters" : [
                    {
                        "name" : "sourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the result to be deleted.",
                        "required" : true,
                        "type" : "string"
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.delete"
                        ]
                    }
                ],
                "responses" : {
                    "204" : {
                        "description" : "The object has been successfully deleted. "
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    }
                }
            },
            "put" : {
                "operationId" : "putResult",
                "summary" : "The REST create request message for the putResult() API call.",
                "tags" : [ "ResultsManagement" ],
                "description" : "To create a new result. The associated sourcedId for this new record is supplied by the requesting system.",
                "parameters" : [
                    {
                        "name" : "sourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, to be allocated to this new result.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "result",
                        "in" : "body",
                        "description" : "The result data that is to be stored.",
                        "required" : true,
                        "schema" : {
                            "$ref" : "#/definitions/SingleResultDType"
                        }
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createput"
                        ]
                    }
                ],
                "responses" : {
                    "201" : {
                        "description" : "The object has been successfully stored in the Service Provider repository."
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/schools/{schoolSourcedId}/lineItems" : {
            "post" : {
                "operationId" : "postLineItemsForSchool",
                "summary" : "The REST createbp request message for the postLineItemsForSchool() API call.",
                "tags" : [ "SchoolsManagement" ],
                "description" : "To create a set of lineItems for a specific school.  The responding system must return the set of sourcedIds that have been allocated to the newly created lineItem records.",
                "parameters" : [
                    {
                        "name" : "schoolSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the school.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "lineItems",
                        "in" : "body",
                        "description" : "The set of lineItem records to be created in response to this request. This includes an initial assignment of sourcedId so that the mapping between this and the actually assigned sourcedId can be reported. ",
                        "required" : true,
                        "schema" : {
                            "$ref" : "#/definitions/LineItemSetDType"
                        }
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createpost"
                        ]
                    }
                ],
                "responses" : {
                    "201" : {
                        "description" : "The object has been successfully stored in the Service Provider repository.",
                        "schema" : {
                            "$ref" : "#/definitions/GUIDPairSetDType"
                        }
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/schools/{schoolSourcedId}/scoreScales" : {
            "get" : {
                "operationId" : "getScoreScalesForSchool",
                "summary" : "The REST read request message for the getScoreScalesForSchool() API call.",
                "tags" : [ "SchoolsManagement" ],
                "description" : "Get the set of scoreScales on the service provider for a specific school. If the corresponding school cannot be located then an 'unknown' error code is returned.",
                "parameters" : [
                    {
                        "name" : "schoolSourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the school.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 100,
                        "minimum" : 1,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 0,
                        "minimum" : 0,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "enum" : [ "asc","desc" ],
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/ScoreScaleSetDType"
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "type" : "integer"
                            }
                        }
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/scoreScales" : {
            "get" : {
                "operationId" : "getAllScoreScales",
                "summary" : "The REST read request message for the getAllScoreScales() API call.",
                "tags" : [ "ScoreScalesManagement" ],
                "description" : "Get all of the ScoreScales on the service provider.",
                "parameters" : [
                    {
                        "name" : "limit",
                        "in" : "query",
                        "description" : "To define the download segmentation value i.e. the maximum number of records to be contained in the response.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 100,
                        "minimum" : 1,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "offset",
                        "in" : "query",
                        "description" : "The number of the first record to be supplied in the segmented response message.",
                        "required" : false,
                        "type" : "integer",
                        "format" : "int32",
                        "default" : 0,
                        "minimum" : 0,
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "sort",
                        "in" : "query",
                        "description" : "Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "orderBy",
                        "in" : "query",
                        "description" : "The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.",
                        "required" : false,
                        "type" : "string",
                        "enum" : [ "asc","desc" ],
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "filter",
                        "in" : "query",
                        "description" : "The filtering rules to be applied when identifying the records to be supplied in the response message.",
                        "required" : false,
                        "type" : "string",
                        "allowEmptyValue" : false
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook-core.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/ScoreScaleSetDType"
                        },
                        "headers" : {
                            "X-Total-Count" : {
                                "description" : "The total number of resources that are available to be returned",
                                "type" : "integer"
                            }
                        }
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    }
                }
            }
        },
        "/scoreScales/{sourcedId}" : {
            "get" : {
                "operationId" : "getScoreScale",
                "summary" : "The REST read request message for the getScoreScale() API call.",
                "tags" : [ "ScoreScalesManagement" ],
                "description" : "Get a specific scoreScale on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.",
                "parameters" : [
                    {
                        "name" : "sourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for this scoreScale.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "fields",
                        "in" : "query",
                        "description" : "To identify the range of fields that should be supplied in the response message.",
                        "required" : false,
                        "type" : "array",
                        "items" : {
                            "type" : "string"
                        },
                        "collectionFormat" : "csv",
                        "allowEmptyValue" : false
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook-core.readonly"
                        ]
                    }
                ],
                "responses" : {
                    "200" : {
                        "description" : "The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.",
                        "schema" : {
                            "$ref" : "#/definitions/SingleScoreScaleDType"
                        }
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    }
                }
            },
            "delete" : {
                "operationId" : "deleteScoreScale",
                "summary" : "The REST delete request message for the deleteScoreScale() API call.",
                "tags" : [ "ScoreScalesManagement" ],
                "description" : "Delete a specific scoreScale on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.",
                "parameters" : [
                    {
                        "name" : "sourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, for the scoreScale to be deleted.",
                        "required" : true,
                        "type" : "string"
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.delete"
                        ]
                    }
                ],
                "responses" : {
                    "204" : {
                        "description" : "The object has been successfully deleted. "
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    }
                }
            },
            "put" : {
                "operationId" : "putScoreScale",
                "summary" : "The REST create request message for the putScoreScale() API call.",
                "tags" : [ "ScoreScalesManagement" ],
                "description" : "To create a new scoreScale. The associated sourcedId for this new record is supplied by the requesting system.",
                "parameters" : [
                    {
                        "name" : "sourcedId",
                        "in" : "path",
                        "description" : "The unique identifier, GUID, to be allocated to this new scoreScale.",
                        "required" : true,
                        "type" : "string"
                    },
                    {
                        "name" : "scoreScale",
                        "in" : "body",
                        "description" : "The scoreScale data that is to be stored.",
                        "required" : true,
                        "schema" : {
                            "$ref" : "#/definitions/SingleScoreScaleDType"
                        }
                    }
                ],
                "security" : [
                    {
                        "OAuth2CC" : [
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createput"
                        ]
                    }
                ],
                "responses" : {
                    "201" : {
                        "description" : "The object has been successfully stored in the Service Provider repository."
                    },
                    "default" : {
                        "description" : "This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "404" : {
                        "description" : "Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. ",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "422" : {
                        "description" : "This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.",
                        "schema" : {
                            "$ref" : "#/definitions/imsx_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    },
                    "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_StatusInfoDType"
                        }
                    }
                }
            }
        }
    },
    "components" : {
        "securitySchemes" : {
            "OAuth2CC" : {
                "type" : "oauth2",
                "description" : "OAuth 2 Client Credentials (as per the requirements in the IMS Security Framework) is to be used.",
                "flows" : {
                    "clientCredentials" : {
                        "tokenUrl" : "https://www.imsglobal.org/oauth2token",
                        "scopes" : {
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.delete" : "Access to the set of assessment operations that permit an object to be deleted.",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.readonly" : "Access to ALL of the assessment read operations.",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.createput" : "Access to all of the write assessment operations that permit the creation of a new single object in which the 'sourcedId' is supplied.",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.delete" : "Access to the set of gradebook operations that permit an object to be deleted.",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly" : "Access to ALL of the gradebook read operations.",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook-core.readonly" : "Access to the set of core read operations i.e. reading of all objects or a single object. ",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createpost" : "Access to the set of write operations that permit the creation of objects where the server allocates the 'sourcedIds'.",
                            "https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createput" : "Access to all of the gradebook write operations that permit the creation of a new single object in which the 'sourcedId' is supplied."
                        }
                    }
                }
            }
        },
        "schemas" : {
            "AcadSessionGUIDRefDType" : {
                "description" : "This is the container for reference to a OneRoster 'Academic Session' object that has an allocated sourcedId (GUID).",
                "type" : "object",
                "properties" : {
                    "href" : {
                        "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                        "type" : "string",
                        "format" : "uri"
                    },
                    "sourcedId" : {
                        "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                        "type" : "string"
                    },
                    "type" : {
                        "description" : "The type of object being referenced i.e. an 'academicSession'.",
                        "type" : "string",
                        "enum" : [ "academicSession" ]
                    }
                },
                "required" : [ "href","sourcedId","type" ],
                "additionalProperties" : false
            },
            "AssessmentLineItemDType" : {
                "description" : "This is the container for the definition of an assessment lineItem. An assessment lineItem is a collection of results for a set of students who are completing an assignment.",
                "type" : "object",
                "properties" : {
                    "sourcedId" : {
                        "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                        "type" : "string"
                    },
                    "status" : {
                        "description" : "All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                        "type" : "string",
                        "enum" : [ "active","tobedeleted" ]
                    },
                    "dateLastModified" : {
                        "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                        "type" : "string",
                        "format" : "date-time"
                    },
                    "metadata" : {
                        "$ref" : "#/definitions/MetadataDType"
                    },
                    "title" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The title, human readable, for the assessment lineItem.  This should allow the assessment lineItem to be distinguished from its peer assessment lineItems.",
                        "type" : "string"
                    },
                    "description" : {
                        "description" : "Model Primitive Datatype = String. A human readable description of the usage of the assessment lineItem.",
                        "type" : "string"
                    },
                    "class" : {
                        "$ref" : "#/definitions/ClassGUIDRefDType"
                    },
                    "parentAssessmentLineItem" : {
                        "$ref" : "#/definitions/AssessmentLineItemGUIDRefDType"
                    },
                    "scoreScale" : {
                        "$ref" : "#/definitions/ScoreScaleGUIDRefDType"
                    },
                    "resultValueMin" : {
                        "description" : "Model Primitive Datatype = Float. The minimum value (numeric) that can be assigned to the score attribute in a result. The score scale mapping should be used to map to other scores.",
                        "type" : "number",
                        "format" : "float"
                    },
                    "resultValueMax" : {
                        "description" : "Model Primitive Datatype = Float. The maximum value (numeric) that can be assigned to the score attribute in a result. The score scale mapping should be used to map to other scores.",
                        "type" : "number",
                        "format" : "float"
                    },
                    "learningObjectiveSet" : {
                        "description" : "The set of identifiers for the learning objectives to which this assessment is aligned. Any number groups of learning objectives can be assigned.",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "$ref" : "#/definitions/LearningObjectiveSetDType"
                        }
                    }
                },
                "required" : [ "sourcedId","status","dateLastModified","title" ],
                "additionalProperties" : false
            },
            "AssessmentLineItemGUIDRefDType" : {
                "description" : "This is the container for reference to a OneRoster 'AssessmentLineItem' object that has an allocated sourcedId (GUID).",
                "type" : "object",
                "properties" : {
                    "href" : {
                        "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                        "type" : "string",
                        "format" : "uri"
                    },
                    "sourcedId" : {
                        "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                        "type" : "string"
                    },
                    "type" : {
                        "description" : "The type of object being referenced i.e. an 'assessmentLineItem'.",
                        "type" : "string",
                        "enum" : [ "assessmentLineItem" ]
                    }
                },
                "required" : [ "href","sourcedId","type" ],
                "additionalProperties" : false
            },
            "AssessmentLineItemSetDType" : {
                "description" : "This is the container for a collection of assessment lineItem instances for a message payload. This may be empty if no instances are found that sustain the applied query constraints. The order is not significant.",
                "type" : "object",
                "properties" : {
                    "assessmentLineItems" : {
                        "description" : "The collection of assessment lineItem instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "$ref" : "#/definitions/AssessmentLineItemDType"
                        }
                    }
                },
                "additionalProperties" : false
            },
            "AssessmentResultDType" : {
                "description" : "This is the container for the AssessmentResult record.  An assessment result consists of the assigned score plus the context for that score.",
                "type" : "object",
                "properties" : {
                    "sourcedId" : {
                        "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                        "type" : "string"
                    },
                    "status" : {
                        "description" : "All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                        "type" : "string",
                        "enum" : [ "active","tobedeleted" ]
                    },
                    "dateLastModified" : {
                        "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                        "type" : "string",
                        "format" : "date-time"
                    },
                    "metadata" : {
                        "$ref" : "#/definitions/MetadataDType"
                    },
                    "assessmentLineItem" : {
                        "$ref" : "#/definitions/AssessmentLineItemGUIDRefDType"
                    },
                    "student" : {
                        "$ref" : "#/definitions/UserGUIDRefDType"
                    },
                    "score" : {
                        "description" : "Model Primitive Datatype = Float. The score for the result. If a scoreScale is assigned then the value must align with the scale.",
                        "type" : "number",
                        "format" : "float"
                    },
                    "textScore" : {
                        "description" : "Model Primitive Datatype = NormalizedString. An optional non-numeric score value. If a scoreScale is assigned then the value must align with the scale.",
                        "type" : "string"
                    },
                    "scoreDate" : {
                        "description" : "Model Primitive Datatype = Date. The date at which the score is assigned or there is an update to the result e.g. change in the 'scoreStatus'.. The format is YYYY-MM-DD as defined in [ISO 8601].",
                        "type" : "string",
                        "format" : "date"
                    },
                    "scoreScale" : {
                        "$ref" : "#/definitions/ScoreScaleGUIDRefDType"
                    },
                    "scorePercentile" : {
                        "description" : "Model Primitive Datatype = Float. The percentile rank of a score is the percentage of scores in its frequency distribution that are equal to or lower than it.",
                        "type" : "number",
                        "format" : "float"
                    },
                    "scoreStatus" : {
                        "description" : "The status of the score. The value is from an extensible enumerated vocabulary.",
                        "type" : "string"
                    },
                    "comment" : {
                        "description" : "Model Primitive Datatype = String. A human readable comment about the score.",
                        "type" : "string"
                    },
                    "learningObjectiveSet" : {
                        "description" : "The set of identifiers for the learning objectives to which this result is aligned. Any number groups of learning objectives can be assigned.",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "$ref" : "#/definitions/LearningObjectiveScoreSetDType"
                        }
                    },
                    "inProgress" : {
                        "description" : "This is used to indicate that the associated work activity has been assigned and student's work product is not yet expected to have been submitted.",
                        "type" : "string",
                        "enum" : [ "true","false" ]
                    },
                    "incomplete" : {
                        "description" : "This is used to indicate that the student's work product has been submitted but it is deemed incomplete by the teacher.",
                        "type" : "string",
                        "enum" : [ "true","false" ]
                    },
                    "late" : {
                        "description" : "This is used to indicate that the student's work product is either past due or it has been submitted past the due date. The score on this result may be impacted as as result of this flag.",
                        "type" : "string",
                        "enum" : [ "true","false" ]
                    },
                    "missing" : {
                        "description" : "This is used to indicate that the student's work product as not been submitted.",
                        "type" : "string",
                        "enum" : [ "true","false" ]
                    }
                },
                "required" : [ "sourcedId","status","dateLastModified","assessmentLineItem","student","scoreDate","scoreStatus" ],
                "additionalProperties" : false
            },
            "AssessmentResultSetDType" : {
                "description" : "This is the container for a collection of assessment result instances for a message payload. This may be empty if no instances are found that sustain the applied query constraints. The order is not significant.",
                "type" : "object",
                "properties" : {
                    "assessmentResults" : {
                        "description" : "The collection of assessment result instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "$ref" : "#/definitions/AssessmentResultDType"
                        }
                    }
                },
                "additionalProperties" : false
            },
            "CategoriesSetDType" : {
                "description" : "This is the container for a collection of category instances for a message payload. This may be empty if no instances are found that sustain the applied query constraints. The order is not significant.",
                "type" : "object",
                "properties" : {
                    "categories" : {
                        "description" : "The collection of category instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "$ref" : "#/definitions/CategoryDType"
                        }
                    }
                },
                "additionalProperties" : false
            },
            "CategoryDType" : {
                "description" : "A Category is the name given to a grouping of line items (line items being equivalent to assignments which students will complete). ",
                "type" : "object",
                "properties" : {
                    "sourcedId" : {
                        "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                        "type" : "string"
                    },
                    "status" : {
                        "description" : "All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                        "type" : "string",
                        "enum" : [ "active","tobedeleted" ]
                    },
                    "dateLastModified" : {
                        "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                        "type" : "string",
                        "format" : "date-time"
                    },
                    "metadata" : {
                        "$ref" : "#/definitions/MetadataDType"
                    },
                    "title" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The human readable title for the category.",
                        "type" : "string"
                    },
                    "weight" : {
                        "description" : "Model Primitive Datatype = Float. Total weight of this grading category in calculation of the course final score.",
                        "type" : "number",
                        "format" : "float"
                    }
                },
                "required" : [ "sourcedId","status","dateLastModified","title" ],
                "additionalProperties" : false
            },
            "CategoryGUIDRefDType" : {
                "description" : "This is the container for reference to a OneRoster 'Category' object that has an allocated sourcedId (GUID).",
                "type" : "object",
                "properties" : {
                    "href" : {
                        "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                        "type" : "string",
                        "format" : "uri"
                    },
                    "sourcedId" : {
                        "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                        "type" : "string"
                    },
                    "type" : {
                        "description" : "The type of object being referenced i.e. a 'category'.",
                        "type" : "string",
                        "enum" : [ "category" ]
                    }
                },
                "required" : [ "href","sourcedId","type" ],
                "additionalProperties" : false
            },
            "ClassGUIDRefDType" : {
                "description" : "This is the container for reference to a OneRoster 'Class' object that has an allocated sourcedId (GUID).",
                "type" : "object",
                "properties" : {
                    "href" : {
                        "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                        "type" : "string",
                        "format" : "uri"
                    },
                    "sourcedId" : {
                        "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                        "type" : "string"
                    },
                    "type" : {
                        "description" : "The type of object being referenced i.e. a 'class'.",
                        "type" : "string",
                        "enum" : [ "class" ]
                    }
                },
                "required" : [ "href","sourcedId","type" ],
                "additionalProperties" : false
            },
            "CourseGUIDRefDType" : {
                "description" : "This is the container for reference to a OneRoster 'Course' object that has an allocated sourcedId (GUID).",
                "type" : "object",
                "properties" : {
                    "href" : {
                        "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                        "type" : "string",
                        "format" : "uri"
                    },
                    "sourcedId" : {
                        "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                        "type" : "string"
                    },
                    "type" : {
                        "description" : "The type of object being referenced i.e. a 'course'.",
                        "type" : "string",
                        "enum" : [ "course" ]
                    }
                },
                "required" : [ "href","sourcedId","type" ],
                "additionalProperties" : false
            },
            "GUIDPairDType" : {
                "description" : "The container for the mapping between the supplied (assigned by the requesting system) and allocated (assigned by the responding system) sourcedIds i.e. GUIDs.",
                "type" : "object",
                "properties" : {
                    "suppliedSourcedId" : {
                        "description" : "Model Primitive Datatype = String. The temporary sourcedId that has been allocated by the requesting system. This sourcedId is used to enable identification of the original record for which the new sourcedId has been allocated at the service provider.",
                        "type" : "string"
                    },
                    "allocatedSourcedId" : {
                        "description" : "Model Primitive Datatype = String. The sourcedId that has been allocated by the system on which the new record has been created.",
                        "type" : "string"
                    }
                },
                "required" : [ "suppliedSourcedId","allocatedSourcedId" ],
                "additionalProperties" : false
            },
            "GUIDPairSetDType" : {
                "description" : "The container for the set of sourcedId pairs. This is used to provide the mapping between a set of original/new values allocated to a set of sourcedIds.",
                "type" : "object",
                "properties" : {
                    "sourcedIdPairs" : {
                        "description" : "The set of sourcedId pairs. The order is not significant as each pair contains the information between the original/new values.",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "$ref" : "#/definitions/GUIDPairDType"
                        }
                    }
                },
                "additionalProperties" : false
            },
            "LearningObjectiveResultsDType" : {
                "description" : "This is the container for a learning objective identifier. This also allows a mastery score to be aligned with the learning objective.",
                "type" : "object",
                "properties" : {
                    "learningObjectiveId" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The unique identifier for the associated learning objective. If this is a CASE identifier it MUST be a valid UUID.",
                        "type" : "string"
                    },
                    "score" : {
                        "description" : "Model Primitive Datatype = Float. The optional mastery score supplied as a numeric value. ",
                        "type" : "number",
                        "format" : "float"
                    },
                    "textScore" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The optional mastery score supplied in a non-numeric form. ",
                        "type" : "string"
                    }
                },
                "required" : [ "learningObjectiveId" ],
                "additionalProperties" : false
            },
            "LearningObjectiveScoreSetDType" : {
                "description" : "This is the container for the set of learning objective identifiers that are from a single source responsible for creating those identifiers. This also allows a mastery score to be aligned with a learning objective.",
                "type" : "object",
                "properties" : {
                    "source" : {
                        "description" : "The source responsible for creating the learning objective identifiers. The permitted values are from an extensible vocabulary.",
                        "type" : "string"
                    },
                    "learningObjectiveResults" : {
                        "description" : "The set of unique identifiers for the associated learning objectives (these may have alignment with a mastery score). If these are CASE identifiers they MUST be valid UUIDs.",
                        "type" : "array",
                        "minItems" : 1,
                        "items" : {
                            "$ref" : "#/definitions/LearningObjectiveResultsDType"
                        }
                    }
                },
                "required" : [ "source","learningObjectiveResults" ],
                "additionalProperties" : false
            },
            "LearningObjectiveSetDType" : {
                "description" : "This is the container for the set of learning objective identifiers that are from a single source responsible for creating those identifiers.",
                "type" : "object",
                "properties" : {
                    "source" : {
                        "description" : "The source responsible for creating the learning objective identifiers. The permitted values are from an extensible vocabulary.",
                        "type" : "string"
                    },
                    "learningObjectiveIds" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The set of unique identifiers for the associated learning objectives. If these are CASE identifiers they MUST be valid UUIDs.",
                        "type" : "array",
                        "minItems" : 1,
                        "items" : {
                            "type" : "string"
                        }
                    }
                },
                "required" : [ "source","learningObjectiveIds" ],
                "additionalProperties" : false
            },
            "LineItemDType" : {
                "description" : "This is the container for the definition of a lineItem. A lineItem is a collection of results for a set of students who are completing an assignment as part of a class at a school.",
                "type" : "object",
                "properties" : {
                    "sourcedId" : {
                        "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                        "type" : "string"
                    },
                    "status" : {
                        "description" : "All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                        "type" : "string",
                        "enum" : [ "active","tobedeleted" ]
                    },
                    "dateLastModified" : {
                        "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                        "type" : "string",
                        "format" : "date-time"
                    },
                    "metadata" : {
                        "$ref" : "#/definitions/MetadataDType"
                    },
                    "title" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The title, human readable, for the lineItem.  This should allow the lineItem to be distinguished from its peer lineItems.",
                        "type" : "string"
                    },
                    "description" : {
                        "description" : "Model Primitive Datatype = String. A human readable description of the usage of the lineItem.",
                        "type" : "string"
                    },
                    "assignDate" : {
                        "description" : "Model Primitive Datatype = DateTime. The date/time the activity being addressed by the lineItem was assigned to the student. This has a format as defined in [ISO 8601].",
                        "type" : "string",
                        "format" : "date-time"
                    },
                    "dueDate" : {
                        "description" : "Model Primitive Datatype = DateTime. The date/time by which the assignment must be completed and submitted. This has the dateTime format as defined in [ISO 8601].",
                        "type" : "string",
                        "format" : "date-time"
                    },
                    "class" : {
                        "$ref" : "#/definitions/ClassGUIDRefDType"
                    },
                    "school" : {
                        "$ref" : "#/definitions/OrgGUIDRefDType"
                    },
                    "category" : {
                        "$ref" : "#/definitions/CategoryGUIDRefDType"
                    },
                    "gradingPeriod" : {
                        "$ref" : "#/definitions/AcadSessionGUIDRefDType"
                    },
                    "academicSession" : {
                        "$ref" : "#/definitions/AcadSessionGUIDRefDType"
                    },
                    "scoreScale" : {
                        "$ref" : "#/definitions/ScoreScaleGUIDRefDType"
                    },
                    "resultValueMin" : {
                        "description" : "Model Primitive Datatype = Float. The minimum value (numeric) that can be assigned to the score attribute in a result. The score scale mapping should be used to map to other scores.",
                        "type" : "number",
                        "format" : "float"
                    },
                    "resultValueMax" : {
                        "description" : "Model Primitive Datatype = Float. The maximum value (numeric) that can be assigned to the score attribute in a result. The score scale mapping should be used to map to other scores.",
                        "type" : "number",
                        "format" : "float"
                    },
                    "learningObjectiveSet" : {
                        "description" : "The set of identifiers for the learning objectives to which this assessment is aligned. Any number groups of learning objectives can be assigned.",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "$ref" : "#/definitions/LearningObjectiveSetDType"
                        }
                    }
                },
                "required" : [ "sourcedId","status","dateLastModified","title","assignDate","dueDate","class","school","category" ],
                "additionalProperties" : false
            },
            "LineItemGUIDRefDType" : {
                "description" : "This is the container for reference to a OneRoster 'LineItem' object that has an allocated sourcedId (GUID).",
                "type" : "object",
                "properties" : {
                    "href" : {
                        "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                        "type" : "string",
                        "format" : "uri"
                    },
                    "sourcedId" : {
                        "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                        "type" : "string"
                    },
                    "type" : {
                        "description" : "The type of object being referenced i.e. a 'lineItem'.",
                        "type" : "string",
                        "enum" : [ "lineItem" ]
                    }
                },
                "required" : [ "href","sourcedId","type" ],
                "additionalProperties" : false
            },
            "LineItemSetDType" : {
                "description" : "This is the container for a collection of lineItem instances for a message payload. This may be empty if no instances are found that sustain the applied query constraints. The order is not significant.",
                "type" : "object",
                "properties" : {
                    "lineItems" : {
                        "description" : "The collection of lineItem instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "$ref" : "#/definitions/LineItemDType"
                        }
                    }
                },
                "additionalProperties" : false
            },
            "MetadataDType" : {
                "description" : "The container for the proprietary extensions.",
                "type" : "object",
                "properties" : {

                },
                "additionalProperties" : true
            },
            "OrgGUIDRefDType" : {
                "description" : "This is the container for reference to a OneRoster 'Org' object that has an allocated sourcedId (GUID).",
                "type" : "object",
                "properties" : {
                    "href" : {
                        "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                        "type" : "string",
                        "format" : "uri"
                    },
                    "sourcedId" : {
                        "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                        "type" : "string"
                    },
                    "type" : {
                        "description" : "The type of object being referenced i.e. an 'org'.",
                        "type" : "string",
                        "enum" : [ "org" ]
                    }
                },
                "required" : [ "href","sourcedId","type" ],
                "additionalProperties" : false
            },
            "ResultDType" : {
                "description" : "This is the container for the Result record.  A result consists of the assigned score plus the context for that score.",
                "type" : "object",
                "properties" : {
                    "sourcedId" : {
                        "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                        "type" : "string"
                    },
                    "status" : {
                        "description" : "All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                        "type" : "string",
                        "enum" : [ "active","tobedeleted" ]
                    },
                    "dateLastModified" : {
                        "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                        "type" : "string",
                        "format" : "date-time"
                    },
                    "metadata" : {
                        "$ref" : "#/definitions/MetadataDType"
                    },
                    "lineItem" : {
                        "$ref" : "#/definitions/LineItemGUIDRefDType"
                    },
                    "student" : {
                        "$ref" : "#/definitions/UserGUIDRefDType"
                    },
                    "class" : {
                        "$ref" : "#/definitions/ClassGUIDRefDType"
                    },
                    "scoreScale" : {
                        "$ref" : "#/definitions/ScoreScaleGUIDRefDType"
                    },
                    "scoreStatus" : {
                        "description" : "The status of the score. The value is from an extensible enumerated vocabulary.",
                        "type" : "string"
                    },
                    "score" : {
                        "description" : "Model Primitive Datatype = Float. The score for the result. If a scoreScale is assigned then the value must align with the scale.",
                        "type" : "number",
                        "format" : "float"
                    },
                    "textScore" : {
                        "description" : "Model Primitive Datatype = NormalizedString. An optional non-numeric score value. If a scoreScale is assigned then the value must align with the scale. This attribute was added in OR 1.2.",
                        "type" : "string"
                    },
                    "scoreDate" : {
                        "description" : "Model Primitive Datatype = Date. The date at which the score is assigned or there is an update to the result e.g. change in the 'scoreStatus'. The format is YYYY-MM-DD as defined in [ISO 8601].",
                        "type" : "string",
                        "format" : "date"
                    },
                    "comment" : {
                        "description" : "Model Primitive Datatype = String. A human readable comment about the score.",
                        "type" : "string"
                    },
                    "learningObjectiveSet" : {
                        "description" : "The set of identifiers for the learning objectives to which this result is aligned. Any number groups of learning objectives can be assigned.",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "$ref" : "#/definitions/LearningObjectiveScoreSetDType"
                        }
                    },
                    "inProgress" : {
                        "description" : "This is used to indicate that the associated work activity has been assigned and student's work product is not yet expected to have been submitted.",
                        "type" : "string",
                        "enum" : [ "true","false" ]
                    },
                    "incomplete" : {
                        "description" : "This is used to indicate that the student's work product has been submitted but it is deemed incomplete by the teacher.",
                        "type" : "string",
                        "enum" : [ "true","false" ]
                    },
                    "late" : {
                        "description" : "This is used to indicate that the student's work product is either past due or it has been submitted past the due date. The score on this result may be impacted as as result of this flag.",
                        "type" : "string",
                        "enum" : [ "true","false" ]
                    },
                    "missing" : {
                        "description" : "This is used to indicate that the student's work product as not been submitted.",
                        "type" : "string",
                        "enum" : [ "true","false" ]
                    }
                },
                "required" : [ "sourcedId","status","dateLastModified","lineItem","student","scoreStatus","scoreDate" ],
                "additionalProperties" : false
            },
            "ResultSetDType" : {
                "description" : "This is the container for a collection of result instances for a message payload. This may be empty if no instances are found that sustain the applied query constraints. The order is not significant.",
                "type" : "object",
                "properties" : {
                    "results" : {
                        "description" : "The collection of result instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "$ref" : "#/definitions/ResultDType"
                        }
                    }
                },
                "additionalProperties" : false
            },
            "ScoreScaleDType" : {
                "description" : "The container for the definition Score Scale mapping i.e. the relationship between two score scales.",
                "type" : "object",
                "properties" : {
                    "sourcedId" : {
                        "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                        "type" : "string"
                    },
                    "status" : {
                        "description" : "All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                        "type" : "string",
                        "enum" : [ "active","tobedeleted" ]
                    },
                    "dateLastModified" : {
                        "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                        "type" : "string",
                        "format" : "date-time"
                    },
                    "metadata" : {
                        "$ref" : "#/definitions/MetadataDType"
                    },
                    "title" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The human readable title for the score scale mapping.",
                        "type" : "string"
                    },
                    "type" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The type of score scale mapping. At present there is no predefined vocabulary. This should be used by an organization to differentiate between the score scales that it produces.",
                        "type" : "string"
                    },
                    "course" : {
                        "$ref" : "#/definitions/CourseGUIDRefDType"
                    },
                    "class" : {
                        "$ref" : "#/definitions/ClassGUIDRefDType"
                    },
                    "scoreScaleValue" : {
                        "description" : "The set of mappings for this score scale.",
                        "type" : "array",
                        "minItems" : 1,
                        "items" : {
                            "$ref" : "#/definitions/ScoreScaleValueDType"
                        }
                    }
                },
                "required" : [ "sourcedId","status","dateLastModified","title","type","class","scoreScaleValue" ],
                "additionalProperties" : false
            },
            "ScoreScaleGUIDRefDType" : {
                "description" : "This is the container for reference to a OneRoster 'ScoreScale' object that has an allocated sourcedId (GUID).",
                "type" : "object",
                "properties" : {
                    "href" : {
                        "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                        "type" : "string",
                        "format" : "uri"
                    },
                    "sourcedId" : {
                        "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                        "type" : "string"
                    },
                    "type" : {
                        "description" : "The type of object being referenced i.e. a 'scoreScale'.",
                        "type" : "string",
                        "enum" : [ "scoreScale" ]
                    }
                },
                "required" : [ "href","sourcedId","type" ],
                "additionalProperties" : false
            },
            "ScoreScaleSetDType" : {
                "description" : "This is the container for a collection of scoreScale instances for a message payload. This may be empty if no instances are found that sustain the applied query constraints. The order is not significant.",
                "type" : "object",
                "properties" : {
                    "scoreScales" : {
                        "description" : "The collection of scoreScale instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
                        "type" : "array",
                        "minItems" : 0,
                        "items" : {
                            "$ref" : "#/definitions/ScoreScaleDType"
                        }
                    }
                },
                "additionalProperties" : false
            },
            "ScoreScaleValueDType" : {
                "description" : "A specific mapping of values between two score scales. The left hand side (LHS) value is the reference point. Examples of this mapping are: '7' maps to 'A', '7'-'10' maps to 'A', etc.",
                "type" : "object",
                "properties" : {
                    "itemValueLHS" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The left hand side value of the mapping relationship. The format is either a single value ('x') or a range ('x' - 'y'). In the case of a single value this is considered to be the inclusive lower value for the implied range. When a range is specified (lower-to-upper) the values are inclusive.",
                        "type" : "string"
                    },
                    "itemValueRHS" : {
                        "description" : "Model Primitive Datatype = NormalizedString. The right hand side value of the mapping relationship  i.e. the equivalent value to the reference point defined in the LHS.",
                        "type" : "string"
                    }
                },
                "required" : [ "itemValueLHS","itemValueRHS" ],
                "additionalProperties" : false
            },
            "SingleAssessmentLineItemDType" : {
                "description" : "This is the container for a single assessment lineItem instance for a message payload.",
                "type" : "object",
                "properties" : {
                    "assessmentLineItem" : {
                        "$ref" : "#/definitions/AssessmentLineItemDType"
                    }
                },
                "required" : [ "assessmentLineItem" ],
                "additionalProperties" : false
            },
            "SingleAssessmentResultDType" : {
                "description" : "This is the container for a single assessment result instance for a message payload.",
                "type" : "object",
                "properties" : {
                    "assessmentResult" : {
                        "$ref" : "#/definitions/AssessmentResultDType"
                    }
                },
                "required" : [ "assessmentResult" ],
                "additionalProperties" : false
            },
            "SingleCategoryDType" : {
                "description" : "This is the container for a single category instance for a message payload.",
                "type" : "object",
                "properties" : {
                    "category" : {
                        "$ref" : "#/definitions/CategoryDType"
                    }
                },
                "required" : [ "category" ],
                "additionalProperties" : false
            },
            "SingleLineItemDType" : {
                "description" : "This is the container for a single lineItem instance for a message payload.",
                "type" : "object",
                "properties" : {
                    "lineItem" : {
                        "$ref" : "#/definitions/LineItemDType"
                    }
                },
                "required" : [ "lineItem" ],
                "additionalProperties" : false
            },
            "SingleResultDType" : {
                "description" : "This is the container for a single result instance for a message payload.",
                "type" : "object",
                "properties" : {
                    "result" : {
                        "$ref" : "#/definitions/ResultDType"
                    }
                },
                "required" : [ "result" ],
                "additionalProperties" : false
            },
            "SingleScoreScaleDType" : {
                "description" : "This is the container for a single scoreScale instance for a message payload.",
                "type" : "object",
                "properties" : {
                    "scoreScale" : {
                        "$ref" : "#/definitions/ScoreScaleDType"
                    }
                },
                "required" : [ "scoreScale" ],
                "additionalProperties" : false
            },
            "UserGUIDRefDType" : {
                "description" : "This is the container for reference to a OneRoster 'User' object that has an allocated sourcedId (GUID).",
                "type" : "object",
                "properties" : {
                    "href" : {
                        "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                        "type" : "string",
                        "format" : "uri"
                    },
                    "sourcedId" : {
                        "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                        "type" : "string"
                    },
                    "type" : {
                        "description" : "The type of object being referenced i.e. a 'user'.",
                        "type" : "string",
                        "enum" : [ "user" ]
                    }
                },
                "required" : [ "href","sourcedId","type" ],
                "additionalProperties" : false
            },
            "imsx_CodeMinorDType" : {
                "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
                "type" : "object",
                "properties" : {
                    "imsx_codeMinorField" : {
                        "description" : "Each reported code minor status code.",
                        "type" : "array",
                        "minItems" : 1,
                        "items" : {
                            "$ref" : "#/definitions/imsx_CodeMinorFieldDType"
                        }
                    }
                },
                "required" : [ "imsx_codeMinorField" ],
                "additionalProperties" : false
            },
            "imsx_CodeMinorFieldDType" : {
                "description" : "This is the container for a single code minor status code.",
                "type" : "object",
                "properties" : {
                    "imsx_codeMinorFieldName" : {
                        "description" : "Model Primitive Datatype = NormalizedString. This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
                        "type" : "string",
                        "default" : "TargetEndSystem"
                    },
                    "imsx_codeMinorFieldValue" : {
                        "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
                        "type" : "string",
                        "enum" : [ "fullsuccess","invalid_filter_field","invalid_selection_field","invaliddata","unauthorisedrequest","internal_server_error",
                                    "server_busy","deletefailure","unknownobject","forbidden" ]
                    }
                },
                "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
                "additionalProperties" : false
            },
            "imsx_StatusInfoDType" : {
                "description" : "This is the container for the status code and associated information returned within the HTTP messages received from the Service Provider. For the OneRoster Rostering 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" : {
                        "description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
                        "type" : "string",
                        "enum" : [ "success","processing","failure","unsupported" ]
                    },
                    "imsx_severity" : {
                        "description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
                        "type" : "string",
                        "enum" : [ "status","warning","error" ]
                    },
                    "imsx_description" : {
                        "description" : "Model Primitive Datatype = String. A human readable description supplied by the entity creating the status code information.",
                        "type" : "string"
                    },
                    "imsx_CodeMinor" : {
                        "$ref" : "#/definitions/imsx_CodeMinorDType"
                    }
                },
                "required" : [ "imsx_codeMajor","imsx_severity" ],
                "additionalProperties" : false
            }
        }
    }
}
        

B2 Listing of the OpenAPI (YAML) File

B2.1 OpenAPI 2.0 YAML Listing

The OpenAPI 2 (YAML) listing (based upon [OAS, 14]) is shown below (the OpenAPI YAML is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/openapi/onerosterv1p2gradebookservice_openapi2_v1p0.yaml).

# #####################################################################################
# YAML File Information
# #####################################################################################
# 
# Author:         Colin Smythe (IMS Global)
# Date:           19th September 2022
# Version:        1.0
# Status:         IMS Final Release
# Description:    The OneRoster Gradebook service binding is available in REST/JSON. The model is based upon the IMS PSM modelling approach.
# 
# History:        Version 1.2: This is the first release of the OneRoster Gradebook 1.2 service.
# 
# License:        IPR and Distribution Notices
# 
#                 This machine readable file is derived from the IMS OneRoster Gradebook Service Version 1.2
#                 found at http://www.imsglobal.org/lis and the original IMS Global schema binding or code base
#                 http://www.imsglobal.org/lis.
# 
#                 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 procedures with respect to rights in IMS 
#                 specifications can be found at the IMS Global Intellectual Property Rights web page: http://www.imsglobal.org/ipr/imsipr_policyFinal.pdf.
# 
#                 Copyright (c) IMS Global Learning Consortium 1999-2022. 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/license.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 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 SPECIFICATION.
# 
# Source UML File Information
# ===========================
# The source file information must be supplied as an XMI file (without diagram layout information).
# The supported UML authoring tools are:
# (a) Poseidon - v6 (and later)
# (b) Papyrus - v1.1.3 (and later)
# 
# Source XSLT File Information
# ============================
# XSL Generator:    Specificationv1p0_GenerationToolv1.xsl
# XSLT Processor:   Saxon
# Release:          1.0
# Date:             31st January, 2021
# Autogen Engineer: Colin Smythe (IMS Global, UK)
# Autogen Date:     2022-09-13
# 
# IMS Global Auto-generation Binding Tool-kit (I-BAT)
# ===================================================
# This file was auto-generated using the IMS Global Binding Auto-generation Tool-kit (I-BAT).  While every
# attempt has been made to ensure that this tool auto-generates the files correctly, users should be aware
# that this is an experimental tool.  Permission is given to make use of this tool.  IMS Global makes no
# claim on the materials created by third party users of this tool.  Details on how to use this tool
# are contained in the IMS Global "I-BAT" documentation available at the IMS Global web-site:
# http://www.imsglobal.org.
# 
# Tool Copyright:  2012-2022  (c) IMS Global Learning Consortium Inc.  All Rights Reserved.
# 
# #####################################################################################

swagger: '2.0'

#####################################################################################
#                               API Information                                     #
#####################################################################################
info: 
    version: '1.2'
    title: OneRoster Gradebook Service OpenAPI (YAML) Definition
    description: The OneRoster Gradebook service binding is available in REST/JSON. The model is based upon the IMS PSM modelling approach.
    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: Vice President of Operations, 1EdTech
        url: https://www.1edtech.org
        email: operations@1edtech.org
    license: 
        name: 1EdTech Consortium
        url: https://www.1edtech.org/license.html

#####################################################################################
#                   Host, Base Path, Schemes and Content Types                      #
#####################################################################################
host: www.imsglobal.org
basePath: /ims/oneroster/gradebook/v1p2
schemes: 
    - http
    - https
consumes: 
    - application/json
produces: 
    - application/json

#####################################################################################
#                                  Tags                                             #
#####################################################################################
tags: 
    - name: AssessmentLineItemsManagement
      description: |
        This enables the management of the assessment lineItems i.e. lineitems that are used to store results about tests/assessments and where these test/assessments are not aligned to a class.
    - name: AssessmentResultsManagement
      description: |
        This enables the management of the assessment results i.e. results that are used to store scores for tests/assessments and where these test/assessments are not aligned to a class.
    - name: CategoriesManagement
      description: |
        This enables the management of Categories i.e. collections of LineItems.
    - name: ClassesManagement
      description: |
        This enables the management of Classes i.e. scheduled learning of courses, with respect to scoreScales. For this service this is the collection of operations that provide gradebook data in the context of a class identifier.
    - name: LineItemsManagement
      description: |
        This enables the management of lineItems i.e. the set of results for the assessment of some activity.
    - name: ResultsManagement
      description: |
        This enables the management of results i.e. the score allocated to a learner from the assessent of a learning activity. Results are collected as a set of 'lineItems'.
    - name: SchoolsManagement
      description: |
        This enables the management of information about schools with respect to scoreScales. A school is a type of 'org'. For this service this is the collection of operations that provide gradebook data in the context of a school identifier.
    - name: ScoreScalesManagement
      description: |
        This enables the management of scoreScales i.e. the set of scales for the results and lineItems.

#####################################################################################
#                                 Security                                          #
#####################################################################################
securityDefinitions:
    OAuth2CC:
        type: oauth2
        description: OAuth 2 Client Credentials (as per the requirements in the IMS Security Framework) is to be used.
        flow: application
        tokenUrl: https://www.imsglobal.org/oauth2token
        scopes: 
            https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.delete: Access to the set of assessment operations that permit an object to be deleted.
            https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.readonly: Access to ALL of the assessment read operations.
            https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.createput: Access to all of the write assessment operations that permit the creation of a new single object in which the 'sourcedId' is supplied.
            https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.delete: Access to the set of gradebook operations that permit an object to be deleted.
            https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly: Access to ALL of the gradebook read operations.
            https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook-core.readonly: Access to the set of core read operations i.e. reading of all objects or a single object. 
            https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createpost: Access to the set of write operations that permit the creation of objects where the server allocates the 'sourcedIds'.
            https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createput: Access to all of the gradebook write operations that permit the creation of a new single object in which the 'sourcedId' is supplied.


#####################################################################################
#                                   Paths                                           #
#####################################################################################
paths: 
    /assessmentLineItems:
        get:
            operationId: getAllAssessmentLineItems
            summary: The REST read request message for the getAllAssessmentLineItems() API call.
            tags: 
                - AssessmentLineItemsManagement
            description: |
                Get all of the Assessment Line Items on the service provider.
            parameters: 
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 100
                  minimum: 1
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 0
                  minimum: 0
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  enum: 
                    - asc
                    - desc
                  allowEmptyValue: false
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.readonly
            responses: 
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/AssessmentLineItemSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            type: integer
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"

    /assessmentLineItems/{sourcedId}:
        get:
            operationId: getAssessmentLineItem
            summary: The REST read request message for the getAssessmentLineItem() API call.
            tags: 
                - AssessmentLineItemsManagement
            description: |
                Get a specific Assessment LineItem on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for this assessment lineItem.
                  required: true
                  type: string
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.readonly
            responses: 
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/SingleAssessmentLineItemDType"
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
        delete:
            operationId: deleteAssessmentLineItem
            summary: The REST delete request message for the deleteAssessmentLineItem() API call.
            tags: 
                - AssessmentLineItemsManagement
            description: |
                Delete a specific Assessment LineItem on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the assessment lineItem to be deleted.
                  required: true
                  type: string
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.delete
            responses: 
                "204" : 
                    description: |
                        The object has been successfully deleted. 
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
        put:
            operationId: putAssessmentLineItem
            summary: The REST create request message for the putAssessmentLineItem() API call.
            tags: 
                - AssessmentLineItemsManagement
            description: |
                To create a new Assessment LineItem. The associated sourcedId for this new record is supplied by the requesting system.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, to be allocated to this new assessment lineItem.
                  required: true
                  type: string
                - name: assessmentLineItem
                  in: body
                  description: |
                      The assessment lineItem data that is to be stored.
                  required: true
                  schema: 
                      $ref: "#/definitions/SingleAssessmentLineItemDType"
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.createput
            responses: 
                "201" : 
                    description: |
                        The object has been successfully stored in the Service Provider repository.
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"

    /assessmentResults:
        get:
            operationId: getAllAssessmentResults
            summary: The REST read request message for the getAllAssessmentResults() API call.
            tags: 
                - AssessmentResultsManagement
            description: |
                Get all of the Assessment Results on the service provider.
            parameters: 
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 100
                  minimum: 1
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 0
                  minimum: 0
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  enum: 
                    - asc
                    - desc
                  allowEmptyValue: false
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.readonly
            responses: 
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/AssessmentResultSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            type: integer
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"

    /assessmentResults/{sourcedId}:
        get:
            operationId: getAssessmentResult
            summary: The REST read request message for the getAssessmentResult() API call.
            tags: 
                - AssessmentResultsManagement
            description: |
                Get a specific Assessment Result on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      Tthe unique identifier, GUID, for this assessment result.
                  required: true
                  type: string
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.readonly
            responses: 
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/SingleAssessmentResultDType"
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
        delete:
            operationId: deleteAssessmentResult
            summary: The REST delete request message for the deleteAssessmentResult() API call.
            tags: 
                - AssessmentResultsManagement
            description: |
                Delete a specific Assessment Result on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the assessment result to be deleted.
                  required: true
                  type: string
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.delete
            responses: 
                "204" : 
                    description: |
                        The object has been successfully deleted. 
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
        put:
            operationId: putAssessmentResult
            summary: The REST create request message for the putAssessmentResult() API call.
            tags: 
                - AssessmentResultsManagement
            description: |
                To create a new Assessment Result. The associated sourcedId for this new record is supplied by the requesting system.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, to be allocated to this new assessment result.
                  required: true
                  type: string
                - name: assessmentResult
                  in: body
                  description: |
                      The assessment result data that is to be stored.
                  required: true
                  schema: 
                      $ref: "#/definitions/SingleAssessmentResultDType"
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.createput
            responses: 
                "201" : 
                    description: |
                        The object has been successfully stored in the Service Provider repository.
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"

    /categories:
        get:
            operationId: getAllCategories
            summary: The REST read request message for the getAllCategories() API call.
            tags: 
                - CategoriesManagement
            description: |
                Get all of the lineItem categories on the service provider.
            parameters: 
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 100
                  minimum: 1
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 0
                  minimum: 0
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  enum: 
                    - asc
                    - desc
                  allowEmptyValue: false
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook-core.readonly
            responses: 
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/CategoriesSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            type: integer
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"

    /categories/{sourcedId}:
        get:
            operationId: getCategory
            summary: The REST read request message for the getCategory() API call.
            tags: 
                - CategoriesManagement
            description: |
                Get a specific lineItem category on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for this category.
                  required: true
                  type: string
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook-core.readonly
            responses: 
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/SingleCategoryDType"
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
        delete:
            operationId: deleteCategory
            summary: The REST delete request message for the deleteCategory() API call.
            tags: 
                - CategoriesManagement
            description: |
                Delete a specific lineItem category on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the category to be deleted.
                  required: true
                  type: string
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.delete
            responses: 
                "204" : 
                    description: |
                        The object has been successfully deleted. 
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
        put:
            operationId: putCategory
            summary: The REST create request message for the putCategory() API call.
            tags: 
                - CategoriesManagement
            description: |
                To create a new lineItem category. The associated sourcedId for this new record is supplied by the requesting system.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, to be allocated to this new category.
                  required: true
                  type: string
                - name: category
                  in: body
                  description: |
                      The category data that is to be stored.
                  required: true
                  schema: 
                      $ref: "#/definitions/SingleCategoryDType"
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createput
            responses: 
                "201" : 
                    description: |
                        The object has been successfully stored in the Service Provider repository.
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"

    /classes/{classSourcedId}/academicSessions/{academicSessionSourcedId}/results:
        post:
            operationId: postResultsForAcademicSessionForClass
            summary: The REST createbp request message for the postResultsForAcademicSessionForClass() API call.
            tags: 
                - ClassesManagement
            description: |
                To create a set of results for a specific academic session and specific class. The responding system must return the set of sourcedIds that have been allocated to the newly created result records. If the corresponding class or academic session cannot be located then an 'unknown' error code is returned.
            parameters: 
                - name: classSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the class.
                  required: true
                  type: string
                - name: academicSessionSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the academic session.
                  required: true
                  type: string
                - name: results
                  in: body
                  description: |
                      The set of result records to be created in response to this request. This includes an initial assignment of sourcedId so that the mapping between this and the actually assigned sourcedId can be reported. 
                  required: true
                  schema: 
                      $ref: "#/definitions/ResultSetDType"
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createpost
            responses: 
                "201" : 
                    description: |
                        The object has been successfully stored in the Service Provider repository.
                    schema: 
                        $ref: "#/definitions/GUIDPairSetDType"
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"

    /classes/{classSourcedId}/categories:
        get:
            operationId: getCategoriesForClass
            summary: The REST read request message for the getCategoriesForClass() API call.
            tags: 
                - ClassesManagement
            description: |
                Get the set of categories on the service provider for a specific class. If the corresponding class cannot be located then an 'unknown' error code is returned.
            parameters: 
                - name: classSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the class.
                  required: true
                  type: string
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 100
                  minimum: 1
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 0
                  minimum: 0
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  enum: 
                    - asc
                    - desc
                  allowEmptyValue: false
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly
            responses: 
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/CategoriesSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            type: integer
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"

    /classes/{classSourcedId}/lineItems:
        get:
            operationId: getLineItemsForClass
            summary: The REST read request message for the getLineItemsForClass() API call.
            tags: 
                - ClassesManagement
            description: |
                Get the set of lineItems on the service provider for a specific class. If the corresponding class cannot be located then an 'unknown' error code is returned.
            parameters: 
                - name: classSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the class.
                  required: true
                  type: string
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 100
                  minimum: 1
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 0
                  minimum: 0
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  enum: 
                    - asc
                    - desc
                  allowEmptyValue: false
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly
            responses: 
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/LineItemSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            type: integer
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
        post:
            operationId: postLineItemsForClass
            summary: The REST createbp request message for the postLineItemsForClass() API call.
            tags: 
                - ClassesManagement
            description: |
                To create a set of lineItems for a specific class. The responding system must return the set of sourcedIds that have been allocated to the newly created lineItem records. If the corresponding class cannot be located then an 'unknown' error code is returned.
            parameters: 
                - name: classSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the class.
                  required: true
                  type: string
                - name: lineItems
                  in: body
                  description: |
                      The set of lineItem records to be created in response to this request. This includes an initial assignment of sourcedId so that the mapping between this and the actually assigned sourcedId can be reported. 
                  required: true
                  schema: 
                      $ref: "#/definitions/LineItemSetDType"
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createpost
            responses: 
                "201" : 
                    description: |
                        The object has been successfully stored in the Service Provider repository.
                    schema: 
                        $ref: "#/definitions/GUIDPairSetDType"
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"

    /classes/{classSourcedId}/lineItems/{lineItemSourcedId}/results:
        get:
            operationId: getResultsForLineItemForClass
            summary: The REST read request message for the getResultsForLineItemForClass() API call.
            tags: 
                - ClassesManagement
            description: |
                Get the set of results on the service provider for a specific lineItem and for a specific class. If the corresponding class cannot be located then an 'unknown' error code is returned.
            parameters: 
                - name: classSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the class.
                  required: true
                  type: string
                - name: lineItemSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the lineItem.
                  required: true
                  type: string
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 100
                  minimum: 1
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 0
                  minimum: 0
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  enum: 
                    - asc
                    - desc
                  allowEmptyValue: false
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly
            responses: 
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/ResultSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            type: integer
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"

    /classes/{classSourcedId}/results:
        get:
            operationId: getResultsForClass
            summary: The REST read request message for the getResultsForClass() API call.
            tags: 
                - ClassesManagement
            description: |
                Get the set of results on the service provider for a specific class. If the corresponding class cannot be located then an 'unknown' error code is returned.
            parameters: 
                - name: classSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the class.
                  required: true
                  type: string
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 100
                  minimum: 1
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 0
                  minimum: 0
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  enum: 
                    - asc
                    - desc
                  allowEmptyValue: false
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly
            responses: 
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/ResultSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            type: integer
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"

    /classes/{classSourcedId}/scoreScales:
        get:
            operationId: getScoreScalesForClass
            summary: The REST read request message for the getScoreScalesForClass() API call.
            tags: 
                - ClassesManagement
            description: |
                Get the set of scoreScales on the service provider for a specific class. If the corresponding class cannot be located then an 'unknown' error code is returned.
            parameters: 
                - name: classSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the class.
                  required: true
                  type: string
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 100
                  minimum: 1
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 0
                  minimum: 0
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  enum: 
                    - asc
                    - desc
                  allowEmptyValue: false
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly
            responses: 
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/ScoreScaleSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            type: integer
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"

    /classes/{classSourcedId}/students/{studentSourcedId}/results:
        get:
            operationId: getResultsForStudentForClass
            summary: The REST read request message for the getResultsForStudentForClass() API call.
            tags: 
                - ClassesManagement
            description: |
                Get the set of results on the service provider for a specific student and for a specific class. If the corresponding class cannot be located then an 'unknown' error code is returned.
            parameters: 
                - name: classSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the class.
                  required: true
                  type: string
                - name: studentSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the student.
                  required: true
                  type: string
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 100
                  minimum: 1
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 0
                  minimum: 0
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  enum: 
                    - asc
                    - desc
                  allowEmptyValue: false
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly
            responses: 
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/ResultSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            type: integer
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"

    /lineItems:
        get:
            operationId: getAllLineItems
            summary: The REST read request message for the getAllLineItems() API call.
            tags: 
                - LineItemsManagement
            description: |
                Get all of the Line Items on the service provider.
            parameters: 
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 100
                  minimum: 1
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 0
                  minimum: 0
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  enum: 
                    - asc
                    - desc
                  allowEmptyValue: false
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook-core.readonly
            responses: 
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/LineItemSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            type: integer
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"

    /lineItems/{lineItemSourcedId}/results:
        post:
            operationId: postResultsForLineItem
            summary: The REST createbp request message for the postResultsForLineItem() API call.
            tags: 
                - LineItemsManagement
            description: |
                To create a set of results for a specific lineItem. The responding system must return the set of sourcedIds that have been allocated to the newly created result records.
            parameters: 
                - name: lineItemSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the lineItem.
                  required: true
                  type: string
                - name: results
                  in: body
                  description: |
                      The set of result records to be created in response to this request. This includes an initial assignment of sourcedId so that the mapping between this and the actually assigned sourcedId can be reported. 
                  required: true
                  schema: 
                      $ref: "#/definitions/ResultSetDType"
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createpost
            responses: 
                "201" : 
                    description: |
                        The object has been successfully stored in the Service Provider repository.
                    schema: 
                        $ref: "#/definitions/GUIDPairSetDType"
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"

    /lineItems/{sourcedId}:
        get:
            operationId: getLineItem
            summary: The REST read request message for the getLineItem() API call.
            tags: 
                - LineItemsManagement
            description: |
                Get a specific LineItem on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for this lineItem.
                  required: true
                  type: string
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook-core.readonly
            responses: 
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/SingleLineItemDType"
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
        delete:
            operationId: deleteLineItem
            summary: The REST delete request message for the deleteLineItem() API call.
            tags: 
                - LineItemsManagement
            description: |
                Delete a specific lineItem on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the lineItem to be deleted.
                  required: true
                  type: string
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.delete
            responses: 
                "204" : 
                    description: |
                        The object has been successfully deleted. 
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
        put:
            operationId: putLineItem
            summary: The REST create request message for the putLineItem() API call.
            tags: 
                - LineItemsManagement
            description: |
                To create a new lineItem. The associated sourcedId for this new record is supplied by the requesting system.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, to be allocated to this new lineItem.
                  required: true
                  type: string
                - name: lineItem
                  in: body
                  description: |
                      The lineItem data that is to be stored.
                  required: true
                  schema: 
                      $ref: "#/definitions/SingleLineItemDType"
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createput
            responses: 
                "201" : 
                    description: |
                        The object has been successfully stored in the Service Provider repository.
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"

    /results:
        get:
            operationId: getAllResults
            summary: The REST read request message for the getAllResults() API call.
            tags: 
                - ResultsManagement
            description: |
                Get all of the results on the service provider.
            parameters: 
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 100
                  minimum: 1
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 0
                  minimum: 0
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  enum: 
                    - asc
                    - desc
                  allowEmptyValue: false
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook-core.readonly
            responses: 
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/ResultSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            type: integer
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"

    /results/{sourcedId}:
        get:
            operationId: getResult
            summary: The REST read request message for the getResult() API call.
            tags: 
                - ResultsManagement
            description: |
                Get a specific result on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for this result.
                  required: true
                  type: string
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook-core.readonly
            responses: 
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/SingleResultDType"
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
        delete:
            operationId: deleteResult
            summary: The REST delete request message for the deleteResult() API call.
            tags: 
                - ResultsManagement
            description: |
                Delete a specific result on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the result to be deleted.
                  required: true
                  type: string
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.delete
            responses: 
                "204" : 
                    description: |
                        The object has been successfully deleted. 
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
        put:
            operationId: putResult
            summary: The REST create request message for the putResult() API call.
            tags: 
                - ResultsManagement
            description: |
                To create a new result. The associated sourcedId for this new record is supplied by the requesting system.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, to be allocated to this new result.
                  required: true
                  type: string
                - name: result
                  in: body
                  description: |
                      The result data that is to be stored.
                  required: true
                  schema: 
                      $ref: "#/definitions/SingleResultDType"
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createput
            responses: 
                "201" : 
                    description: |
                        The object has been successfully stored in the Service Provider repository.
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"

    /schools/{schoolSourcedId}/lineItems:
        post:
            operationId: postLineItemsForSchool
            summary: The REST createbp request message for the postLineItemsForSchool() API call.
            tags: 
                - SchoolsManagement
            description: |
                To create a set of lineItems for a specific school.  The responding system must return the set of sourcedIds that have been allocated to the newly created lineItem records.
            parameters: 
                - name: schoolSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the school.
                  required: true
                  type: string
                - name: lineItems
                  in: body
                  description: |
                      The set of lineItem records to be created in response to this request. This includes an initial assignment of sourcedId so that the mapping between this and the actually assigned sourcedId can be reported. 
                  required: true
                  schema: 
                      $ref: "#/definitions/LineItemSetDType"
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createpost
            responses: 
                "201" : 
                    description: |
                        The object has been successfully stored in the Service Provider repository.
                    schema: 
                        $ref: "#/definitions/GUIDPairSetDType"
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"

    /schools/{schoolSourcedId}/scoreScales:
        get:
            operationId: getScoreScalesForSchool
            summary: The REST read request message for the getScoreScalesForSchool() API call.
            tags: 
                - SchoolsManagement
            description: |
                Get the set of scoreScales on the service provider for a specific school. If the corresponding school cannot be located then an 'unknown' error code is returned.
            parameters: 
                - name: schoolSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the school.
                  required: true
                  type: string
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 100
                  minimum: 1
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 0
                  minimum: 0
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  enum: 
                    - asc
                    - desc
                  allowEmptyValue: false
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly
            responses: 
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/ScoreScaleSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            type: integer
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"

    /scoreScales:
        get:
            operationId: getAllScoreScales
            summary: The REST read request message for the getAllScoreScales() API call.
            tags: 
                - ScoreScalesManagement
            description: |
                Get all of the ScoreScales on the service provider.
            parameters: 
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 100
                  minimum: 1
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 0
                  minimum: 0
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  enum: 
                    - asc
                    - desc
                  allowEmptyValue: false
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook-core.readonly
            responses: 
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/ScoreScaleSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            type: integer
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"

    /scoreScales/{sourcedId}:
        get:
            operationId: getScoreScale
            summary: The REST read request message for the getScoreScale() API call.
            tags: 
                - ScoreScalesManagement
            description: |
                Get a specific scoreScale on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for this scoreScale.
                  required: true
                  type: string
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook-core.readonly
            responses: 
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/SingleScoreScaleDType"
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
        delete:
            operationId: deleteScoreScale
            summary: The REST delete request message for the deleteScoreScale() API call.
            tags: 
                - ScoreScalesManagement
            description: |
                Delete a specific scoreScale on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the scoreScale to be deleted.
                  required: true
                  type: string
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.delete
            responses: 
                "204" : 
                    description: |
                        The object has been successfully deleted. 
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
        put:
            operationId: putScoreScale
            summary: The REST create request message for the putScoreScale() API call.
            tags: 
                - ScoreScalesManagement
            description: |
                To create a new scoreScale. The associated sourcedId for this new record is supplied by the requesting system.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, to be allocated to this new scoreScale.
                  required: true
                  type: string
                - name: scoreScale
                  in: body
                  description: |
                      The scoreScale data that is to be stored.
                  required: true
                  schema: 
                      $ref: "#/definitions/SingleScoreScaleDType"
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createput
            responses: 
                "201" : 
                    description: |
                        The object has been successfully stored in the Service Provider repository.
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"


#####################################################################################
#                               Definitions                                         #
#####################################################################################
definitions: 
    AcadSessionGUIDRefDType:
        description: |
            This is the container for reference to a OneRoster 'Academic Session' object that has an allocated sourcedId (GUID).
        type: object
        required: 
            - href
            - sourcedId
            - type
        properties: 
            href: 
                description: The URI for the type of object being referenced. Model Primitive Datatype = AnyURI.
                type: string
                format: uri
            sourcedId: 
                description: The globally unique identifier of the object being referenced. Model Primitive Datatype = String.
                type: string
            type: 
                description: |
                    The type of object being referenced i.e. an 'academicSession'.
                type: string
                enum: 
                   - academicSession
        additionalProperties: false
    AssessmentLineItemDType:
        description: |
            This is the container for the definition of an assessment lineItem. An assessment lineItem is a collection of results for a set of students who are completing an assignment.
        type: object
        required: 
            - sourcedId
            - status
            - dateLastModified
            - title
        properties: 
            sourcedId: 
                description: The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record. Model Primitive Datatype = String.
                type: string
            status: 
                description: |
                    All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
                type: string
                enum: 
                   - active
                   - tobedeleted
            dateLastModified: 
                description: All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone. Model Primitive Datatype = DateTime.
                type: string
                format: date-time
            metadata: 
                $ref: "#/definitions/MetadataDType"
            title: 
                description: The title, human readable, for the assessment lineItem.  This should allow the assessment lineItem to be distinguished from its peer assessment lineItems. Model Primitive Datatype = NormalizedString.
                type: string
            description: 
                description: A human readable description of the usage of the assessment lineItem. Model Primitive Datatype = String.
                type: string
            class: 
                $ref: "#/definitions/ClassGUIDRefDType"
            parentAssessmentLineItem: 
                $ref: "#/definitions/AssessmentLineItemGUIDRefDType"
            scoreScale: 
                $ref: "#/definitions/ScoreScaleGUIDRefDType"
            resultValueMin: 
                description: The minimum value (numeric) that can be assigned to the score attribute in a result. The score scale mapping should be used to map to other scores. Model Primitive Datatype = Float.
                type: number
                format: float
            resultValueMax: 
                description: The maximum value (numeric) that can be assigned to the score attribute in a result. The score scale mapping should be used to map to other scores. Model Primitive Datatype = Float.
                type: number
                format: float
            learningObjectiveSet: 
                description: |
                    The set of identifiers for the learning objectives to which this assessment is aligned. Any number groups of learning objectives can be assigned.
                type: array
                minItems: 0
                items: 
                    $ref: "#/definitions/LearningObjectiveSetDType"
        additionalProperties: false
    AssessmentLineItemGUIDRefDType:
        description: |
            This is the container for reference to a OneRoster 'AssessmentLineItem' object that has an allocated sourcedId (GUID).
        type: object
        required: 
            - href
            - sourcedId
            - type
        properties: 
            href: 
                description: The URI for the type of object being referenced. Model Primitive Datatype = AnyURI.
                type: string
                format: uri
            sourcedId: 
                description: The globally unique identifier of the object being referenced. Model Primitive Datatype = String.
                type: string
            type: 
                description: |
                    The type of object being referenced i.e. an 'assessmentLineItem'.
                type: string
                enum: 
                   - assessmentLineItem
        additionalProperties: false
    AssessmentLineItemSetDType:
        description: |
            This is the container for a collection of assessment lineItem instances for a message payload. This may be empty if no instances are found that sustain the applied query constraints. The order is not significant.
        type: object
        properties: 
            assessmentLineItems: 
                description: |
                    The collection of assessment lineItem instances. The order is not significant. The corresponding query constraints may result in no instances being returned.
                type: array
                minItems: 0
                items: 
                    $ref: "#/definitions/AssessmentLineItemDType"
        additionalProperties: false
    AssessmentResultDType:
        description: |
            This is the container for the AssessmentResult record.  An assessment result consists of the assigned score plus the context for that score.
        type: object
        required: 
            - sourcedId
            - status
            - dateLastModified
            - assessmentLineItem
            - student
            - scoreDate
            - scoreStatus
        properties: 
            sourcedId: 
                description: The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record. Model Primitive Datatype = String.
                type: string
            status: 
                description: |
                    All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
                type: string
                enum: 
                   - active
                   - tobedeleted
            dateLastModified: 
                description: All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone. Model Primitive Datatype = DateTime.
                type: string
                format: date-time
            metadata: 
                $ref: "#/definitions/MetadataDType"
            assessmentLineItem: 
                $ref: "#/definitions/AssessmentLineItemGUIDRefDType"
            student: 
                $ref: "#/definitions/UserGUIDRefDType"
            score: 
                description: The score for the result. If a scoreScale is assigned then the value must align with the scale. Model Primitive Datatype = Float.
                type: number
                format: float
            textScore: 
                description: An optional non-numeric score value. If a scoreScale is assigned then the value must align with the scale. Model Primitive Datatype = NormalizedString.
                type: string
            scoreDate: 
                description: The date at which the score is assigned or there is an update to the result e.g. change in the 'scoreStatus'.. The format is YYYY-MM-DD as defined in [ISO 8601]. Model Primitive Datatype = Date.
                type: string
                format: date
            scoreScale: 
                $ref: "#/definitions/ScoreScaleGUIDRefDType"
            scorePercentile: 
                description: The percentile rank of a score is the percentage of scores in its frequency distribution that are equal to or lower than it. Model Primitive Datatype = Float.
                type: number
                format: float
            scoreStatus: 
                description: |
                    The status of the score. The value is from an extensible enumerated vocabulary.
                type: string
            comment: 
                description: A human readable comment about the score. Model Primitive Datatype = String.
                type: string
            learningObjectiveSet: 
                description: |
                    The set of identifiers for the learning objectives to which this result is aligned. Any number groups of learning objectives can be assigned.
                type: array
                minItems: 0
                items: 
                    $ref: "#/definitions/LearningObjectiveScoreSetDType"
            inProgress: 
                description: |
                    This is used to indicate that the associated work activity has been assigned and student's work product is not yet expected to have been submitted.
                type: string
                enum: 
                   - true
                   - false
            incomplete: 
                description: |
                    This is used to indicate that the student's work product has been submitted but it is deemed incomplete by the teacher.
                type: string
                enum: 
                   - true
                   - false
            late: 
                description: |
                    This is used to indicate that the student's work product is either past due or it has been submitted past the due date. The score on this result may be impacted as as result of this flag.
                type: string
                enum: 
                   - true
                   - false
            missing: 
                description: |
                    This is used to indicate that the student's work product as not been submitted.
                type: string
                enum: 
                   - true
                   - false
        additionalProperties: false
    AssessmentResultSetDType:
        description: |
            This is the container for a collection of assessment result instances for a message payload. This may be empty if no instances are found that sustain the applied query constraints. The order is not significant.
        type: object
        properties: 
            assessmentResults: 
                description: |
                    The collection of assessment result instances. The order is not significant. The corresponding query constraints may result in no instances being returned.
                type: array
                minItems: 0
                items: 
                    $ref: "#/definitions/AssessmentResultDType"
        additionalProperties: false
    CategoriesSetDType:
        description: |
            This is the container for a collection of category instances for a message payload. This may be empty if no instances are found that sustain the applied query constraints. The order is not significant.
        type: object
        properties: 
            categories: 
                description: |
                    The collection of category instances. The order is not significant. The corresponding query constraints may result in no instances being returned.
                type: array
                minItems: 0
                items: 
                    $ref: "#/definitions/CategoryDType"
        additionalProperties: false
    CategoryDType:
        description: |
            A Category is the name given to a grouping of line items (line items being equivalent to assignments which students will complete). 
        type: object
        required: 
            - sourcedId
            - status
            - dateLastModified
            - title
        properties: 
            sourcedId: 
                description: The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record. Model Primitive Datatype = String.
                type: string
            status: 
                description: |
                    All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
                type: string
                enum: 
                   - active
                   - tobedeleted
            dateLastModified: 
                description: All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone. Model Primitive Datatype = DateTime.
                type: string
                format: date-time
            metadata: 
                $ref: "#/definitions/MetadataDType"
            title: 
                description: The human readable title for the category. Model Primitive Datatype = NormalizedString.
                type: string
            weight: 
                description: Total weight of this grading category in calculation of the course final score. Model Primitive Datatype = Float.
                type: number
                format: float
        additionalProperties: false
    CategoryGUIDRefDType:
        description: |
            This is the container for reference to a OneRoster 'Category' object that has an allocated sourcedId (GUID).
        type: object
        required: 
            - href
            - sourcedId
            - type
        properties: 
            href: 
                description: The URI for the type of object being referenced. Model Primitive Datatype = AnyURI.
                type: string
                format: uri
            sourcedId: 
                description: The globally unique identifier of the object being referenced. Model Primitive Datatype = String.
                type: string
            type: 
                description: |
                    The type of object being referenced i.e. a 'category'.
                type: string
                enum: 
                   - category
        additionalProperties: false
    ClassGUIDRefDType:
        description: |
            This is the container for reference to a OneRoster 'Class' object that has an allocated sourcedId (GUID).
        type: object
        required: 
            - href
            - sourcedId
            - type
        properties: 
            href: 
                description: The URI for the type of object being referenced. Model Primitive Datatype = AnyURI.
                type: string
                format: uri
            sourcedId: 
                description: The globally unique identifier of the object being referenced. Model Primitive Datatype = String.
                type: string
            type: 
                description: |
                    The type of object being referenced i.e. a 'class'.
                type: string
                enum: 
                   - class
        additionalProperties: false
    CourseGUIDRefDType:
        description: |
            This is the container for reference to a OneRoster 'Course' object that has an allocated sourcedId (GUID).
        type: object
        required: 
            - href
            - sourcedId
            - type
        properties: 
            href: 
                description: The URI for the type of object being referenced. Model Primitive Datatype = AnyURI.
                type: string
                format: uri
            sourcedId: 
                description: The globally unique identifier of the object being referenced. Model Primitive Datatype = String.
                type: string
            type: 
                description: |
                    The type of object being referenced i.e. a 'course'.
                type: string
                enum: 
                   - course
        additionalProperties: false
    GUIDPairDType:
        description: |
            The container for the mapping between the supplied (assigned by the requesting system) and allocated (assigned by the responding system) sourcedIds i.e. GUIDs.
        type: object
        required: 
            - suppliedSourcedId
            - allocatedSourcedId
        properties: 
            suppliedSourcedId: 
                description: The temporary sourcedId that has been allocated by the requesting system. This sourcedId is used to enable identification of the original record for which the new sourcedId has been allocated at the service provider. Model Primitive Datatype = String.
                type: string
            allocatedSourcedId: 
                description: The sourcedId that has been allocated by the system on which the new record has been created. Model Primitive Datatype = String.
                type: string
        additionalProperties: false
    GUIDPairSetDType:
        description: |
            The container for the set of sourcedId pairs. This is used to provide the mapping between a set of original/new values allocated to a set of sourcedIds.
        type: object
        properties: 
            sourcedIdPairs: 
                description: |
                    The set of sourcedId pairs. The order is not significant as each pair contains the information between the original/new values.
                type: array
                minItems: 0
                items: 
                    $ref: "#/definitions/GUIDPairDType"
        additionalProperties: false
    LearningObjectiveResultsDType:
        description: |
            This is the container for a learning objective identifier. This also allows a mastery score to be aligned with the learning objective.
        type: object
        required: 
            - learningObjectiveId
        properties: 
            learningObjectiveId: 
                description: The unique identifier for the associated learning objective. If this is a CASE identifier it MUST be a valid UUID. Model Primitive Datatype = NormalizedString.
                type: string
            score: 
                description: The optional mastery score supplied as a numeric value.  Model Primitive Datatype = Float.
                type: number
                format: float
            textScore: 
                description: The optional mastery score supplied in a non-numeric form.  Model Primitive Datatype = NormalizedString.
                type: string
        additionalProperties: false
    LearningObjectiveScoreSetDType:
        description: |
            This is the container for the set of learning objective identifiers that are from a single source responsible for creating those identifiers. This also allows a mastery score to be aligned with a learning objective.
        type: object
        required: 
            - source
            - learningObjectiveResults
        properties: 
            source: 
                description: |
                    The source responsible for creating the learning objective identifiers. The permitted values are from an extensible vocabulary.
                type: string
            learningObjectiveResults: 
                description: |
                    The set of unique identifiers for the associated learning objectives (these may have alignment with a mastery score). If these are CASE identifiers they MUST be valid UUIDs.
                type: array
                minItems: 1
                items: 
                    $ref: "#/definitions/LearningObjectiveResultsDType"
        additionalProperties: false
    LearningObjectiveSetDType:
        description: |
            This is the container for the set of learning objective identifiers that are from a single source responsible for creating those identifiers.
        type: object
        required: 
            - source
            - learningObjectiveIds
        properties: 
            source: 
                description: |
                    The source responsible for creating the learning objective identifiers. The permitted values are from an extensible vocabulary.
                type: string
            learningObjectiveIds: 
                description: The set of unique identifiers for the associated learning objectives. If these are CASE identifiers they MUST be valid UUIDs. Model Primitive Datatype = NormalizedString.
                type: array
                minItems: 1
                items: 
                    type: string
        additionalProperties: false
    LineItemDType:
        description: |
            This is the container for the definition of a lineItem. A lineItem is a collection of results for a set of students who are completing an assignment as part of a class at a school.
        type: object
        required: 
            - sourcedId
            - status
            - dateLastModified
            - title
            - assignDate
            - dueDate
            - class
            - school
            - category
        properties: 
            sourcedId: 
                description: The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record. Model Primitive Datatype = String.
                type: string
            status: 
                description: |
                    All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
                type: string
                enum: 
                   - active
                   - tobedeleted
            dateLastModified: 
                description: All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone. Model Primitive Datatype = DateTime.
                type: string
                format: date-time
            metadata: 
                $ref: "#/definitions/MetadataDType"
            title: 
                description: The title, human readable, for the lineItem.  This should allow the lineItem to be distinguished from its peer lineItems. Model Primitive Datatype = NormalizedString.
                type: string
            description: 
                description: A human readable description of the usage of the lineItem. Model Primitive Datatype = String.
                type: string
            assignDate: 
                description: The date/time the activity being addressed by the lineItem was assigned to the student. This has a format as defined in [ISO 8601]. Model Primitive Datatype = DateTime.
                type: string
                format: date-time
            dueDate: 
                description: The date/time by which the assignment must be completed and submitted. This has the dateTime format as defined in [ISO 8601]. Model Primitive Datatype = DateTime.
                type: string
                format: date-time
            class: 
                $ref: "#/definitions/ClassGUIDRefDType"
            school: 
                $ref: "#/definitions/OrgGUIDRefDType"
            category: 
                $ref: "#/definitions/CategoryGUIDRefDType"
            gradingPeriod: 
                $ref: "#/definitions/AcadSessionGUIDRefDType"
            academicSession: 
                $ref: "#/definitions/AcadSessionGUIDRefDType"
            scoreScale: 
                $ref: "#/definitions/ScoreScaleGUIDRefDType"
            resultValueMin: 
                description: The minimum value (numeric) that can be assigned to the score attribute in a result. The score scale mapping should be used to map to other scores. Model Primitive Datatype = Float.
                type: number
                format: float
            resultValueMax: 
                description: The maximum value (numeric) that can be assigned to the score attribute in a result. The score scale mapping should be used to map to other scores. Model Primitive Datatype = Float.
                type: number
                format: float
            learningObjectiveSet: 
                description: |
                    The set of identifiers for the learning objectives to which this assessment is aligned. Any number groups of learning objectives can be assigned.
                type: array
                minItems: 0
                items: 
                    $ref: "#/definitions/LearningObjectiveSetDType"
        additionalProperties: false
    LineItemGUIDRefDType:
        description: |
            This is the container for reference to a OneRoster 'LineItem' object that has an allocated sourcedId (GUID).
        type: object
        required: 
            - href
            - sourcedId
            - type
        properties: 
            href: 
                description: The URI for the type of object being referenced. Model Primitive Datatype = AnyURI.
                type: string
                format: uri
            sourcedId: 
                description: The globally unique identifier of the object being referenced. Model Primitive Datatype = String.
                type: string
            type: 
                description: |
                    The type of object being referenced i.e. a 'lineItem'.
                type: string
                enum: 
                   - lineItem
        additionalProperties: false
    LineItemSetDType:
        description: |
            This is the container for a collection of lineItem instances for a message payload. This may be empty if no instances are found that sustain the applied query constraints. The order is not significant.
        type: object
        properties: 
            lineItems: 
                description: |
                    The collection of lineItem instances. The order is not significant. The corresponding query constraints may result in no instances being returned.
                type: array
                minItems: 0
                items: 
                    $ref: "#/definitions/LineItemDType"
        additionalProperties: false
    MetadataDType:
        description: |
            The container for the proprietary extensions.
        type: object
        properties: {}
        additionalProperties: true
    OrgGUIDRefDType:
        description: |
            This is the container for reference to a OneRoster 'Org' object that has an allocated sourcedId (GUID).
        type: object
        required: 
            - href
            - sourcedId
            - type
        properties: 
            href: 
                description: The URI for the type of object being referenced. Model Primitive Datatype = AnyURI.
                type: string
                format: uri
            sourcedId: 
                description: The globally unique identifier of the object being referenced. Model Primitive Datatype = String.
                type: string
            type: 
                description: |
                    The type of object being referenced i.e. an 'org'.
                type: string
                enum: 
                   - org
        additionalProperties: false
    ResultDType:
        description: |
            This is the container for the Result record.  A result consists of the assigned score plus the context for that score.
        type: object
        required: 
            - sourcedId
            - status
            - dateLastModified
            - lineItem
            - student
            - scoreStatus
            - scoreDate
        properties: 
            sourcedId: 
                description: The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record. Model Primitive Datatype = String.
                type: string
            status: 
                description: |
                    All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
                type: string
                enum: 
                   - active
                   - tobedeleted
            dateLastModified: 
                description: All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone. Model Primitive Datatype = DateTime.
                type: string
                format: date-time
            metadata: 
                $ref: "#/definitions/MetadataDType"
            lineItem: 
                $ref: "#/definitions/LineItemGUIDRefDType"
            student: 
                $ref: "#/definitions/UserGUIDRefDType"
            class: 
                $ref: "#/definitions/ClassGUIDRefDType"
            scoreScale: 
                $ref: "#/definitions/ScoreScaleGUIDRefDType"
            scoreStatus: 
                description: |
                    The status of the score. The value is from an extensible enumerated vocabulary.
                type: string
            score: 
                description: The score for the result. If a scoreScale is assigned then the value must align with the scale. Model Primitive Datatype = Float.
                type: number
                format: float
            textScore: 
                description: An optional non-numeric score value. If a scoreScale is assigned then the value must align with the scale. This attribute was added in OR 1.2. Model Primitive Datatype = NormalizedString.
                type: string
            scoreDate: 
                description: The date at which the score is assigned or there is an update to the result e.g. change in the 'scoreStatus'. The format is YYYY-MM-DD as defined in [ISO 8601]. Model Primitive Datatype = Date.
                type: string
                format: date
            comment: 
                description: A human readable comment about the score. Model Primitive Datatype = String.
                type: string
            learningObjectiveSet: 
                description: |
                    The set of identifiers for the learning objectives to which this result is aligned. Any number groups of learning objectives can be assigned.
                type: array
                minItems: 0
                items: 
                    $ref: "#/definitions/LearningObjectiveScoreSetDType"
            inProgress: 
                description: |
                    This is used to indicate that the associated work activity has been assigned and student's work product is not yet expected to have been submitted.
                type: string
                enum: 
                   - true
                   - false
            incomplete: 
                description: |
                    This is used to indicate that the student's work product has been submitted but it is deemed incomplete by the teacher.
                type: string
                enum: 
                   - true
                   - false
            late: 
                description: |
                    This is used to indicate that the student's work product is either past due or it has been submitted past the due date. The score on this result may be impacted as as result of this flag.
                type: string
                enum: 
                   - true
                   - false
            missing: 
                description: |
                    This is used to indicate that the student's work product as not been submitted.
                type: string
                enum: 
                   - true
                   - false
        additionalProperties: false
    ResultSetDType:
        description: |
            This is the container for a collection of result instances for a message payload. This may be empty if no instances are found that sustain the applied query constraints. The order is not significant.
        type: object
        properties: 
            results: 
                description: |
                    The collection of result instances. The order is not significant. The corresponding query constraints may result in no instances being returned.
                type: array
                minItems: 0
                items: 
                    $ref: "#/definitions/ResultDType"
        additionalProperties: false
    ScoreScaleDType:
        description: |
            The container for the definition Score Scale mapping i.e. the relationship between two score scales.
        type: object
        required: 
            - sourcedId
            - status
            - dateLastModified
            - title
            - type
            - class
            - scoreScaleValue
        properties: 
            sourcedId: 
                description: The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record. Model Primitive Datatype = String.
                type: string
            status: 
                description: |
                    All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
                type: string
                enum: 
                   - active
                   - tobedeleted
            dateLastModified: 
                description: All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone. Model Primitive Datatype = DateTime.
                type: string
                format: date-time
            metadata: 
                $ref: "#/definitions/MetadataDType"
            title: 
                description: The human readable title for the score scale mapping. Model Primitive Datatype = NormalizedString.
                type: string
            type: 
                description: The type of score scale mapping. At present there is no predefined vocabulary. This should be used by an organization to differentiate between the score scales that it produces. Model Primitive Datatype = NormalizedString.
                type: string
            course: 
                $ref: "#/definitions/CourseGUIDRefDType"
            class: 
                $ref: "#/definitions/ClassGUIDRefDType"
            scoreScaleValue: 
                description: |
                    The set of mappings for this score scale.
                type: array
                minItems: 1
                items: 
                    $ref: "#/definitions/ScoreScaleValueDType"
        additionalProperties: false
    ScoreScaleGUIDRefDType:
        description: |
            This is the container for reference to a OneRoster 'ScoreScale' object that has an allocated sourcedId (GUID).
        type: object
        required: 
            - href
            - sourcedId
            - type
        properties: 
            href: 
                description: The URI for the type of object being referenced. Model Primitive Datatype = AnyURI.
                type: string
                format: uri
            sourcedId: 
                description: The globally unique identifier of the object being referenced. Model Primitive Datatype = String.
                type: string
            type: 
                description: |
                    The type of object being referenced i.e. a 'scoreScale'.
                type: string
                enum: 
                   - scoreScale
        additionalProperties: false
    ScoreScaleSetDType:
        description: |
            This is the container for a collection of scoreScale instances for a message payload. This may be empty if no instances are found that sustain the applied query constraints. The order is not significant.
        type: object
        properties: 
            scoreScales: 
                description: |
                    The collection of scoreScale instances. The order is not significant. The corresponding query constraints may result in no instances being returned.
                type: array
                minItems: 0
                items: 
                    $ref: "#/definitions/ScoreScaleDType"
        additionalProperties: false
    ScoreScaleValueDType:
        description: |
            A specific mapping of values between two score scales. The left hand side (LHS) value is the reference point. Examples of this mapping are: '7' maps to 'A', '7'-'10' maps to 'A', etc.
        type: object
        required: 
            - itemValueLHS
            - itemValueRHS
        properties: 
            itemValueLHS: 
                description: The left hand side value of the mapping relationship. The format is either a single value ('x') or a range ('x' - 'y'). In the case of a single value this is considered to be the inclusive lower value for the implied range. When a range is specified (lower-to-upper) the values are inclusive. Model Primitive Datatype = NormalizedString.
                type: string
            itemValueRHS: 
                description: The right hand side value of the mapping relationship  i.e. the equivalent value to the reference point defined in the LHS. Model Primitive Datatype = NormalizedString.
                type: string
        additionalProperties: false
    SingleAssessmentLineItemDType:
        description: |
            This is the container for a single assessment lineItem instance for a message payload.
        type: object
        required: 
            - assessmentLineItem
        properties: 
            assessmentLineItem: 
                $ref: "#/definitions/AssessmentLineItemDType"
        additionalProperties: false
    SingleAssessmentResultDType:
        description: |
            This is the container for a single assessment result instance for a message payload.
        type: object
        required: 
            - assessmentResult
        properties: 
            assessmentResult: 
                $ref: "#/definitions/AssessmentResultDType"
        additionalProperties: false
    SingleCategoryDType:
        description: |
            This is the container for a single category instance for a message payload.
        type: object
        required: 
            - category
        properties: 
            category: 
                $ref: "#/definitions/CategoryDType"
        additionalProperties: false
    SingleLineItemDType:
        description: |
            This is the container for a single lineItem instance for a message payload.
        type: object
        required: 
            - lineItem
        properties: 
            lineItem: 
                $ref: "#/definitions/LineItemDType"
        additionalProperties: false
    SingleResultDType:
        description: |
            This is the container for a single result instance for a message payload.
        type: object
        required: 
            - result
        properties: 
            result: 
                $ref: "#/definitions/ResultDType"
        additionalProperties: false
    SingleScoreScaleDType:
        description: |
            This is the container for a single scoreScale instance for a message payload.
        type: object
        required: 
            - scoreScale
        properties: 
            scoreScale: 
                $ref: "#/definitions/ScoreScaleDType"
        additionalProperties: false
    UserGUIDRefDType:
        description: |
            This is the container for reference to a OneRoster 'User' object that has an allocated sourcedId (GUID).
        type: object
        required: 
            - href
            - sourcedId
            - type
        properties: 
            href: 
                description: The URI for the type of object being referenced. Model Primitive Datatype = AnyURI.
                type: string
                format: uri
            sourcedId: 
                description: The globally unique identifier of the object being referenced. Model Primitive Datatype = String.
                type: string
            type: 
                description: |
                    The type of object being referenced i.e. a 'user'.
                type: string
                enum: 
                   - user
        additionalProperties: false
    imsx_CodeMinorDType:
        description: |
            This is the container for the set of code minor status codes reported in the responses from the Service Provider.
        type: object
        required: 
            - imsx_codeMinorField
        properties: 
            imsx_codeMinorField: 
                description: |
                    Each reported code minor status code.
                type: array
                minItems: 1
                items: 
                    $ref: "#/definitions/imsx_CodeMinorFieldDType"
        additionalProperties: false
    imsx_CodeMinorFieldDType:
        description: |
            This is the container for a single code minor status code.
        type: object
        required: 
            - imsx_codeMinorFieldName
            - imsx_codeMinorFieldValue
        properties: 
            imsx_codeMinorFieldName: 
                description: This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'. Model Primitive Datatype = NormalizedString.
                type: string
                default: TargetEndSystem
            imsx_codeMinorFieldValue: 
                description: |
                    The code minor status code (this is a value from the corresponding enumerated vocabulary).
                type: string
                enum: 
                   - fullsuccess
                   - invalid_filter_field
                   - invalid_selection_field
                   - invaliddata
                   - unauthorisedrequest
                   - internal_server_error
                   - server_busy
                   - deletefailure
                   - unknownobject
                   - forbidden
        additionalProperties: false
    imsx_StatusInfoDType:
        description: |
            This is the container for the status code and associated information returned within the HTTP messages received from the Service Provider. For the OneRoster Rostering 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: 
                description: |
                    The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.
                type: string
                enum: 
                   - success
                   - processing
                   - failure
                   - unsupported
            imsx_severity: 
                description: |
                    The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.
                type: string
                enum: 
                   - status
                   - warning
                   - error
            imsx_description: 
                description: A human readable description supplied by the entity creating the status code information. Model Primitive Datatype = String.
                type: string
            imsx_CodeMinor: 
                $ref: "#/definitions/imsx_CodeMinorDType"
        additionalProperties: false
        

B2.2 OpenAPI 3.0 YAML Listing

The OpenAPI 3 (YAML) listing (based upon [OAS, 17]) is shown below (the OpenAPI YAML is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/openapi/onerosterv1p2gradebookservice_openapi3_v1p0.yaml).

# #####################################################################################
# YAML File Information
# #####################################################################################
# 
# Author:         Colin Smythe (IMS Global)
# Date:           19th September 2022
# Version:        1.0
# Status:         IMS Final Release
# Description:    The OneRoster Gradebook service binding is available in REST/JSON. The model is based upon the IMS PSM modelling approach.
# 
# History:        Version 1.2: This is the first release of the OneRoster Gradebook 1.2 service.
# 
# License:        IPR and Distribution Notices
# 
#                 This machine readable file is derived from the IMS OneRoster Gradebook Service Version 1.2
#                 found at http://www.imsglobal.org/lis and the original IMS Global schema binding or code base
#                 http://www.imsglobal.org/lis.
# 
#                 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 procedures with respect to rights in IMS 
#                 specifications can be found at the IMS Global Intellectual Property Rights web page: http://www.imsglobal.org/ipr/imsipr_policyFinal.pdf.
# 
#                 Copyright (c) IMS Global Learning Consortium 1999-2022. 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/license.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 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 SPECIFICATION.
# 
# Source UML File Information
# ===========================
# The source file information must be supplied as an XMI file (without diagram layout information).
# The supported UML authoring tools are:
# (a) Poseidon - v6 (and later)
# (b) Papyrus - v1.1.3 (and later)
# 
# Source XSLT File Information
# ============================
# XSL Generator:    Specificationv1p0_GenerationToolv1.xsl
# XSLT Processor:   Saxon
# Release:          1.0
# Date:             31st January, 2021
# Autogen Engineer: Colin Smythe (IMS Global, UK)
# Autogen Date:     2022-09-13
# 
# IMS Global Auto-generation Binding Tool-kit (I-BAT)
# ===================================================
# This file was auto-generated using the IMS Global Binding Auto-generation Tool-kit (I-BAT).  While every
# attempt has been made to ensure that this tool auto-generates the files correctly, users should be aware
# that this is an experimental tool.  Permission is given to make use of this tool.  IMS Global makes no
# claim on the materials created by third party users of this tool.  Details on how to use this tool
# are contained in the IMS Global "I-BAT" documentation available at the IMS Global web-site:
# http://www.imsglobal.org.
# 
# Tool Copyright:  2012-2022  (c) IMS Global Learning Consortium Inc.  All Rights Reserved.
# 
# #####################################################################################

openapi: '3.0.0'

#####################################################################################
#                               API Information                                     #
#####################################################################################
info: 
    version: '1.2'
    title: OneRoster Gradebook Service OpenAPI (YAML) Definition
    description: The OneRoster Gradebook service binding is available in REST/JSON. The model is based upon the IMS PSM modelling approach.
    termsOfService: https://www.imsglobal.org/license.html
    contact: 
        name: Vice President of Operations, 1EdTech
        url: https://www.1edtech.org
        email: operations@1edtech.org
    license: 
        name: 1EdTech Consortium
        url: https://www.1edtech.org/license.html

#####################################################################################
#                                 Servers                                           #
#####################################################################################
servers: 
    - url: https://{hostName}{basePath}
      description: The pattern for the Server URL should be configured for the actual server location.
      variables: 
          "hostName": 
              description: This is the hostname for the server and MUST be set to the actual service provider (the 1EdTech url is given as a default value).
              default: www.imsglobal.org
          "basePath": 
              description: This is the base-path for the full URL and MUST be a part of the service endpoints.
              enum: 
                - /ims/oneroster/gradebook/v1p2
              default: /ims/oneroster/gradebook/v1p2

#####################################################################################
#                                  Tags                                             #
#####################################################################################
tags: 
    - name: AssessmentLineItemsManagement
      description: |
        This enables the management of the assessment lineItems i.e. lineitems that are used to store results about tests/assessments and where these test/assessments are not aligned to a class.
    - name: AssessmentResultsManagement
      description: |
        This enables the management of the assessment results i.e. results that are used to store scores for tests/assessments and where these test/assessments are not aligned to a class.
    - name: CategoriesManagement
      description: |
        This enables the management of Categories i.e. collections of LineItems.
    - name: ClassesManagement
      description: |
        This enables the management of Classes i.e. scheduled learning of courses, with respect to scoreScales. For this service this is the collection of operations that provide gradebook data in the context of a class identifier.
    - name: LineItemsManagement
      description: |
        This enables the management of lineItems i.e. the set of results for the assessment of some activity.
    - name: ResultsManagement
      description: |
        This enables the management of results i.e. the score allocated to a learner from the assessent of a learning activity. Results are collected as a set of 'lineItems'.
    - name: SchoolsManagement
      description: |
        This enables the management of information about schools with respect to scoreScales. A school is a type of 'org'. For this service this is the collection of operations that provide gradebook data in the context of a school identifier.
    - name: ScoreScalesManagement
      description: |
        This enables the management of scoreScales i.e. the set of scales for the results and lineItems.

#####################################################################################
#                                   Paths                                           #
#####################################################################################
paths: 
    /assessmentLineItems:
        get:
            operationId: getAllAssessmentLineItems
            summary: The REST read request message for the getAllAssessmentLineItems() API call.
            tags: 
                - AssessmentLineItemsManagement
            description: |
                Get all of the Assessment Line Items on the service provider.
            parameters: 
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 100
                      minimum: 1
                  allowEmptyValue: false
                  style: form
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 0
                      minimum: 0
                  allowEmptyValue: false
                  style: form
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                      enum: 
                        - asc
                        - desc
                  allowEmptyValue: false
                  style: form
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.readonly
            responses: 
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/AssessmentLineItemSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            schema: 
                                type: integer
                    links: 
                        "next" :
                            description: |
                                Get the next set of resources i.e. from offset to offset+limit
                            operationId: getAllAssessmentLineItems
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "last" :
                            description: |
                                Get the last set of resources i.e. from offset to end
                            operationId: getAllAssessmentLineItems
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "first" :
                            description: |
                                Get the first set of resources i.e. from first to limit
                            operationId: getAllAssessmentLineItems
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "prev" :
                            description: |
                                Get the previous set of resources i.e. from last_offset to last_offset+limit
                            operationId: getAllAssessmentLineItems
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"

    /assessmentLineItems/{sourcedId}:
        get:
            operationId: getAssessmentLineItem
            summary: The REST read request message for the getAssessmentLineItem() API call.
            tags: 
                - AssessmentLineItemsManagement
            description: |
                Get a specific Assessment LineItem on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for this assessment lineItem.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.readonly
            responses: 
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/SingleAssessmentLineItemDType"
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
        delete:
            operationId: deleteAssessmentLineItem
            summary: The REST delete request message for the deleteAssessmentLineItem() API call.
            tags: 
                - AssessmentLineItemsManagement
            description: |
                Delete a specific Assessment LineItem on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the assessment lineItem to be deleted.
                  required: true
                  schema: 
                      type: string
                  style: simple
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.delete
            responses: 
                "204" : 
                    description: |
                        The object has been successfully deleted. 
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
        put:
            operationId: putAssessmentLineItem
            summary: The REST create request message for the putAssessmentLineItem() API call.
            tags: 
                - AssessmentLineItemsManagement
            description: |
                To create a new Assessment LineItem. The associated sourcedId for this new record is supplied by the requesting system.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, to be allocated to this new assessment lineItem.
                  required: true
                  schema: 
                      type: string
                  style: simple
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.createput
            requestBody:
                description: |
                    The assessment lineItem data that is to be stored.
                content: 
                    application/json: 
                        schema: 
                            $ref: "#/components/schemas/SingleAssessmentLineItemDType"
                required: true
            responses: 
                "201" : 
                    description: |
                        The object has been successfully stored in the Service Provider repository.
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"

    /assessmentResults:
        get:
            operationId: getAllAssessmentResults
            summary: The REST read request message for the getAllAssessmentResults() API call.
            tags: 
                - AssessmentResultsManagement
            description: |
                Get all of the Assessment Results on the service provider.
            parameters: 
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 100
                      minimum: 1
                  allowEmptyValue: false
                  style: form
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 0
                      minimum: 0
                  allowEmptyValue: false
                  style: form
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                      enum: 
                        - asc
                        - desc
                  allowEmptyValue: false
                  style: form
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.readonly
            responses: 
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/AssessmentResultSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            schema: 
                                type: integer
                    links: 
                        "next" :
                            description: |
                                Get the next set of resources i.e. from offset to offset+limit
                            operationId: getAllAssessmentResults
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "last" :
                            description: |
                                Get the last set of resources i.e. from offset to end
                            operationId: getAllAssessmentResults
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "first" :
                            description: |
                                Get the first set of resources i.e. from first to limit
                            operationId: getAllAssessmentResults
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "prev" :
                            description: |
                                Get the previous set of resources i.e. from last_offset to last_offset+limit
                            operationId: getAllAssessmentResults
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"

    /assessmentResults/{sourcedId}:
        get:
            operationId: getAssessmentResult
            summary: The REST read request message for the getAssessmentResult() API call.
            tags: 
                - AssessmentResultsManagement
            description: |
                Get a specific Assessment Result on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      Tthe unique identifier, GUID, for this assessment result.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.readonly
            responses: 
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/SingleAssessmentResultDType"
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
        delete:
            operationId: deleteAssessmentResult
            summary: The REST delete request message for the deleteAssessmentResult() API call.
            tags: 
                - AssessmentResultsManagement
            description: |
                Delete a specific Assessment Result on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the assessment result to be deleted.
                  required: true
                  schema: 
                      type: string
                  style: simple
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.delete
            responses: 
                "204" : 
                    description: |
                        The object has been successfully deleted. 
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
        put:
            operationId: putAssessmentResult
            summary: The REST create request message for the putAssessmentResult() API call.
            tags: 
                - AssessmentResultsManagement
            description: |
                To create a new Assessment Result. The associated sourcedId for this new record is supplied by the requesting system.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, to be allocated to this new assessment result.
                  required: true
                  schema: 
                      type: string
                  style: simple
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.createput
            requestBody:
                description: |
                    The assessment result data that is to be stored.
                content: 
                    application/json: 
                        schema: 
                            $ref: "#/components/schemas/SingleAssessmentResultDType"
                required: true
            responses: 
                "201" : 
                    description: |
                        The object has been successfully stored in the Service Provider repository.
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"

    /categories:
        get:
            operationId: getAllCategories
            summary: The REST read request message for the getAllCategories() API call.
            tags: 
                - CategoriesManagement
            description: |
                Get all of the lineItem categories on the service provider.
            parameters: 
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 100
                      minimum: 1
                  allowEmptyValue: false
                  style: form
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 0
                      minimum: 0
                  allowEmptyValue: false
                  style: form
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                      enum: 
                        - asc
                        - desc
                  allowEmptyValue: false
                  style: form
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook-core.readonly
            responses: 
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/CategoriesSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            schema: 
                                type: integer
                    links: 
                        "next" :
                            description: |
                                Get the next set of resources i.e. from offset to offset+limit
                            operationId: getAllCategories
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "last" :
                            description: |
                                Get the last set of resources i.e. from offset to end
                            operationId: getAllCategories
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "first" :
                            description: |
                                Get the first set of resources i.e. from first to limit
                            operationId: getAllCategories
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "prev" :
                            description: |
                                Get the previous set of resources i.e. from last_offset to last_offset+limit
                            operationId: getAllCategories
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"

    /categories/{sourcedId}:
        get:
            operationId: getCategory
            summary: The REST read request message for the getCategory() API call.
            tags: 
                - CategoriesManagement
            description: |
                Get a specific lineItem category on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for this category.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook-core.readonly
            responses: 
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/SingleCategoryDType"
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
        delete:
            operationId: deleteCategory
            summary: The REST delete request message for the deleteCategory() API call.
            tags: 
                - CategoriesManagement
            description: |
                Delete a specific lineItem category on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the category to be deleted.
                  required: true
                  schema: 
                      type: string
                  style: simple
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.delete
            responses: 
                "204" : 
                    description: |
                        The object has been successfully deleted. 
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
        put:
            operationId: putCategory
            summary: The REST create request message for the putCategory() API call.
            tags: 
                - CategoriesManagement
            description: |
                To create a new lineItem category. The associated sourcedId for this new record is supplied by the requesting system.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, to be allocated to this new category.
                  required: true
                  schema: 
                      type: string
                  style: simple
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createput
            requestBody:
                description: |
                    The category data that is to be stored.
                content: 
                    application/json: 
                        schema: 
                            $ref: "#/components/schemas/SingleCategoryDType"
                required: true
            responses: 
                "201" : 
                    description: |
                        The object has been successfully stored in the Service Provider repository.
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"

    /classes/{classSourcedId}/academicSessions/{academicSessionSourcedId}/results:
        post:
            operationId: postResultsForAcademicSessionForClass
            summary: The REST createbp request message for the postResultsForAcademicSessionForClass() API call.
            tags: 
                - ClassesManagement
            description: |
                To create a set of results for a specific academic session and specific class. The responding system must return the set of sourcedIds that have been allocated to the newly created result records. If the corresponding class or academic session cannot be located then an 'unknown' error code is returned.
            parameters: 
                - name: classSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the class.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: academicSessionSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the academic session.
                  required: true
                  schema: 
                      type: string
                  style: simple
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createpost
            requestBody:
                description: |
                    The set of result records to be created in response to this request. This includes an initial assignment of sourcedId so that the mapping between this and the actually assigned sourcedId can be reported. 
                content: 
                    application/json: 
                        schema: 
                            $ref: "#/components/schemas/ResultSetDType"
                required: true
            responses: 
                "201" : 
                    description: |
                        The object has been successfully stored in the Service Provider repository.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/GUIDPairSetDType"
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"

    /classes/{classSourcedId}/categories:
        get:
            operationId: getCategoriesForClass
            summary: The REST read request message for the getCategoriesForClass() API call.
            tags: 
                - ClassesManagement
            description: |
                Get the set of categories on the service provider for a specific class. If the corresponding class cannot be located then an 'unknown' error code is returned.
            parameters: 
                - name: classSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the class.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 100
                      minimum: 1
                  allowEmptyValue: false
                  style: form
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 0
                      minimum: 0
                  allowEmptyValue: false
                  style: form
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                      enum: 
                        - asc
                        - desc
                  allowEmptyValue: false
                  style: form
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly
            responses: 
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/CategoriesSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            schema: 
                                type: integer
                    links: 
                        "next" :
                            description: |
                                Get the next set of resources i.e. from offset to offset+limit
                            operationId: getCategoriesForClass
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "last" :
                            description: |
                                Get the last set of resources i.e. from offset to end
                            operationId: getCategoriesForClass
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "first" :
                            description: |
                                Get the first set of resources i.e. from first to limit
                            operationId: getCategoriesForClass
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "prev" :
                            description: |
                                Get the previous set of resources i.e. from last_offset to last_offset+limit
                            operationId: getCategoriesForClass
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"

    /classes/{classSourcedId}/lineItems:
        get:
            operationId: getLineItemsForClass
            summary: The REST read request message for the getLineItemsForClass() API call.
            tags: 
                - ClassesManagement
            description: |
                Get the set of lineItems on the service provider for a specific class. If the corresponding class cannot be located then an 'unknown' error code is returned.
            parameters: 
                - name: classSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the class.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 100
                      minimum: 1
                  allowEmptyValue: false
                  style: form
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 0
                      minimum: 0
                  allowEmptyValue: false
                  style: form
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                      enum: 
                        - asc
                        - desc
                  allowEmptyValue: false
                  style: form
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly
            responses: 
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/LineItemSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            schema: 
                                type: integer
                    links: 
                        "next" :
                            description: |
                                Get the next set of resources i.e. from offset to offset+limit
                            operationId: getLineItemsForClass
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "last" :
                            description: |
                                Get the last set of resources i.e. from offset to end
                            operationId: getLineItemsForClass
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "first" :
                            description: |
                                Get the first set of resources i.e. from first to limit
                            operationId: getLineItemsForClass
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "prev" :
                            description: |
                                Get the previous set of resources i.e. from last_offset to last_offset+limit
                            operationId: getLineItemsForClass
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
        post:
            operationId: postLineItemsForClass
            summary: The REST createbp request message for the postLineItemsForClass() API call.
            tags: 
                - ClassesManagement
            description: |
                To create a set of lineItems for a specific class. The responding system must return the set of sourcedIds that have been allocated to the newly created lineItem records. If the corresponding class cannot be located then an 'unknown' error code is returned.
            parameters: 
                - name: classSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the class.
                  required: true
                  schema: 
                      type: string
                  style: simple
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createpost
            requestBody:
                description: |
                    The set of lineItem records to be created in response to this request. This includes an initial assignment of sourcedId so that the mapping between this and the actually assigned sourcedId can be reported. 
                content: 
                    application/json: 
                        schema: 
                            $ref: "#/components/schemas/LineItemSetDType"
                required: true
            responses: 
                "201" : 
                    description: |
                        The object has been successfully stored in the Service Provider repository.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/GUIDPairSetDType"
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"

    /classes/{classSourcedId}/lineItems/{lineItemSourcedId}/results:
        get:
            operationId: getResultsForLineItemForClass
            summary: The REST read request message for the getResultsForLineItemForClass() API call.
            tags: 
                - ClassesManagement
            description: |
                Get the set of results on the service provider for a specific lineItem and for a specific class. If the corresponding class cannot be located then an 'unknown' error code is returned.
            parameters: 
                - name: classSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the class.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: lineItemSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the lineItem.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 100
                      minimum: 1
                  allowEmptyValue: false
                  style: form
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 0
                      minimum: 0
                  allowEmptyValue: false
                  style: form
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                      enum: 
                        - asc
                        - desc
                  allowEmptyValue: false
                  style: form
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly
            responses: 
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/ResultSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            schema: 
                                type: integer
                    links: 
                        "next" :
                            description: |
                                Get the next set of resources i.e. from offset to offset+limit
                            operationId: getResultsForLineItemForClass
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "last" :
                            description: |
                                Get the last set of resources i.e. from offset to end
                            operationId: getResultsForLineItemForClass
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "first" :
                            description: |
                                Get the first set of resources i.e. from first to limit
                            operationId: getResultsForLineItemForClass
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "prev" :
                            description: |
                                Get the previous set of resources i.e. from last_offset to last_offset+limit
                            operationId: getResultsForLineItemForClass
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"

    /classes/{classSourcedId}/results:
        get:
            operationId: getResultsForClass
            summary: The REST read request message for the getResultsForClass() API call.
            tags: 
                - ClassesManagement
            description: |
                Get the set of results on the service provider for a specific class. If the corresponding class cannot be located then an 'unknown' error code is returned.
            parameters: 
                - name: classSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the class.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 100
                      minimum: 1
                  allowEmptyValue: false
                  style: form
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 0
                      minimum: 0
                  allowEmptyValue: false
                  style: form
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                      enum: 
                        - asc
                        - desc
                  allowEmptyValue: false
                  style: form
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly
            responses: 
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/ResultSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            schema: 
                                type: integer
                    links: 
                        "next" :
                            description: |
                                Get the next set of resources i.e. from offset to offset+limit
                            operationId: getResultsForClass
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "last" :
                            description: |
                                Get the last set of resources i.e. from offset to end
                            operationId: getResultsForClass
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "first" :
                            description: |
                                Get the first set of resources i.e. from first to limit
                            operationId: getResultsForClass
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "prev" :
                            description: |
                                Get the previous set of resources i.e. from last_offset to last_offset+limit
                            operationId: getResultsForClass
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"

    /classes/{classSourcedId}/scoreScales:
        get:
            operationId: getScoreScalesForClass
            summary: The REST read request message for the getScoreScalesForClass() API call.
            tags: 
                - ClassesManagement
            description: |
                Get the set of scoreScales on the service provider for a specific class. If the corresponding class cannot be located then an 'unknown' error code is returned.
            parameters: 
                - name: classSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the class.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 100
                      minimum: 1
                  allowEmptyValue: false
                  style: form
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 0
                      minimum: 0
                  allowEmptyValue: false
                  style: form
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                      enum: 
                        - asc
                        - desc
                  allowEmptyValue: false
                  style: form
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly
            responses: 
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/ScoreScaleSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            schema: 
                                type: integer
                    links: 
                        "next" :
                            description: |
                                Get the next set of resources i.e. from offset to offset+limit
                            operationId: getScoreScalesForClass
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "last" :
                            description: |
                                Get the last set of resources i.e. from offset to end
                            operationId: getScoreScalesForClass
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "first" :
                            description: |
                                Get the first set of resources i.e. from first to limit
                            operationId: getScoreScalesForClass
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "prev" :
                            description: |
                                Get the previous set of resources i.e. from last_offset to last_offset+limit
                            operationId: getScoreScalesForClass
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"

    /classes/{classSourcedId}/students/{studentSourcedId}/results:
        get:
            operationId: getResultsForStudentForClass
            summary: The REST read request message for the getResultsForStudentForClass() API call.
            tags: 
                - ClassesManagement
            description: |
                Get the set of results on the service provider for a specific student and for a specific class. If the corresponding class cannot be located then an 'unknown' error code is returned.
            parameters: 
                - name: classSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the class.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: studentSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the student.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 100
                      minimum: 1
                  allowEmptyValue: false
                  style: form
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 0
                      minimum: 0
                  allowEmptyValue: false
                  style: form
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                      enum: 
                        - asc
                        - desc
                  allowEmptyValue: false
                  style: form
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly
            responses: 
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/ResultSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            schema: 
                                type: integer
                    links: 
                        "next" :
                            description: |
                                Get the next set of resources i.e. from offset to offset+limit
                            operationId: getResultsForStudentForClass
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "last" :
                            description: |
                                Get the last set of resources i.e. from offset to end
                            operationId: getResultsForStudentForClass
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "first" :
                            description: |
                                Get the first set of resources i.e. from first to limit
                            operationId: getResultsForStudentForClass
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "prev" :
                            description: |
                                Get the previous set of resources i.e. from last_offset to last_offset+limit
                            operationId: getResultsForStudentForClass
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"

    /lineItems:
        get:
            operationId: getAllLineItems
            summary: The REST read request message for the getAllLineItems() API call.
            tags: 
                - LineItemsManagement
            description: |
                Get all of the Line Items on the service provider.
            parameters: 
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 100
                      minimum: 1
                  allowEmptyValue: false
                  style: form
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 0
                      minimum: 0
                  allowEmptyValue: false
                  style: form
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                      enum: 
                        - asc
                        - desc
                  allowEmptyValue: false
                  style: form
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook-core.readonly
            responses: 
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/LineItemSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            schema: 
                                type: integer
                    links: 
                        "next" :
                            description: |
                                Get the next set of resources i.e. from offset to offset+limit
                            operationId: getAllLineItems
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "last" :
                            description: |
                                Get the last set of resources i.e. from offset to end
                            operationId: getAllLineItems
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "first" :
                            description: |
                                Get the first set of resources i.e. from first to limit
                            operationId: getAllLineItems
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "prev" :
                            description: |
                                Get the previous set of resources i.e. from last_offset to last_offset+limit
                            operationId: getAllLineItems
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"

    /lineItems/{lineItemSourcedId}/results:
        post:
            operationId: postResultsForLineItem
            summary: The REST createbp request message for the postResultsForLineItem() API call.
            tags: 
                - LineItemsManagement
            description: |
                To create a set of results for a specific lineItem. The responding system must return the set of sourcedIds that have been allocated to the newly created result records.
            parameters: 
                - name: lineItemSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the lineItem.
                  required: true
                  schema: 
                      type: string
                  style: simple
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createpost
            requestBody:
                description: |
                    The set of result records to be created in response to this request. This includes an initial assignment of sourcedId so that the mapping between this and the actually assigned sourcedId can be reported. 
                content: 
                    application/json: 
                        schema: 
                            $ref: "#/components/schemas/ResultSetDType"
                required: true
            responses: 
                "201" : 
                    description: |
                        The object has been successfully stored in the Service Provider repository.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/GUIDPairSetDType"
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"

    /lineItems/{sourcedId}:
        get:
            operationId: getLineItem
            summary: The REST read request message for the getLineItem() API call.
            tags: 
                - LineItemsManagement
            description: |
                Get a specific LineItem on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for this lineItem.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook-core.readonly
            responses: 
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/SingleLineItemDType"
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
        delete:
            operationId: deleteLineItem
            summary: The REST delete request message for the deleteLineItem() API call.
            tags: 
                - LineItemsManagement
            description: |
                Delete a specific lineItem on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the lineItem to be deleted.
                  required: true
                  schema: 
                      type: string
                  style: simple
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.delete
            responses: 
                "204" : 
                    description: |
                        The object has been successfully deleted. 
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
        put:
            operationId: putLineItem
            summary: The REST create request message for the putLineItem() API call.
            tags: 
                - LineItemsManagement
            description: |
                To create a new lineItem. The associated sourcedId for this new record is supplied by the requesting system.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, to be allocated to this new lineItem.
                  required: true
                  schema: 
                      type: string
                  style: simple
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createput
            requestBody:
                description: |
                    The lineItem data that is to be stored.
                content: 
                    application/json: 
                        schema: 
                            $ref: "#/components/schemas/SingleLineItemDType"
                required: true
            responses: 
                "201" : 
                    description: |
                        The object has been successfully stored in the Service Provider repository.
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"

    /results:
        get:
            operationId: getAllResults
            summary: The REST read request message for the getAllResults() API call.
            tags: 
                - ResultsManagement
            description: |
                Get all of the results on the service provider.
            parameters: 
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 100
                      minimum: 1
                  allowEmptyValue: false
                  style: form
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 0
                      minimum: 0
                  allowEmptyValue: false
                  style: form
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                      enum: 
                        - asc
                        - desc
                  allowEmptyValue: false
                  style: form
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook-core.readonly
            responses: 
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/ResultSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            schema: 
                                type: integer
                    links: 
                        "next" :
                            description: |
                                Get the next set of resources i.e. from offset to offset+limit
                            operationId: getAllResults
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "last" :
                            description: |
                                Get the last set of resources i.e. from offset to end
                            operationId: getAllResults
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "first" :
                            description: |
                                Get the first set of resources i.e. from first to limit
                            operationId: getAllResults
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "prev" :
                            description: |
                                Get the previous set of resources i.e. from last_offset to last_offset+limit
                            operationId: getAllResults
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"

    /results/{sourcedId}:
        get:
            operationId: getResult
            summary: The REST read request message for the getResult() API call.
            tags: 
                - ResultsManagement
            description: |
                Get a specific result on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for this result.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook-core.readonly
            responses: 
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/SingleResultDType"
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
        delete:
            operationId: deleteResult
            summary: The REST delete request message for the deleteResult() API call.
            tags: 
                - ResultsManagement
            description: |
                Delete a specific result on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the result to be deleted.
                  required: true
                  schema: 
                      type: string
                  style: simple
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.delete
            responses: 
                "204" : 
                    description: |
                        The object has been successfully deleted. 
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
        put:
            operationId: putResult
            summary: The REST create request message for the putResult() API call.
            tags: 
                - ResultsManagement
            description: |
                To create a new result. The associated sourcedId for this new record is supplied by the requesting system.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, to be allocated to this new result.
                  required: true
                  schema: 
                      type: string
                  style: simple
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createput
            requestBody:
                description: |
                    The result data that is to be stored.
                content: 
                    application/json: 
                        schema: 
                            $ref: "#/components/schemas/SingleResultDType"
                required: true
            responses: 
                "201" : 
                    description: |
                        The object has been successfully stored in the Service Provider repository.
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"

    /schools/{schoolSourcedId}/lineItems:
        post:
            operationId: postLineItemsForSchool
            summary: The REST createbp request message for the postLineItemsForSchool() API call.
            tags: 
                - SchoolsManagement
            description: |
                To create a set of lineItems for a specific school.  The responding system must return the set of sourcedIds that have been allocated to the newly created lineItem records.
            parameters: 
                - name: schoolSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the school.
                  required: true
                  schema: 
                      type: string
                  style: simple
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createpost
            requestBody:
                description: |
                    The set of lineItem records to be created in response to this request. This includes an initial assignment of sourcedId so that the mapping between this and the actually assigned sourcedId can be reported. 
                content: 
                    application/json: 
                        schema: 
                            $ref: "#/components/schemas/LineItemSetDType"
                required: true
            responses: 
                "201" : 
                    description: |
                        The object has been successfully stored in the Service Provider repository.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/GUIDPairSetDType"
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"

    /schools/{schoolSourcedId}/scoreScales:
        get:
            operationId: getScoreScalesForSchool
            summary: The REST read request message for the getScoreScalesForSchool() API call.
            tags: 
                - SchoolsManagement
            description: |
                Get the set of scoreScales on the service provider for a specific school. If the corresponding school cannot be located then an 'unknown' error code is returned.
            parameters: 
                - name: schoolSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the school.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 100
                      minimum: 1
                  allowEmptyValue: false
                  style: form
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 0
                      minimum: 0
                  allowEmptyValue: false
                  style: form
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                      enum: 
                        - asc
                        - desc
                  allowEmptyValue: false
                  style: form
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly
            responses: 
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/ScoreScaleSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            schema: 
                                type: integer
                    links: 
                        "next" :
                            description: |
                                Get the next set of resources i.e. from offset to offset+limit
                            operationId: getScoreScalesForSchool
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "last" :
                            description: |
                                Get the last set of resources i.e. from offset to end
                            operationId: getScoreScalesForSchool
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "first" :
                            description: |
                                Get the first set of resources i.e. from first to limit
                            operationId: getScoreScalesForSchool
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "prev" :
                            description: |
                                Get the previous set of resources i.e. from last_offset to last_offset+limit
                            operationId: getScoreScalesForSchool
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"

    /scoreScales:
        get:
            operationId: getAllScoreScales
            summary: The REST read request message for the getAllScoreScales() API call.
            tags: 
                - ScoreScalesManagement
            description: |
                Get all of the ScoreScales on the service provider.
            parameters: 
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 100
                      minimum: 1
                  allowEmptyValue: false
                  style: form
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  schema: 
                      type: integer
                      format: int32
                      default: 0
                      minimum: 0
                  allowEmptyValue: false
                  style: form
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  schema: 
                      type: string
                      enum: 
                        - asc
                        - desc
                  allowEmptyValue: false
                  style: form
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message.
                  required: false
                  schema: 
                      type: string
                  allowEmptyValue: false
                  style: form
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook-core.readonly
            responses: 
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/ScoreScaleSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            schema: 
                                type: integer
                    links: 
                        "next" :
                            description: |
                                Get the next set of resources i.e. from offset to offset+limit
                            operationId: getAllScoreScales
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "last" :
                            description: |
                                Get the last set of resources i.e. from offset to end
                            operationId: getAllScoreScales
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "first" :
                            description: |
                                Get the first set of resources i.e. from first to limit
                            operationId: getAllScoreScales
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                        "prev" :
                            description: |
                                Get the previous set of resources i.e. from last_offset to last_offset+limit
                            operationId: getAllScoreScales
                            parameters: 
                                "limit" : "$request.path.limit"
                                "offset" : "$request.path.offset"
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"

    /scoreScales/{sourcedId}:
        get:
            operationId: getScoreScale
            summary: The REST read request message for the getScoreScale() API call.
            tags: 
                - ScoreScalesManagement
            description: |
                Get a specific scoreScale on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for this scoreScale.
                  required: true
                  schema: 
                      type: string
                  style: simple
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  schema: 
                      type: array
                      items: 
                          type: string
                  allowEmptyValue: false
                  style: form
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook-core.readonly
            responses: 
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/SingleScoreScaleDType"
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
        delete:
            operationId: deleteScoreScale
            summary: The REST delete request message for the deleteScoreScale() API call.
            tags: 
                - ScoreScalesManagement
            description: |
                Delete a specific scoreScale on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the scoreScale to be deleted.
                  required: true
                  schema: 
                      type: string
                  style: simple
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.delete
            responses: 
                "204" : 
                    description: |
                        The object has been successfully deleted. 
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
        put:
            operationId: putScoreScale
            summary: The REST create request message for the putScoreScale() API call.
            tags: 
                - ScoreScalesManagement
            description: |
                To create a new scoreScale. The associated sourcedId for this new record is supplied by the requesting system.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, to be allocated to this new scoreScale.
                  required: true
                  schema: 
                      type: string
                  style: simple
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createput
            requestBody:
                description: |
                    The scoreScale data that is to be stored.
                content: 
                    application/json: 
                        schema: 
                            $ref: "#/components/schemas/SingleScoreScaleDType"
                required: true
            responses: 
                "201" : 
                    description: |
                        The object has been successfully stored in the Service Provider repository.
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "401" : 
                    description: |
                        The request was not correctly authorised i.e. 'unauthorisedrequest'. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"
                "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'. 
                    content: 
                        application/json: 
                            schema: 
                                $ref: "#/components/schemas/imsx_StatusInfoDType"


#####################################################################################
#                               Components                                          #
#####################################################################################
components:
    securitySchemes:
        OAuth2CC:
            type: oauth2
            description: |
                OAuth 2 Client Credentials (as per the requirements in the IMS Security Framework) is to be used.
            flows:
                clientCredentials:
                    tokenUrl: https://www.imsglobal.org/oauth2token
                    scopes: 
                        https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.delete: Access to the set of assessment operations that permit an object to be deleted.
                        https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.readonly: Access to ALL of the assessment read operations.
                        https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.createput: Access to all of the write assessment operations that permit the creation of a new single object in which the 'sourcedId' is supplied.
                        https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.delete: Access to the set of gradebook operations that permit an object to be deleted.
                        https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly: Access to ALL of the gradebook read operations.
                        https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook-core.readonly: Access to the set of core read operations i.e. reading of all objects or a single object. 
                        https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createpost: Access to the set of write operations that permit the creation of objects where the server allocates the 'sourcedIds'.
                        https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createput: Access to all of the gradebook write operations that permit the creation of a new single object in which the 'sourcedId' is supplied.
    schemas: 
        AcadSessionGUIDRefDType:
            description: |
                This is the container for reference to a OneRoster 'Academic Session' object that has an allocated sourcedId (GUID).
            type: object
            required: 
                - href
                - sourcedId
                - type
            properties: 
                href: 
                    description: The URI for the type of object being referenced. Model Primitive Datatype = AnyURI.
                    type: string
                    format: uri
                sourcedId: 
                    description: The globally unique identifier of the object being referenced. Model Primitive Datatype = String.
                    type: string
                type: 
                    description: |
                        The type of object being referenced i.e. an 'academicSession'.
                    type: string
                    enum: 
                       - academicSession
            additionalProperties: false
        AssessmentLineItemDType:
            description: |
                This is the container for the definition of an assessment lineItem. An assessment lineItem is a collection of results for a set of students who are completing an assignment.
            type: object
            required: 
                - sourcedId
                - status
                - dateLastModified
                - title
            properties: 
                sourcedId: 
                    description: The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record. Model Primitive Datatype = String.
                    type: string
                status: 
                    description: |
                        All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
                    type: string
                    enum: 
                       - active
                       - tobedeleted
                dateLastModified: 
                    description: All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone. Model Primitive Datatype = DateTime.
                    type: string
                    format: date-time
                metadata: 
                    $ref: "#/components/schemas/MetadataDType"
                title: 
                    description: The title, human readable, for the assessment lineItem.  This should allow the assessment lineItem to be distinguished from its peer assessment lineItems. Model Primitive Datatype = NormalizedString.
                    type: string
                description: 
                    description: A human readable description of the usage of the assessment lineItem. Model Primitive Datatype = String.
                    type: string
                class: 
                    $ref: "#/components/schemas/ClassGUIDRefDType"
                parentAssessmentLineItem: 
                    $ref: "#/components/schemas/AssessmentLineItemGUIDRefDType"
                scoreScale: 
                    $ref: "#/components/schemas/ScoreScaleGUIDRefDType"
                resultValueMin: 
                    description: The minimum value (numeric) that can be assigned to the score attribute in a result. The score scale mapping should be used to map to other scores. Model Primitive Datatype = Float.
                    type: number
                    format: float
                resultValueMax: 
                    description: The maximum value (numeric) that can be assigned to the score attribute in a result. The score scale mapping should be used to map to other scores. Model Primitive Datatype = Float.
                    type: number
                    format: float
                learningObjectiveSet: 
                    description: |
                        The set of identifiers for the learning objectives to which this assessment is aligned. Any number groups of learning objectives can be assigned.
                    type: array
                    minItems: 0
                    items: 
                        $ref: "#/components/schemas/LearningObjectiveSetDType"
            additionalProperties: false
        AssessmentLineItemGUIDRefDType:
            description: |
                This is the container for reference to a OneRoster 'AssessmentLineItem' object that has an allocated sourcedId (GUID).
            type: object
            required: 
                - href
                - sourcedId
                - type
            properties: 
                href: 
                    description: The URI for the type of object being referenced. Model Primitive Datatype = AnyURI.
                    type: string
                    format: uri
                sourcedId: 
                    description: The globally unique identifier of the object being referenced. Model Primitive Datatype = String.
                    type: string
                type: 
                    description: |
                        The type of object being referenced i.e. an 'assessmentLineItem'.
                    type: string
                    enum: 
                       - assessmentLineItem
            additionalProperties: false
        AssessmentLineItemSetDType:
            description: |
                This is the container for a collection of assessment lineItem instances for a message payload. This may be empty if no instances are found that sustain the applied query constraints. The order is not significant.
            type: object
            properties: 
                assessmentLineItems: 
                    description: |
                        The collection of assessment lineItem instances. The order is not significant. The corresponding query constraints may result in no instances being returned.
                    type: array
                    minItems: 0
                    items: 
                        $ref: "#/components/schemas/AssessmentLineItemDType"
            additionalProperties: false
        AssessmentResultDType:
            description: |
                This is the container for the AssessmentResult record.  An assessment result consists of the assigned score plus the context for that score.
            type: object
            required: 
                - sourcedId
                - status
                - dateLastModified
                - assessmentLineItem
                - student
                - scoreDate
                - scoreStatus
            properties: 
                sourcedId: 
                    description: The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record. Model Primitive Datatype = String.
                    type: string
                status: 
                    description: |
                        All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
                    type: string
                    enum: 
                       - active
                       - tobedeleted
                dateLastModified: 
                    description: All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone. Model Primitive Datatype = DateTime.
                    type: string
                    format: date-time
                metadata: 
                    $ref: "#/components/schemas/MetadataDType"
                assessmentLineItem: 
                    $ref: "#/components/schemas/AssessmentLineItemGUIDRefDType"
                student: 
                    $ref: "#/components/schemas/UserGUIDRefDType"
                score: 
                    description: The score for the result. If a scoreScale is assigned then the value must align with the scale. Model Primitive Datatype = Float.
                    type: number
                    format: float
                textScore: 
                    description: An optional non-numeric score value. If a scoreScale is assigned then the value must align with the scale. Model Primitive Datatype = NormalizedString.
                    type: string
                scoreDate: 
                    description: The date at which the score is assigned or there is an update to the result e.g. change in the 'scoreStatus'.. The format is YYYY-MM-DD as defined in [ISO 8601]. Model Primitive Datatype = Date.
                    type: string
                    format: date
                scoreScale: 
                    $ref: "#/components/schemas/ScoreScaleGUIDRefDType"
                scorePercentile: 
                    description: The percentile rank of a score is the percentage of scores in its frequency distribution that are equal to or lower than it. Model Primitive Datatype = Float.
                    type: number
                    format: float
                scoreStatus: 
                    description: |
                        The status of the score. The value is from an extensible enumerated vocabulary.
                    anyOf: 
                            - description: The data-type that enables the score status enumerated vocabulary to be extended. Model Primitive Datatype = NormalizedString.
                              type: string
                              pattern: "(ext:)[a-zA-Z0-9\\.\\-_]+"
                            - enum: 
                                - exempt
                                - fully graded
                                - not submitted
                                - partially graded
                                - submitted
                              type: string
                comment: 
                    description: A human readable comment about the score. Model Primitive Datatype = String.
                    type: string
                learningObjectiveSet: 
                    description: |
                        The set of identifiers for the learning objectives to which this result is aligned. Any number groups of learning objectives can be assigned.
                    type: array
                    minItems: 0
                    items: 
                        $ref: "#/components/schemas/LearningObjectiveScoreSetDType"
                inProgress: 
                    description: |
                        This is used to indicate that the associated work activity has been assigned and student's work product is not yet expected to have been submitted.
                    type: string
                    enum: 
                       - true
                       - false
                incomplete: 
                    description: |
                        This is used to indicate that the student's work product has been submitted but it is deemed incomplete by the teacher.
                    type: string
                    enum: 
                       - true
                       - false
                late: 
                    description: |
                        This is used to indicate that the student's work product is either past due or it has been submitted past the due date. The score on this result may be impacted as as result of this flag.
                    type: string
                    enum: 
                       - true
                       - false
                missing: 
                    description: |
                        This is used to indicate that the student's work product as not been submitted.
                    type: string
                    enum: 
                       - true
                       - false
            additionalProperties: false
        AssessmentResultSetDType:
            description: |
                This is the container for a collection of assessment result instances for a message payload. This may be empty if no instances are found that sustain the applied query constraints. The order is not significant.
            type: object
            properties: 
                assessmentResults: 
                    description: |
                        The collection of assessment result instances. The order is not significant. The corresponding query constraints may result in no instances being returned.
                    type: array
                    minItems: 0
                    items: 
                        $ref: "#/components/schemas/AssessmentResultDType"
            additionalProperties: false
        CategoriesSetDType:
            description: |
                This is the container for a collection of category instances for a message payload. This may be empty if no instances are found that sustain the applied query constraints. The order is not significant.
            type: object
            properties: 
                categories: 
                    description: |
                        The collection of category instances. The order is not significant. The corresponding query constraints may result in no instances being returned.
                    type: array
                    minItems: 0
                    items: 
                        $ref: "#/components/schemas/CategoryDType"
            additionalProperties: false
        CategoryDType:
            description: |
                A Category is the name given to a grouping of line items (line items being equivalent to assignments which students will complete). 
            type: object
            required: 
                - sourcedId
                - status
                - dateLastModified
                - title
            properties: 
                sourcedId: 
                    description: The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record. Model Primitive Datatype = String.
                    type: string
                status: 
                    description: |
                        All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
                    type: string
                    enum: 
                       - active
                       - tobedeleted
                dateLastModified: 
                    description: All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone. Model Primitive Datatype = DateTime.
                    type: string
                    format: date-time
                metadata: 
                    $ref: "#/components/schemas/MetadataDType"
                title: 
                    description: The human readable title for the category. Model Primitive Datatype = NormalizedString.
                    type: string
                weight: 
                    description: Total weight of this grading category in calculation of the course final score. Model Primitive Datatype = Float.
                    type: number
                    format: float
            additionalProperties: false
        CategoryGUIDRefDType:
            description: |
                This is the container for reference to a OneRoster 'Category' object that has an allocated sourcedId (GUID).
            type: object
            required: 
                - href
                - sourcedId
                - type
            properties: 
                href: 
                    description: The URI for the type of object being referenced. Model Primitive Datatype = AnyURI.
                    type: string
                    format: uri
                sourcedId: 
                    description: The globally unique identifier of the object being referenced. Model Primitive Datatype = String.
                    type: string
                type: 
                    description: |
                        The type of object being referenced i.e. a 'category'.
                    type: string
                    enum: 
                       - category
            additionalProperties: false
        ClassGUIDRefDType:
            description: |
                This is the container for reference to a OneRoster 'Class' object that has an allocated sourcedId (GUID).
            type: object
            required: 
                - href
                - sourcedId
                - type
            properties: 
                href: 
                    description: The URI for the type of object being referenced. Model Primitive Datatype = AnyURI.
                    type: string
                    format: uri
                sourcedId: 
                    description: The globally unique identifier of the object being referenced. Model Primitive Datatype = String.
                    type: string
                type: 
                    description: |
                        The type of object being referenced i.e. a 'class'.
                    type: string
                    enum: 
                       - class
            additionalProperties: false
        CourseGUIDRefDType:
            description: |
                This is the container for reference to a OneRoster 'Course' object that has an allocated sourcedId (GUID).
            type: object
            required: 
                - href
                - sourcedId
                - type
            properties: 
                href: 
                    description: The URI for the type of object being referenced. Model Primitive Datatype = AnyURI.
                    type: string
                    format: uri
                sourcedId: 
                    description: The globally unique identifier of the object being referenced. Model Primitive Datatype = String.
                    type: string
                type: 
                    description: |
                        The type of object being referenced i.e. a 'course'.
                    type: string
                    enum: 
                       - course
            additionalProperties: false
        GUIDPairDType:
            description: |
                The container for the mapping between the supplied (assigned by the requesting system) and allocated (assigned by the responding system) sourcedIds i.e. GUIDs.
            type: object
            required: 
                - suppliedSourcedId
                - allocatedSourcedId
            properties: 
                suppliedSourcedId: 
                    description: The temporary sourcedId that has been allocated by the requesting system. This sourcedId is used to enable identification of the original record for which the new sourcedId has been allocated at the service provider. Model Primitive Datatype = String.
                    type: string
                allocatedSourcedId: 
                    description: The sourcedId that has been allocated by the system on which the new record has been created. Model Primitive Datatype = String.
                    type: string
            additionalProperties: false
        GUIDPairSetDType:
            description: |
                The container for the set of sourcedId pairs. This is used to provide the mapping between a set of original/new values allocated to a set of sourcedIds.
            type: object
            properties: 
                sourcedIdPairs: 
                    description: |
                        The set of sourcedId pairs. The order is not significant as each pair contains the information between the original/new values.
                    type: array
                    minItems: 0
                    items: 
                        $ref: "#/components/schemas/GUIDPairDType"
            additionalProperties: false
        LearningObjectiveResultsDType:
            description: |
                This is the container for a learning objective identifier. This also allows a mastery score to be aligned with the learning objective.
            type: object
            required: 
                - learningObjectiveId
            properties: 
                learningObjectiveId: 
                    description: The unique identifier for the associated learning objective. If this is a CASE identifier it MUST be a valid UUID. Model Primitive Datatype = NormalizedString.
                    type: string
                score: 
                    description: The optional mastery score supplied as a numeric value.  Model Primitive Datatype = Float.
                    type: number
                    format: float
                textScore: 
                    description: The optional mastery score supplied in a non-numeric form.  Model Primitive Datatype = NormalizedString.
                    type: string
            additionalProperties: false
        LearningObjectiveScoreSetDType:
            description: |
                This is the container for the set of learning objective identifiers that are from a single source responsible for creating those identifiers. This also allows a mastery score to be aligned with a learning objective.
            type: object
            required: 
                - source
                - learningObjectiveResults
            properties: 
                source: 
                    description: |
                        The source responsible for creating the learning objective identifiers. The permitted values are from an extensible vocabulary.
                    anyOf: 
                            - description: This data-type ensures that the free-form entry does NOT have the value 'case' or 'unknown'. Model Primitive Datatype = NormalizedString.
                              type: string
                              pattern: "^/(?!case$)(?!unknown$)[a-z0-9]+$"
                            - enum: 
                                - case
                                - unknown
                              type: string
                learningObjectiveResults: 
                    description: |
                        The set of unique identifiers for the associated learning objectives (these may have alignment with a mastery score). If these are CASE identifiers they MUST be valid UUIDs.
                    type: array
                    minItems: 1
                    items: 
                        $ref: "#/components/schemas/LearningObjectiveResultsDType"
            additionalProperties: false
        LearningObjectiveSetDType:
            description: |
                This is the container for the set of learning objective identifiers that are from a single source responsible for creating those identifiers.
            type: object
            required: 
                - source
                - learningObjectiveIds
            properties: 
                source: 
                    description: |
                        The source responsible for creating the learning objective identifiers. The permitted values are from an extensible vocabulary.
                    anyOf: 
                            - description: This data-type ensures that the free-form entry does NOT have the value 'case' or 'unknown'. Model Primitive Datatype = NormalizedString.
                              type: string
                              pattern: "^/(?!case$)(?!unknown$)[a-z0-9]+$"
                            - enum: 
                                - case
                                - unknown
                              type: string
                learningObjectiveIds: 
                    description: The set of unique identifiers for the associated learning objectives. If these are CASE identifiers they MUST be valid UUIDs. Model Primitive Datatype = NormalizedString.
                    type: array
                    minItems: 1
                    items: 
                        type: string
            additionalProperties: false
        LineItemDType:
            description: |
                This is the container for the definition of a lineItem. A lineItem is a collection of results for a set of students who are completing an assignment as part of a class at a school.
            type: object
            required: 
                - sourcedId
                - status
                - dateLastModified
                - title
                - assignDate
                - dueDate
                - class
                - school
                - category
            properties: 
                sourcedId: 
                    description: The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record. Model Primitive Datatype = String.
                    type: string
                status: 
                    description: |
                        All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
                    type: string
                    enum: 
                       - active
                       - tobedeleted
                dateLastModified: 
                    description: All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone. Model Primitive Datatype = DateTime.
                    type: string
                    format: date-time
                metadata: 
                    $ref: "#/components/schemas/MetadataDType"
                title: 
                    description: The title, human readable, for the lineItem.  This should allow the lineItem to be distinguished from its peer lineItems. Model Primitive Datatype = NormalizedString.
                    type: string
                description: 
                    description: A human readable description of the usage of the lineItem. Model Primitive Datatype = String.
                    type: string
                assignDate: 
                    description: The date/time the activity being addressed by the lineItem was assigned to the student. This has a format as defined in [ISO 8601]. Model Primitive Datatype = DateTime.
                    type: string
                    format: date-time
                dueDate: 
                    description: The date/time by which the assignment must be completed and submitted. This has the dateTime format as defined in [ISO 8601]. Model Primitive Datatype = DateTime.
                    type: string
                    format: date-time
                class: 
                    $ref: "#/components/schemas/ClassGUIDRefDType"
                school: 
                    $ref: "#/components/schemas/OrgGUIDRefDType"
                category: 
                    $ref: "#/components/schemas/CategoryGUIDRefDType"
                gradingPeriod: 
                    $ref: "#/components/schemas/AcadSessionGUIDRefDType"
                academicSession: 
                    $ref: "#/components/schemas/AcadSessionGUIDRefDType"
                scoreScale: 
                    $ref: "#/components/schemas/ScoreScaleGUIDRefDType"
                resultValueMin: 
                    description: The minimum value (numeric) that can be assigned to the score attribute in a result. The score scale mapping should be used to map to other scores. Model Primitive Datatype = Float.
                    type: number
                    format: float
                resultValueMax: 
                    description: The maximum value (numeric) that can be assigned to the score attribute in a result. The score scale mapping should be used to map to other scores. Model Primitive Datatype = Float.
                    type: number
                    format: float
                learningObjectiveSet: 
                    description: |
                        The set of identifiers for the learning objectives to which this assessment is aligned. Any number groups of learning objectives can be assigned.
                    type: array
                    minItems: 0
                    items: 
                        $ref: "#/components/schemas/LearningObjectiveSetDType"
            additionalProperties: false
        LineItemGUIDRefDType:
            description: |
                This is the container for reference to a OneRoster 'LineItem' object that has an allocated sourcedId (GUID).
            type: object
            required: 
                - href
                - sourcedId
                - type
            properties: 
                href: 
                    description: The URI for the type of object being referenced. Model Primitive Datatype = AnyURI.
                    type: string
                    format: uri
                sourcedId: 
                    description: The globally unique identifier of the object being referenced. Model Primitive Datatype = String.
                    type: string
                type: 
                    description: |
                        The type of object being referenced i.e. a 'lineItem'.
                    type: string
                    enum: 
                       - lineItem
            additionalProperties: false
        LineItemSetDType:
            description: |
                This is the container for a collection of lineItem instances for a message payload. This may be empty if no instances are found that sustain the applied query constraints. The order is not significant.
            type: object
            properties: 
                lineItems: 
                    description: |
                        The collection of lineItem instances. The order is not significant. The corresponding query constraints may result in no instances being returned.
                    type: array
                    minItems: 0
                    items: 
                        $ref: "#/components/schemas/LineItemDType"
            additionalProperties: false
        MetadataDType:
            description: |
                The container for the proprietary extensions.
            type: object
            properties: {}
            additionalProperties: true
        OrgGUIDRefDType:
            description: |
                This is the container for reference to a OneRoster 'Org' object that has an allocated sourcedId (GUID).
            type: object
            required: 
                - href
                - sourcedId
                - type
            properties: 
                href: 
                    description: The URI for the type of object being referenced. Model Primitive Datatype = AnyURI.
                    type: string
                    format: uri
                sourcedId: 
                    description: The globally unique identifier of the object being referenced. Model Primitive Datatype = String.
                    type: string
                type: 
                    description: |
                        The type of object being referenced i.e. an 'org'.
                    type: string
                    enum: 
                       - org
            additionalProperties: false
        ResultDType:
            description: |
                This is the container for the Result record.  A result consists of the assigned score plus the context for that score.
            type: object
            required: 
                - sourcedId
                - status
                - dateLastModified
                - lineItem
                - student
                - scoreStatus
                - scoreDate
            properties: 
                sourcedId: 
                    description: The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record. Model Primitive Datatype = String.
                    type: string
                status: 
                    description: |
                        All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
                    type: string
                    enum: 
                       - active
                       - tobedeleted
                dateLastModified: 
                    description: All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone. Model Primitive Datatype = DateTime.
                    type: string
                    format: date-time
                metadata: 
                    $ref: "#/components/schemas/MetadataDType"
                lineItem: 
                    $ref: "#/components/schemas/LineItemGUIDRefDType"
                student: 
                    $ref: "#/components/schemas/UserGUIDRefDType"
                class: 
                    $ref: "#/components/schemas/ClassGUIDRefDType"
                scoreScale: 
                    $ref: "#/components/schemas/ScoreScaleGUIDRefDType"
                scoreStatus: 
                    description: |
                        The status of the score. The value is from an extensible enumerated vocabulary.
                    anyOf: 
                            - description: The data-type that enables the score status enumerated vocabulary to be extended. Model Primitive Datatype = NormalizedString.
                              type: string
                              pattern: "(ext:)[a-zA-Z0-9\\.\\-_]+"
                            - enum: 
                                - exempt
                                - fully graded
                                - not submitted
                                - partially graded
                                - submitted
                              type: string
                score: 
                    description: The score for the result. If a scoreScale is assigned then the value must align with the scale. Model Primitive Datatype = Float.
                    type: number
                    format: float
                textScore: 
                    description: An optional non-numeric score value. If a scoreScale is assigned then the value must align with the scale. This attribute was added in OR 1.2. Model Primitive Datatype = NormalizedString.
                    type: string
                scoreDate: 
                    description: The date at which the score is assigned or there is an update to the result e.g. change in the 'scoreStatus'. The format is YYYY-MM-DD as defined in [ISO 8601]. Model Primitive Datatype = Date.
                    type: string
                    format: date
                comment: 
                    description: A human readable comment about the score. Model Primitive Datatype = String.
                    type: string
                learningObjectiveSet: 
                    description: |
                        The set of identifiers for the learning objectives to which this result is aligned. Any number groups of learning objectives can be assigned.
                    type: array
                    minItems: 0
                    items: 
                        $ref: "#/components/schemas/LearningObjectiveScoreSetDType"
                inProgress: 
                    description: |
                        This is used to indicate that the associated work activity has been assigned and student's work product is not yet expected to have been submitted.
                    type: string
                    enum: 
                       - true
                       - false
                incomplete: 
                    description: |
                        This is used to indicate that the student's work product has been submitted but it is deemed incomplete by the teacher.
                    type: string
                    enum: 
                       - true
                       - false
                late: 
                    description: |
                        This is used to indicate that the student's work product is either past due or it has been submitted past the due date. The score on this result may be impacted as as result of this flag.
                    type: string
                    enum: 
                       - true
                       - false
                missing: 
                    description: |
                        This is used to indicate that the student's work product as not been submitted.
                    type: string
                    enum: 
                       - true
                       - false
            additionalProperties: false
        ResultSetDType:
            description: |
                This is the container for a collection of result instances for a message payload. This may be empty if no instances are found that sustain the applied query constraints. The order is not significant.
            type: object
            properties: 
                results: 
                    description: |
                        The collection of result instances. The order is not significant. The corresponding query constraints may result in no instances being returned.
                    type: array
                    minItems: 0
                    items: 
                        $ref: "#/components/schemas/ResultDType"
            additionalProperties: false
        ScoreScaleDType:
            description: |
                The container for the definition Score Scale mapping i.e. the relationship between two score scales.
            type: object
            required: 
                - sourcedId
                - status
                - dateLastModified
                - title
                - type
                - class
                - scoreScaleValue
            properties: 
                sourcedId: 
                    description: The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record. Model Primitive Datatype = String.
                    type: string
                status: 
                    description: |
                        All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
                    type: string
                    enum: 
                       - active
                       - tobedeleted
                dateLastModified: 
                    description: All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone. Model Primitive Datatype = DateTime.
                    type: string
                    format: date-time
                metadata: 
                    $ref: "#/components/schemas/MetadataDType"
                title: 
                    description: The human readable title for the score scale mapping. Model Primitive Datatype = NormalizedString.
                    type: string
                type: 
                    description: The type of score scale mapping. At present there is no predefined vocabulary. This should be used by an organization to differentiate between the score scales that it produces. Model Primitive Datatype = NormalizedString.
                    type: string
                course: 
                    $ref: "#/components/schemas/CourseGUIDRefDType"
                class: 
                    $ref: "#/components/schemas/ClassGUIDRefDType"
                scoreScaleValue: 
                    description: |
                        The set of mappings for this score scale.
                    type: array
                    minItems: 1
                    items: 
                        $ref: "#/components/schemas/ScoreScaleValueDType"
            additionalProperties: false
        ScoreScaleGUIDRefDType:
            description: |
                This is the container for reference to a OneRoster 'ScoreScale' object that has an allocated sourcedId (GUID).
            type: object
            required: 
                - href
                - sourcedId
                - type
            properties: 
                href: 
                    description: The URI for the type of object being referenced. Model Primitive Datatype = AnyURI.
                    type: string
                    format: uri
                sourcedId: 
                    description: The globally unique identifier of the object being referenced. Model Primitive Datatype = String.
                    type: string
                type: 
                    description: |
                        The type of object being referenced i.e. a 'scoreScale'.
                    type: string
                    enum: 
                       - scoreScale
            additionalProperties: false
        ScoreScaleSetDType:
            description: |
                This is the container for a collection of scoreScale instances for a message payload. This may be empty if no instances are found that sustain the applied query constraints. The order is not significant.
            type: object
            properties: 
                scoreScales: 
                    description: |
                        The collection of scoreScale instances. The order is not significant. The corresponding query constraints may result in no instances being returned.
                    type: array
                    minItems: 0
                    items: 
                        $ref: "#/components/schemas/ScoreScaleDType"
            additionalProperties: false
        ScoreScaleValueDType:
            description: |
                A specific mapping of values between two score scales. The left hand side (LHS) value is the reference point. Examples of this mapping are: '7' maps to 'A', '7'-'10' maps to 'A', etc.
            type: object
            required: 
                - itemValueLHS
                - itemValueRHS
            properties: 
                itemValueLHS: 
                    description: The left hand side value of the mapping relationship. The format is either a single value ('x') or a range ('x' - 'y'). In the case of a single value this is considered to be the inclusive lower value for the implied range. When a range is specified (lower-to-upper) the values are inclusive. Model Primitive Datatype = NormalizedString.
                    type: string
                itemValueRHS: 
                    description: The right hand side value of the mapping relationship  i.e. the equivalent value to the reference point defined in the LHS. Model Primitive Datatype = NormalizedString.
                    type: string
            additionalProperties: false
        SingleAssessmentLineItemDType:
            description: |
                This is the container for a single assessment lineItem instance for a message payload.
            type: object
            required: 
                - assessmentLineItem
            properties: 
                assessmentLineItem: 
                    $ref: "#/components/schemas/AssessmentLineItemDType"
            additionalProperties: false
        SingleAssessmentResultDType:
            description: |
                This is the container for a single assessment result instance for a message payload.
            type: object
            required: 
                - assessmentResult
            properties: 
                assessmentResult: 
                    $ref: "#/components/schemas/AssessmentResultDType"
            additionalProperties: false
        SingleCategoryDType:
            description: |
                This is the container for a single category instance for a message payload.
            type: object
            required: 
                - category
            properties: 
                category: 
                    $ref: "#/components/schemas/CategoryDType"
            additionalProperties: false
        SingleLineItemDType:
            description: |
                This is the container for a single lineItem instance for a message payload.
            type: object
            required: 
                - lineItem
            properties: 
                lineItem: 
                    $ref: "#/components/schemas/LineItemDType"
            additionalProperties: false
        SingleResultDType:
            description: |
                This is the container for a single result instance for a message payload.
            type: object
            required: 
                - result
            properties: 
                result: 
                    $ref: "#/components/schemas/ResultDType"
            additionalProperties: false
        SingleScoreScaleDType:
            description: |
                This is the container for a single scoreScale instance for a message payload.
            type: object
            required: 
                - scoreScale
            properties: 
                scoreScale: 
                    $ref: "#/components/schemas/ScoreScaleDType"
            additionalProperties: false
        UserGUIDRefDType:
            description: |
                This is the container for reference to a OneRoster 'User' object that has an allocated sourcedId (GUID).
            type: object
            required: 
                - href
                - sourcedId
                - type
            properties: 
                href: 
                    description: The URI for the type of object being referenced. Model Primitive Datatype = AnyURI.
                    type: string
                    format: uri
                sourcedId: 
                    description: The globally unique identifier of the object being referenced. Model Primitive Datatype = String.
                    type: string
                type: 
                    description: |
                        The type of object being referenced i.e. a 'user'.
                    type: string
                    enum: 
                       - user
            additionalProperties: false
        imsx_CodeMinorDType:
            description: |
                This is the container for the set of code minor status codes reported in the responses from the Service Provider.
            type: object
            required: 
                - imsx_codeMinorField
            properties: 
                imsx_codeMinorField: 
                    description: |
                        Each reported code minor status code.
                    type: array
                    minItems: 1
                    items: 
                        $ref: "#/components/schemas/imsx_CodeMinorFieldDType"
            additionalProperties: false
        imsx_CodeMinorFieldDType:
            description: |
                This is the container for a single code minor status code.
            type: object
            required: 
                - imsx_codeMinorFieldName
                - imsx_codeMinorFieldValue
            properties: 
                imsx_codeMinorFieldName: 
                    description: This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'. Model Primitive Datatype = NormalizedString.
                    type: string
                    default: TargetEndSystem
                imsx_codeMinorFieldValue: 
                    description: |
                        The code minor status code (this is a value from the corresponding enumerated vocabulary).
                    type: string
                    enum: 
                       - fullsuccess
                       - invalid_filter_field
                       - invalid_selection_field
                       - invaliddata
                       - unauthorisedrequest
                       - internal_server_error
                       - server_busy
                       - deletefailure
                       - unknownobject
                       - forbidden
            additionalProperties: false
        imsx_StatusInfoDType:
            description: |
                This is the container for the status code and associated information returned within the HTTP messages received from the Service Provider. For the OneRoster Rostering 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: 
                    description: |
                        The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.
                    type: string
                    enum: 
                       - success
                       - processing
                       - failure
                       - unsupported
                imsx_severity: 
                    description: |
                        The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.
                    type: string
                    enum: 
                       - status
                       - warning
                       - error
                imsx_description: 
                    description: A human readable description supplied by the entity creating the status code information. Model Primitive Datatype = String.
                    type: string
                imsx_CodeMinor: 
                    $ref: "#/components/schemas/imsx_CodeMinorDType"
            additionalProperties: false
        

B2.3 OpenAPI 3.1 YAML Listing

The OpenAPI 3.1 (YAML) listing (based upon [OAS, 21]) is shown below (the OpenAPI YAML is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/openapi/onerosterv1p2gradebookservice_openapi3p1_v1p0.yaml).

# #####################################################################################
# YAML File Information
# #####################################################################################
# 
# Author:         Colin Smythe (IMS Global)
# Date:           19th September 2022
# Version:        1.0
# Status:         IMS Final Release
# Description:    The OneRoster Gradebook service binding is available in REST/JSON. The model is based upon the IMS PSM modelling approach.
# 
# History:        Version 1.2: This is the first release of the OneRoster Gradebook 1.2 service.
# 
# License:        IPR and Distribution Notices
# 
#                 This machine readable file is derived from the IMS OneRoster Gradebook Service Version 1.2
#                 found at http://www.imsglobal.org/lis and the original IMS Global schema binding or code base
#                 http://www.imsglobal.org/lis.
# 
#                 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 procedures with respect to rights in IMS 
#                 specifications can be found at the IMS Global Intellectual Property Rights web page: http://www.imsglobal.org/ipr/imsipr_policyFinal.pdf.
# 
#                 Copyright (c) IMS Global Learning Consortium 1999-2022. 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/license.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 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 SPECIFICATION.
# 
# Source UML File Information
# ===========================
# The source file information must be supplied as an XMI file (without diagram layout information).
# The supported UML authoring tools are:
# (a) Poseidon - v6 (and later)
# (b) Papyrus - v1.1.3 (and later)
# 
# Source XSLT File Information
# ============================
# XSL Generator:    Specificationv1p0_GenerationToolv1.xsl
# XSLT Processor:   Saxon
# Release:          1.0
# Date:             31st January, 2021
# Autogen Engineer: Colin Smythe (IMS Global, UK)
# Autogen Date:     2022-09-13
# 
# IMS Global Auto-generation Binding Tool-kit (I-BAT)
# ===================================================
# This file was auto-generated using the IMS Global Binding Auto-generation Tool-kit (I-BAT).  While every
# attempt has been made to ensure that this tool auto-generates the files correctly, users should be aware
# that this is an experimental tool.  Permission is given to make use of this tool.  IMS Global makes no
# claim on the materials created by third party users of this tool.  Details on how to use this tool
# are contained in the IMS Global "I-BAT" documentation available at the IMS Global web-site:
# http://www.imsglobal.org.
# 
# Tool Copyright:  2012-2022  (c) IMS Global Learning Consortium Inc.  All Rights Reserved.
# 
# #####################################################################################

openapi: '3.1.0'

#####################################################################################
#                               API Information                                     #
#####################################################################################
info: 
    version: '1.2'
    title: OneRoster Gradebook Service OpenAPI (YAML) Definition
    description: The OneRoster Gradebook service binding is available in REST/JSON. The model is based upon the IMS PSM modelling approach.
    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: Vice President of Operations, 1EdTech
        url: https://www.1edtech.org
        email: operations@1edtech.org
    license: 
        name: 1EdTech Consortium
        url: https://www.1edtech.org/license.html

#####################################################################################
#                                 Servers                                           #
#####################################################################################
servers: 
    - url: https://{hostName}{basePath}
      description: The pattern for the Server URL should be configured for the actual server location.
      variables: 
          "hostName": 
              description: This is the hostname for the server and MUST be set to the actual service provider (the 1EdTech url is given as a default value).
              default: www.imsglobal.org
          "basePath": 
              description: This is the base-path for the full URL and MUST be a part of the service endpoints.
              enum: 
                - /ims/oneroster/gradebook/v1p2
              default: /ims/oneroster/gradebook/v1p2

#####################################################################################
#                                  Tags                                             #
#####################################################################################
tags: 
    - name: AssessmentLineItemsManagement
      description: |
        This enables the management of the assessment lineItems i.e. lineitems that are used to store results about tests/assessments and where these test/assessments are not aligned to a class.
    - name: AssessmentResultsManagement
      description: |
        This enables the management of the assessment results i.e. results that are used to store scores for tests/assessments and where these test/assessments are not aligned to a class.
    - name: CategoriesManagement
      description: |
        This enables the management of Categories i.e. collections of LineItems.
    - name: ClassesManagement
      description: |
        This enables the management of Classes i.e. scheduled learning of courses, with respect to scoreScales. For this service this is the collection of operations that provide gradebook data in the context of a class identifier.
    - name: LineItemsManagement
      description: |
        This enables the management of lineItems i.e. the set of results for the assessment of some activity.
    - name: ResultsManagement
      description: |
        This enables the management of results i.e. the score allocated to a learner from the assessent of a learning activity. Results are collected as a set of 'lineItems'.
    - name: SchoolsManagement
      description: |
        This enables the management of information about schools with respect to scoreScales. A school is a type of 'org'. For this service this is the collection of operations that provide gradebook data in the context of a school identifier.
    - name: ScoreScalesManagement
      description: |
        This enables the management of scoreScales i.e. the set of scales for the results and lineItems.

#####################################################################################
#                                   Paths                                           #
#####################################################################################
paths: 
    /assessmentLineItems:
        get:
            operationId: getAllAssessmentLineItems
            summary: The REST read request message for the getAllAssessmentLineItems() API call.
            tags: 
                - AssessmentLineItemsManagement
            description: |
                Get all of the Assessment Line Items on the service provider.
            parameters: 
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 100
                  minimum: 1
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 0
                  minimum: 0
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  enum: 
                    - asc
                    - desc
                  allowEmptyValue: false
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.readonly
            responses: 
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/AssessmentLineItemSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            type: integer
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"

    /assessmentLineItems/{sourcedId}:
        get:
            operationId: getAssessmentLineItem
            summary: The REST read request message for the getAssessmentLineItem() API call.
            tags: 
                - AssessmentLineItemsManagement
            description: |
                Get a specific Assessment LineItem on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for this assessment lineItem.
                  required: true
                  type: string
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.readonly
            responses: 
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/SingleAssessmentLineItemDType"
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
        delete:
            operationId: deleteAssessmentLineItem
            summary: The REST delete request message for the deleteAssessmentLineItem() API call.
            tags: 
                - AssessmentLineItemsManagement
            description: |
                Delete a specific Assessment LineItem on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the assessment lineItem to be deleted.
                  required: true
                  type: string
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.delete
            responses: 
                "204" : 
                    description: |
                        The object has been successfully deleted. 
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
        put:
            operationId: putAssessmentLineItem
            summary: The REST create request message for the putAssessmentLineItem() API call.
            tags: 
                - AssessmentLineItemsManagement
            description: |
                To create a new Assessment LineItem. The associated sourcedId for this new record is supplied by the requesting system.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, to be allocated to this new assessment lineItem.
                  required: true
                  type: string
                - name: assessmentLineItem
                  in: body
                  description: |
                      The assessment lineItem data that is to be stored.
                  required: true
                  schema: 
                      $ref: "#/definitions/SingleAssessmentLineItemDType"
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.createput
            responses: 
                "201" : 
                    description: |
                        The object has been successfully stored in the Service Provider repository.
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"

    /assessmentResults:
        get:
            operationId: getAllAssessmentResults
            summary: The REST read request message for the getAllAssessmentResults() API call.
            tags: 
                - AssessmentResultsManagement
            description: |
                Get all of the Assessment Results on the service provider.
            parameters: 
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 100
                  minimum: 1
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 0
                  minimum: 0
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  enum: 
                    - asc
                    - desc
                  allowEmptyValue: false
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.readonly
            responses: 
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/AssessmentResultSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            type: integer
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"

    /assessmentResults/{sourcedId}:
        get:
            operationId: getAssessmentResult
            summary: The REST read request message for the getAssessmentResult() API call.
            tags: 
                - AssessmentResultsManagement
            description: |
                Get a specific Assessment Result on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      Tthe unique identifier, GUID, for this assessment result.
                  required: true
                  type: string
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.readonly
            responses: 
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/SingleAssessmentResultDType"
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
        delete:
            operationId: deleteAssessmentResult
            summary: The REST delete request message for the deleteAssessmentResult() API call.
            tags: 
                - AssessmentResultsManagement
            description: |
                Delete a specific Assessment Result on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the assessment result to be deleted.
                  required: true
                  type: string
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.delete
            responses: 
                "204" : 
                    description: |
                        The object has been successfully deleted. 
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
        put:
            operationId: putAssessmentResult
            summary: The REST create request message for the putAssessmentResult() API call.
            tags: 
                - AssessmentResultsManagement
            description: |
                To create a new Assessment Result. The associated sourcedId for this new record is supplied by the requesting system.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, to be allocated to this new assessment result.
                  required: true
                  type: string
                - name: assessmentResult
                  in: body
                  description: |
                      The assessment result data that is to be stored.
                  required: true
                  schema: 
                      $ref: "#/definitions/SingleAssessmentResultDType"
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/assessment.createput
            responses: 
                "201" : 
                    description: |
                        The object has been successfully stored in the Service Provider repository.
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"

    /categories:
        get:
            operationId: getAllCategories
            summary: The REST read request message for the getAllCategories() API call.
            tags: 
                - CategoriesManagement
            description: |
                Get all of the lineItem categories on the service provider.
            parameters: 
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 100
                  minimum: 1
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 0
                  minimum: 0
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  enum: 
                    - asc
                    - desc
                  allowEmptyValue: false
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook-core.readonly
            responses: 
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/CategoriesSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            type: integer
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"

    /categories/{sourcedId}:
        get:
            operationId: getCategory
            summary: The REST read request message for the getCategory() API call.
            tags: 
                - CategoriesManagement
            description: |
                Get a specific lineItem category on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for this category.
                  required: true
                  type: string
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook-core.readonly
            responses: 
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/SingleCategoryDType"
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
        delete:
            operationId: deleteCategory
            summary: The REST delete request message for the deleteCategory() API call.
            tags: 
                - CategoriesManagement
            description: |
                Delete a specific lineItem category on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the category to be deleted.
                  required: true
                  type: string
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.delete
            responses: 
                "204" : 
                    description: |
                        The object has been successfully deleted. 
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
        put:
            operationId: putCategory
            summary: The REST create request message for the putCategory() API call.
            tags: 
                - CategoriesManagement
            description: |
                To create a new lineItem category. The associated sourcedId for this new record is supplied by the requesting system.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, to be allocated to this new category.
                  required: true
                  type: string
                - name: category
                  in: body
                  description: |
                      The category data that is to be stored.
                  required: true
                  schema: 
                      $ref: "#/definitions/SingleCategoryDType"
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createput
            responses: 
                "201" : 
                    description: |
                        The object has been successfully stored in the Service Provider repository.
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"

    /classes/{classSourcedId}/academicSessions/{academicSessionSourcedId}/results:
        post:
            operationId: postResultsForAcademicSessionForClass
            summary: The REST createbp request message for the postResultsForAcademicSessionForClass() API call.
            tags: 
                - ClassesManagement
            description: |
                To create a set of results for a specific academic session and specific class. The responding system must return the set of sourcedIds that have been allocated to the newly created result records. If the corresponding class or academic session cannot be located then an 'unknown' error code is returned.
            parameters: 
                - name: classSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the class.
                  required: true
                  type: string
                - name: academicSessionSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the academic session.
                  required: true
                  type: string
                - name: results
                  in: body
                  description: |
                      The set of result records to be created in response to this request. This includes an initial assignment of sourcedId so that the mapping between this and the actually assigned sourcedId can be reported. 
                  required: true
                  schema: 
                      $ref: "#/definitions/ResultSetDType"
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createpost
            responses: 
                "201" : 
                    description: |
                        The object has been successfully stored in the Service Provider repository.
                    schema: 
                        $ref: "#/definitions/GUIDPairSetDType"
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"

    /classes/{classSourcedId}/categories:
        get:
            operationId: getCategoriesForClass
            summary: The REST read request message for the getCategoriesForClass() API call.
            tags: 
                - ClassesManagement
            description: |
                Get the set of categories on the service provider for a specific class. If the corresponding class cannot be located then an 'unknown' error code is returned.
            parameters: 
                - name: classSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the class.
                  required: true
                  type: string
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 100
                  minimum: 1
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 0
                  minimum: 0
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  enum: 
                    - asc
                    - desc
                  allowEmptyValue: false
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly
            responses: 
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/CategoriesSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            type: integer
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"

    /classes/{classSourcedId}/lineItems:
        get:
            operationId: getLineItemsForClass
            summary: The REST read request message for the getLineItemsForClass() API call.
            tags: 
                - ClassesManagement
            description: |
                Get the set of lineItems on the service provider for a specific class. If the corresponding class cannot be located then an 'unknown' error code is returned.
            parameters: 
                - name: classSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the class.
                  required: true
                  type: string
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 100
                  minimum: 1
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 0
                  minimum: 0
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  enum: 
                    - asc
                    - desc
                  allowEmptyValue: false
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly
            responses: 
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/LineItemSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            type: integer
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
        post:
            operationId: postLineItemsForClass
            summary: The REST createbp request message for the postLineItemsForClass() API call.
            tags: 
                - ClassesManagement
            description: |
                To create a set of lineItems for a specific class. The responding system must return the set of sourcedIds that have been allocated to the newly created lineItem records. If the corresponding class cannot be located then an 'unknown' error code is returned.
            parameters: 
                - name: classSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the class.
                  required: true
                  type: string
                - name: lineItems
                  in: body
                  description: |
                      The set of lineItem records to be created in response to this request. This includes an initial assignment of sourcedId so that the mapping between this and the actually assigned sourcedId can be reported. 
                  required: true
                  schema: 
                      $ref: "#/definitions/LineItemSetDType"
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createpost
            responses: 
                "201" : 
                    description: |
                        The object has been successfully stored in the Service Provider repository.
                    schema: 
                        $ref: "#/definitions/GUIDPairSetDType"
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"

    /classes/{classSourcedId}/lineItems/{lineItemSourcedId}/results:
        get:
            operationId: getResultsForLineItemForClass
            summary: The REST read request message for the getResultsForLineItemForClass() API call.
            tags: 
                - ClassesManagement
            description: |
                Get the set of results on the service provider for a specific lineItem and for a specific class. If the corresponding class cannot be located then an 'unknown' error code is returned.
            parameters: 
                - name: classSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the class.
                  required: true
                  type: string
                - name: lineItemSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the lineItem.
                  required: true
                  type: string
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 100
                  minimum: 1
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 0
                  minimum: 0
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  enum: 
                    - asc
                    - desc
                  allowEmptyValue: false
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly
            responses: 
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/ResultSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            type: integer
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"

    /classes/{classSourcedId}/results:
        get:
            operationId: getResultsForClass
            summary: The REST read request message for the getResultsForClass() API call.
            tags: 
                - ClassesManagement
            description: |
                Get the set of results on the service provider for a specific class. If the corresponding class cannot be located then an 'unknown' error code is returned.
            parameters: 
                - name: classSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the class.
                  required: true
                  type: string
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 100
                  minimum: 1
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 0
                  minimum: 0
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  enum: 
                    - asc
                    - desc
                  allowEmptyValue: false
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly
            responses: 
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/ResultSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            type: integer
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"

    /classes/{classSourcedId}/scoreScales:
        get:
            operationId: getScoreScalesForClass
            summary: The REST read request message for the getScoreScalesForClass() API call.
            tags: 
                - ClassesManagement
            description: |
                Get the set of scoreScales on the service provider for a specific class. If the corresponding class cannot be located then an 'unknown' error code is returned.
            parameters: 
                - name: classSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the class.
                  required: true
                  type: string
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 100
                  minimum: 1
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 0
                  minimum: 0
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  enum: 
                    - asc
                    - desc
                  allowEmptyValue: false
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly
            responses: 
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/ScoreScaleSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            type: integer
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"

    /classes/{classSourcedId}/students/{studentSourcedId}/results:
        get:
            operationId: getResultsForStudentForClass
            summary: The REST read request message for the getResultsForStudentForClass() API call.
            tags: 
                - ClassesManagement
            description: |
                Get the set of results on the service provider for a specific student and for a specific class. If the corresponding class cannot be located then an 'unknown' error code is returned.
            parameters: 
                - name: classSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the class.
                  required: true
                  type: string
                - name: studentSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the student.
                  required: true
                  type: string
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 100
                  minimum: 1
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 0
                  minimum: 0
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  enum: 
                    - asc
                    - desc
                  allowEmptyValue: false
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly
            responses: 
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/ResultSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            type: integer
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"

    /lineItems:
        get:
            operationId: getAllLineItems
            summary: The REST read request message for the getAllLineItems() API call.
            tags: 
                - LineItemsManagement
            description: |
                Get all of the Line Items on the service provider.
            parameters: 
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 100
                  minimum: 1
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 0
                  minimum: 0
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  enum: 
                    - asc
                    - desc
                  allowEmptyValue: false
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook-core.readonly
            responses: 
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/LineItemSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            type: integer
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"

    /lineItems/{lineItemSourcedId}/results:
        post:
            operationId: postResultsForLineItem
            summary: The REST createbp request message for the postResultsForLineItem() API call.
            tags: 
                - LineItemsManagement
            description: |
                To create a set of results for a specific lineItem. The responding system must return the set of sourcedIds that have been allocated to the newly created result records.
            parameters: 
                - name: lineItemSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the lineItem.
                  required: true
                  type: string
                - name: results
                  in: body
                  description: |
                      The set of result records to be created in response to this request. This includes an initial assignment of sourcedId so that the mapping between this and the actually assigned sourcedId can be reported. 
                  required: true
                  schema: 
                      $ref: "#/definitions/ResultSetDType"
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createpost
            responses: 
                "201" : 
                    description: |
                        The object has been successfully stored in the Service Provider repository.
                    schema: 
                        $ref: "#/definitions/GUIDPairSetDType"
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"

    /lineItems/{sourcedId}:
        get:
            operationId: getLineItem
            summary: The REST read request message for the getLineItem() API call.
            tags: 
                - LineItemsManagement
            description: |
                Get a specific LineItem on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for this lineItem.
                  required: true
                  type: string
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook-core.readonly
            responses: 
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/SingleLineItemDType"
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
        delete:
            operationId: deleteLineItem
            summary: The REST delete request message for the deleteLineItem() API call.
            tags: 
                - LineItemsManagement
            description: |
                Delete a specific lineItem on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the lineItem to be deleted.
                  required: true
                  type: string
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.delete
            responses: 
                "204" : 
                    description: |
                        The object has been successfully deleted. 
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
        put:
            operationId: putLineItem
            summary: The REST create request message for the putLineItem() API call.
            tags: 
                - LineItemsManagement
            description: |
                To create a new lineItem. The associated sourcedId for this new record is supplied by the requesting system.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, to be allocated to this new lineItem.
                  required: true
                  type: string
                - name: lineItem
                  in: body
                  description: |
                      The lineItem data that is to be stored.
                  required: true
                  schema: 
                      $ref: "#/definitions/SingleLineItemDType"
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createput
            responses: 
                "201" : 
                    description: |
                        The object has been successfully stored in the Service Provider repository.
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"

    /results:
        get:
            operationId: getAllResults
            summary: The REST read request message for the getAllResults() API call.
            tags: 
                - ResultsManagement
            description: |
                Get all of the results on the service provider.
            parameters: 
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 100
                  minimum: 1
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 0
                  minimum: 0
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  enum: 
                    - asc
                    - desc
                  allowEmptyValue: false
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook-core.readonly
            responses: 
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/ResultSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            type: integer
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"

    /results/{sourcedId}:
        get:
            operationId: getResult
            summary: The REST read request message for the getResult() API call.
            tags: 
                - ResultsManagement
            description: |
                Get a specific result on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for this result.
                  required: true
                  type: string
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook-core.readonly
            responses: 
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/SingleResultDType"
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
        delete:
            operationId: deleteResult
            summary: The REST delete request message for the deleteResult() API call.
            tags: 
                - ResultsManagement
            description: |
                Delete a specific result on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the result to be deleted.
                  required: true
                  type: string
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.delete
            responses: 
                "204" : 
                    description: |
                        The object has been successfully deleted. 
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
        put:
            operationId: putResult
            summary: The REST create request message for the putResult() API call.
            tags: 
                - ResultsManagement
            description: |
                To create a new result. The associated sourcedId for this new record is supplied by the requesting system.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, to be allocated to this new result.
                  required: true
                  type: string
                - name: result
                  in: body
                  description: |
                      The result data that is to be stored.
                  required: true
                  schema: 
                      $ref: "#/definitions/SingleResultDType"
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createput
            responses: 
                "201" : 
                    description: |
                        The object has been successfully stored in the Service Provider repository.
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"

    /schools/{schoolSourcedId}/lineItems:
        post:
            operationId: postLineItemsForSchool
            summary: The REST createbp request message for the postLineItemsForSchool() API call.
            tags: 
                - SchoolsManagement
            description: |
                To create a set of lineItems for a specific school.  The responding system must return the set of sourcedIds that have been allocated to the newly created lineItem records.
            parameters: 
                - name: schoolSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the school.
                  required: true
                  type: string
                - name: lineItems
                  in: body
                  description: |
                      The set of lineItem records to be created in response to this request. This includes an initial assignment of sourcedId so that the mapping between this and the actually assigned sourcedId can be reported. 
                  required: true
                  schema: 
                      $ref: "#/definitions/LineItemSetDType"
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createpost
            responses: 
                "201" : 
                    description: |
                        The object has been successfully stored in the Service Provider repository.
                    schema: 
                        $ref: "#/definitions/GUIDPairSetDType"
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"

    /schools/{schoolSourcedId}/scoreScales:
        get:
            operationId: getScoreScalesForSchool
            summary: The REST read request message for the getScoreScalesForSchool() API call.
            tags: 
                - SchoolsManagement
            description: |
                Get the set of scoreScales on the service provider for a specific school. If the corresponding school cannot be located then an 'unknown' error code is returned.
            parameters: 
                - name: schoolSourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the school.
                  required: true
                  type: string
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 100
                  minimum: 1
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 0
                  minimum: 0
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  enum: 
                    - asc
                    - desc
                  allowEmptyValue: false
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly
            responses: 
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/ScoreScaleSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            type: integer
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"

    /scoreScales:
        get:
            operationId: getAllScoreScales
            summary: The REST read request message for the getAllScoreScales() API call.
            tags: 
                - ScoreScalesManagement
            description: |
                Get all of the ScoreScales on the service provider.
            parameters: 
                - name: limit
                  in: query
                  description: |
                      To define the download segmentation value i.e. the maximum number of records to be contained in the response.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 100
                  minimum: 1
                - name: offset
                  in: query
                  description: |
                      The number of the first record to be supplied in the segmented response message.
                  required: false
                  type: integer
                  format: int32
                  allowEmptyValue: false
                  default: 0
                  minimum: 0
                - name: sort
                  in: query
                  description: |
                      Identifies the sort criteria to be used for the records in the response message. Use with the orderBy parameter. The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: orderBy
                  in: query
                  description: |
                      The form of ordering for response to the sorted request i.e. ascending (asc) or descending (desc). The sort order should follow the [UNICODE, 16] standard.
                  required: false
                  type: string
                  enum: 
                    - asc
                    - desc
                  allowEmptyValue: false
                - name: filter
                  in: query
                  description: |
                      The filtering rules to be applied when identifying the records to be supplied in the response message.
                  required: false
                  type: string
                  allowEmptyValue: false
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook-core.readonly
            responses: 
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/ScoreScaleSetDType"
                    headers: 
                        "X-Total-Count" :
                            description: |
                                The total number of resources that are available to be returned
                            type: integer
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"

    /scoreScales/{sourcedId}:
        get:
            operationId: getScoreScale
            summary: The REST read request message for the getScoreScale() API call.
            tags: 
                - ScoreScalesManagement
            description: |
                Get a specific scoreScale on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for this scoreScale.
                  required: true
                  type: string
                - name: fields
                  in: query
                  description: |
                      To identify the range of fields that should be supplied in the response message.
                  required: false
                  type: array
                  items: 
                      type: string
                  collectionFormat: csv
                  allowEmptyValue: false
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.readonly
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook-core.readonly
            responses: 
                "200" : 
                    description: |
                        The request was successfully completed and a record has been returned. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '200'.
                    schema: 
                        $ref: "#/definitions/SingleScoreScaleDType"
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
        delete:
            operationId: deleteScoreScale
            summary: The REST delete request message for the deleteScoreScale() API call.
            tags: 
                - ScoreScalesManagement
            description: |
                Delete a specific scoreScale on the service provider. If the corresponding record cannot be located then an 'unknown' error code is returned.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, for the scoreScale to be deleted.
                  required: true
                  type: string
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.delete
            responses: 
                "204" : 
                    description: |
                        The object has been successfully deleted. 
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
        put:
            operationId: putScoreScale
            summary: The REST create request message for the putScoreScale() API call.
            tags: 
                - ScoreScalesManagement
            description: |
                To create a new scoreScale. The associated sourcedId for this new record is supplied by the requesting system.
            parameters: 
                - name: sourcedId
                  in: path
                  description: |
                      The unique identifier, GUID, to be allocated to this new scoreScale.
                  required: true
                  type: string
                - name: scoreScale
                  in: body
                  description: |
                      The scoreScale data that is to be stored.
                  required: true
                  schema: 
                      $ref: "#/definitions/SingleScoreScaleDType"
            security:
                - OAuth2CC:
                    - https://purl.imsglobal.org/spec/or/v1p2/scope/gradebook.createput
            responses: 
                "201" : 
                    description: |
                        The object has been successfully stored in the Service Provider repository.
                "default" : 
                    description: |
                        This is the default error response when no other approprate code is available. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"
                "404" : 
                    description: |
                        Either the supplied identifier is unknown in the Service Provider and so the object could not be changed or an invalid GUID has been supplied. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'. The statement 'Unknown Object' should also be presented. 
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "422" : 
                    description: |
                        This error condition may occur if a JSON request body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error'.
                    schema: 
                        $ref: "#/definitions/imsx_StatusInfoDType"
                "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_StatusInfoDType"
                "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_StatusInfoDType"


#####################################################################################
#                               Definitions                                         #
#####################################################################################
definitions: 
    AcadSessionGUIDRefDType:
        description: |
            This is the container for reference to a OneRoster 'Academic Session' object that has an allocated sourcedId (GUID).
        type: object
        required: 
            - href
            - sourcedId
            - type
        properties: 
            href: 
                description: The URI for the type of object being referenced. Model Primitive Datatype = AnyURI.
                type: string
                format: uri
            sourcedId: 
                description: The globally unique identifier of the object being referenced. Model Primitive Datatype = String.
                type: string
            type: 
                description: |
                    The type of object being referenced i.e. an 'academicSession'.
                type: string
                enum: 
                   - academicSession
        additionalProperties: false
    AssessmentLineItemDType:
        description: |
            This is the container for the definition of an assessment lineItem. An assessment lineItem is a collection of results for a set of students who are completing an assignment.
        type: object
        required: 
            - sourcedId
            - status
            - dateLastModified
            - title
        properties: 
            sourcedId: 
                description: The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record. Model Primitive Datatype = String.
                type: string
            status: 
                description: |
                    All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
                type: string
                enum: 
                   - active
                   - tobedeleted
            dateLastModified: 
                description: All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone. Model Primitive Datatype = DateTime.
                type: string
                format: date-time
            metadata: 
                $ref: "#/definitions/MetadataDType"
            title: 
                description: The title, human readable, for the assessment lineItem.  This should allow the assessment lineItem to be distinguished from its peer assessment lineItems. Model Primitive Datatype = NormalizedString.
                type: string
            description: 
                description: A human readable description of the usage of the assessment lineItem. Model Primitive Datatype = String.
                type: string
            class: 
                $ref: "#/definitions/ClassGUIDRefDType"
            parentAssessmentLineItem: 
                $ref: "#/definitions/AssessmentLineItemGUIDRefDType"
            scoreScale: 
                $ref: "#/definitions/ScoreScaleGUIDRefDType"
            resultValueMin: 
                description: The minimum value (numeric) that can be assigned to the score attribute in a result. The score scale mapping should be used to map to other scores. Model Primitive Datatype = Float.
                type: number
                format: float
            resultValueMax: 
                description: The maximum value (numeric) that can be assigned to the score attribute in a result. The score scale mapping should be used to map to other scores. Model Primitive Datatype = Float.
                type: number
                format: float
            learningObjectiveSet: 
                description: |
                    The set of identifiers for the learning objectives to which this assessment is aligned. Any number groups of learning objectives can be assigned.
                type: array
                minItems: 0
                items: 
                    $ref: "#/definitions/LearningObjectiveSetDType"
        additionalProperties: false
    AssessmentLineItemGUIDRefDType:
        description: |
            This is the container for reference to a OneRoster 'AssessmentLineItem' object that has an allocated sourcedId (GUID).
        type: object
        required: 
            - href
            - sourcedId
            - type
        properties: 
            href: 
                description: The URI for the type of object being referenced. Model Primitive Datatype = AnyURI.
                type: string
                format: uri
            sourcedId: 
                description: The globally unique identifier of the object being referenced. Model Primitive Datatype = String.
                type: string
            type: 
                description: |
                    The type of object being referenced i.e. an 'assessmentLineItem'.
                type: string
                enum: 
                   - assessmentLineItem
        additionalProperties: false
    AssessmentLineItemSetDType:
        description: |
            This is the container for a collection of assessment lineItem instances for a message payload. This may be empty if no instances are found that sustain the applied query constraints. The order is not significant.
        type: object
        properties: 
            assessmentLineItems: 
                description: |
                    The collection of assessment lineItem instances. The order is not significant. The corresponding query constraints may result in no instances being returned.
                type: array
                minItems: 0
                items: 
                    $ref: "#/definitions/AssessmentLineItemDType"
        additionalProperties: false
    AssessmentResultDType:
        description: |
            This is the container for the AssessmentResult record.  An assessment result consists of the assigned score plus the context for that score.
        type: object
        required: 
            - sourcedId
            - status
            - dateLastModified
            - assessmentLineItem
            - student
            - scoreDate
            - scoreStatus
        properties: 
            sourcedId: 
                description: The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record. Model Primitive Datatype = String.
                type: string
            status: 
                description: |
                    All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
                type: string
                enum: 
                   - active
                   - tobedeleted
            dateLastModified: 
                description: All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone. Model Primitive Datatype = DateTime.
                type: string
                format: date-time
            metadata: 
                $ref: "#/definitions/MetadataDType"
            assessmentLineItem: 
                $ref: "#/definitions/AssessmentLineItemGUIDRefDType"
            student: 
                $ref: "#/definitions/UserGUIDRefDType"
            score: 
                description: The score for the result. If a scoreScale is assigned then the value must align with the scale. Model Primitive Datatype = Float.
                type: number
                format: float
            textScore: 
                description: An optional non-numeric score value. If a scoreScale is assigned then the value must align with the scale. Model Primitive Datatype = NormalizedString.
                type: string
            scoreDate: 
                description: The date at which the score is assigned or there is an update to the result e.g. change in the 'scoreStatus'.. The format is YYYY-MM-DD as defined in [ISO 8601]. Model Primitive Datatype = Date.
                type: string
                format: date
            scoreScale: 
                $ref: "#/definitions/ScoreScaleGUIDRefDType"
            scorePercentile: 
                description: The percentile rank of a score is the percentage of scores in its frequency distribution that are equal to or lower than it. Model Primitive Datatype = Float.
                type: number
                format: float
            scoreStatus: 
                description: |
                    The status of the score. The value is from an extensible enumerated vocabulary.
                type: string
            comment: 
                description: A human readable comment about the score. Model Primitive Datatype = String.
                type: string
            learningObjectiveSet: 
                description: |
                    The set of identifiers for the learning objectives to which this result is aligned. Any number groups of learning objectives can be assigned.
                type: array
                minItems: 0
                items: 
                    $ref: "#/definitions/LearningObjectiveScoreSetDType"
            inProgress: 
                description: |
                    This is used to indicate that the associated work activity has been assigned and student's work product is not yet expected to have been submitted.
                type: string
                enum: 
                   - true
                   - false
            incomplete: 
                description: |
                    This is used to indicate that the student's work product has been submitted but it is deemed incomplete by the teacher.
                type: string
                enum: 
                   - true
                   - false
            late: 
                description: |
                    This is used to indicate that the student's work product is either past due or it has been submitted past the due date. The score on this result may be impacted as as result of this flag.
                type: string
                enum: 
                   - true
                   - false
            missing: 
                description: |
                    This is used to indicate that the student's work product as not been submitted.
                type: string
                enum: 
                   - true
                   - false
        additionalProperties: false
    AssessmentResultSetDType:
        description: |
            This is the container for a collection of assessment result instances for a message payload. This may be empty if no instances are found that sustain the applied query constraints. The order is not significant.
        type: object
        properties: 
            assessmentResults: 
                description: |
                    The collection of assessment result instances. The order is not significant. The corresponding query constraints may result in no instances being returned.
                type: array
                minItems: 0
                items: 
                    $ref: "#/definitions/AssessmentResultDType"
        additionalProperties: false
    CategoriesSetDType:
        description: |
            This is the container for a collection of category instances for a message payload. This may be empty if no instances are found that sustain the applied query constraints. The order is not significant.
        type: object
        properties: 
            categories: 
                description: |
                    The collection of category instances. The order is not significant. The corresponding query constraints may result in no instances being returned.
                type: array
                minItems: 0
                items: 
                    $ref: "#/definitions/CategoryDType"
        additionalProperties: false
    CategoryDType:
        description: |
            A Category is the name given to a grouping of line items (line items being equivalent to assignments which students will complete). 
        type: object
        required: 
            - sourcedId
            - status
            - dateLastModified
            - title
        properties: 
            sourcedId: 
                description: The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record. Model Primitive Datatype = String.
                type: string
            status: 
                description: |
                    All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
                type: string
                enum: 
                   - active
                   - tobedeleted
            dateLastModified: 
                description: All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone. Model Primitive Datatype = DateTime.
                type: string
                format: date-time
            metadata: 
                $ref: "#/definitions/MetadataDType"
            title: 
                description: The human readable title for the category. Model Primitive Datatype = NormalizedString.
                type: string
            weight: 
                description: Total weight of this grading category in calculation of the course final score. Model Primitive Datatype = Float.
                type: number
                format: float
        additionalProperties: false
    CategoryGUIDRefDType:
        description: |
            This is the container for reference to a OneRoster 'Category' object that has an allocated sourcedId (GUID).
        type: object
        required: 
            - href
            - sourcedId
            - type
        properties: 
            href: 
                description: The URI for the type of object being referenced. Model Primitive Datatype = AnyURI.
                type: string
                format: uri
            sourcedId: 
                description: The globally unique identifier of the object being referenced. Model Primitive Datatype = String.
                type: string
            type: 
                description: |
                    The type of object being referenced i.e. a 'category'.
                type: string
                enum: 
                   - category
        additionalProperties: false
    ClassGUIDRefDType:
        description: |
            This is the container for reference to a OneRoster 'Class' object that has an allocated sourcedId (GUID).
        type: object
        required: 
            - href
            - sourcedId
            - type
        properties: 
            href: 
                description: The URI for the type of object being referenced. Model Primitive Datatype = AnyURI.
                type: string
                format: uri
            sourcedId: 
                description: The globally unique identifier of the object being referenced. Model Primitive Datatype = String.
                type: string
            type: 
                description: |
                    The type of object being referenced i.e. a 'class'.
                type: string
                enum: 
                   - class
        additionalProperties: false
    CourseGUIDRefDType:
        description: |
            This is the container for reference to a OneRoster 'Course' object that has an allocated sourcedId (GUID).
        type: object
        required: 
            - href
            - sourcedId
            - type
        properties: 
            href: 
                description: The URI for the type of object being referenced. Model Primitive Datatype = AnyURI.
                type: string
                format: uri
            sourcedId: 
                description: The globally unique identifier of the object being referenced. Model Primitive Datatype = String.
                type: string
            type: 
                description: |
                    The type of object being referenced i.e. a 'course'.
                type: string
                enum: 
                   - course
        additionalProperties: false
    GUIDPairDType:
        description: |
            The container for the mapping between the supplied (assigned by the requesting system) and allocated (assigned by the responding system) sourcedIds i.e. GUIDs.
        type: object
        required: 
            - suppliedSourcedId
            - allocatedSourcedId
        properties: 
            suppliedSourcedId: 
                description: The temporary sourcedId that has been allocated by the requesting system. This sourcedId is used to enable identification of the original record for which the new sourcedId has been allocated at the service provider. Model Primitive Datatype = String.
                type: string
            allocatedSourcedId: 
                description: The sourcedId that has been allocated by the system on which the new record has been created. Model Primitive Datatype = String.
                type: string
        additionalProperties: false
    GUIDPairSetDType:
        description: |
            The container for the set of sourcedId pairs. This is used to provide the mapping between a set of original/new values allocated to a set of sourcedIds.
        type: object
        properties: 
            sourcedIdPairs: 
                description: |
                    The set of sourcedId pairs. The order is not significant as each pair contains the information between the original/new values.
                type: array
                minItems: 0
                items: 
                    $ref: "#/definitions/GUIDPairDType"
        additionalProperties: false
    LearningObjectiveResultsDType:
        description: |
            This is the container for a learning objective identifier. This also allows a mastery score to be aligned with the learning objective.
        type: object
        required: 
            - learningObjectiveId
        properties: 
            learningObjectiveId: 
                description: The unique identifier for the associated learning objective. If this is a CASE identifier it MUST be a valid UUID. Model Primitive Datatype = NormalizedString.
                type: string
            score: 
                description: The optional mastery score supplied as a numeric value.  Model Primitive Datatype = Float.
                type: number
                format: float
            textScore: 
                description: The optional mastery score supplied in a non-numeric form.  Model Primitive Datatype = NormalizedString.
                type: string
        additionalProperties: false
    LearningObjectiveScoreSetDType:
        description: |
            This is the container for the set of learning objective identifiers that are from a single source responsible for creating those identifiers. This also allows a mastery score to be aligned with a learning objective.
        type: object
        required: 
            - source
            - learningObjectiveResults
        properties: 
            source: 
                description: |
                    The source responsible for creating the learning objective identifiers. The permitted values are from an extensible vocabulary.
                type: string
            learningObjectiveResults: 
                description: |
                    The set of unique identifiers for the associated learning objectives (these may have alignment with a mastery score). If these are CASE identifiers they MUST be valid UUIDs.
                type: array
                minItems: 1
                items: 
                    $ref: "#/definitions/LearningObjectiveResultsDType"
        additionalProperties: false
    LearningObjectiveSetDType:
        description: |
            This is the container for the set of learning objective identifiers that are from a single source responsible for creating those identifiers.
        type: object
        required: 
            - source
            - learningObjectiveIds
        properties: 
            source: 
                description: |
                    The source responsible for creating the learning objective identifiers. The permitted values are from an extensible vocabulary.
                type: string
            learningObjectiveIds: 
                description: The set of unique identifiers for the associated learning objectives. If these are CASE identifiers they MUST be valid UUIDs. Model Primitive Datatype = NormalizedString.
                type: array
                minItems: 1
                items: 
                    type: string
        additionalProperties: false
    LineItemDType:
        description: |
            This is the container for the definition of a lineItem. A lineItem is a collection of results for a set of students who are completing an assignment as part of a class at a school.
        type: object
        required: 
            - sourcedId
            - status
            - dateLastModified
            - title
            - assignDate
            - dueDate
            - class
            - school
            - category
        properties: 
            sourcedId: 
                description: The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record. Model Primitive Datatype = String.
                type: string
            status: 
                description: |
                    All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
                type: string
                enum: 
                   - active
                   - tobedeleted
            dateLastModified: 
                description: All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone. Model Primitive Datatype = DateTime.
                type: string
                format: date-time
            metadata: 
                $ref: "#/definitions/MetadataDType"
            title: 
                description: The title, human readable, for the lineItem.  This should allow the lineItem to be distinguished from its peer lineItems. Model Primitive Datatype = NormalizedString.
                type: string
            description: 
                description: A human readable description of the usage of the lineItem. Model Primitive Datatype = String.
                type: string
            assignDate: 
                description: The date/time the activity being addressed by the lineItem was assigned to the student. This has a format as defined in [ISO 8601]. Model Primitive Datatype = DateTime.
                type: string
                format: date-time
            dueDate: 
                description: The date/time by which the assignment must be completed and submitted. This has the dateTime format as defined in [ISO 8601]. Model Primitive Datatype = DateTime.
                type: string
                format: date-time
            class: 
                $ref: "#/definitions/ClassGUIDRefDType"
            school: 
                $ref: "#/definitions/OrgGUIDRefDType"
            category: 
                $ref: "#/definitions/CategoryGUIDRefDType"
            gradingPeriod: 
                $ref: "#/definitions/AcadSessionGUIDRefDType"
            academicSession: 
                $ref: "#/definitions/AcadSessionGUIDRefDType"
            scoreScale: 
                $ref: "#/definitions/ScoreScaleGUIDRefDType"
            resultValueMin: 
                description: The minimum value (numeric) that can be assigned to the score attribute in a result. The score scale mapping should be used to map to other scores. Model Primitive Datatype = Float.
                type: number
                format: float
            resultValueMax: 
                description: The maximum value (numeric) that can be assigned to the score attribute in a result. The score scale mapping should be used to map to other scores. Model Primitive Datatype = Float.
                type: number
                format: float
            learningObjectiveSet: 
                description: |
                    The set of identifiers for the learning objectives to which this assessment is aligned. Any number groups of learning objectives can be assigned.
                type: array
                minItems: 0
                items: 
                    $ref: "#/definitions/LearningObjectiveSetDType"
        additionalProperties: false
    LineItemGUIDRefDType:
        description: |
            This is the container for reference to a OneRoster 'LineItem' object that has an allocated sourcedId (GUID).
        type: object
        required: 
            - href
            - sourcedId
            - type
        properties: 
            href: 
                description: The URI for the type of object being referenced. Model Primitive Datatype = AnyURI.
                type: string
                format: uri
            sourcedId: 
                description: The globally unique identifier of the object being referenced. Model Primitive Datatype = String.
                type: string
            type: 
                description: |
                    The type of object being referenced i.e. a 'lineItem'.
                type: string
                enum: 
                   - lineItem
        additionalProperties: false
    LineItemSetDType:
        description: |
            This is the container for a collection of lineItem instances for a message payload. This may be empty if no instances are found that sustain the applied query constraints. The order is not significant.
        type: object
        properties: 
            lineItems: 
                description: |
                    The collection of lineItem instances. The order is not significant. The corresponding query constraints may result in no instances being returned.
                type: array
                minItems: 0
                items: 
                    $ref: "#/definitions/LineItemDType"
        additionalProperties: false
    MetadataDType:
        description: |
            The container for the proprietary extensions.
        type: object
        properties: {}
        additionalProperties: true
    OrgGUIDRefDType:
        description: |
            This is the container for reference to a OneRoster 'Org' object that has an allocated sourcedId (GUID).
        type: object
        required: 
            - href
            - sourcedId
            - type
        properties: 
            href: 
                description: The URI for the type of object being referenced. Model Primitive Datatype = AnyURI.
                type: string
                format: uri
            sourcedId: 
                description: The globally unique identifier of the object being referenced. Model Primitive Datatype = String.
                type: string
            type: 
                description: |
                    The type of object being referenced i.e. an 'org'.
                type: string
                enum: 
                   - org
        additionalProperties: false
    ResultDType:
        description: |
            This is the container for the Result record.  A result consists of the assigned score plus the context for that score.
        type: object
        required: 
            - sourcedId
            - status
            - dateLastModified
            - lineItem
            - student
            - scoreStatus
            - scoreDate
        properties: 
            sourcedId: 
                description: The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record. Model Primitive Datatype = String.
                type: string
            status: 
                description: |
                    All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
                type: string
                enum: 
                   - active
                   - tobedeleted
            dateLastModified: 
                description: All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone. Model Primitive Datatype = DateTime.
                type: string
                format: date-time
            metadata: 
                $ref: "#/definitions/MetadataDType"
            lineItem: 
                $ref: "#/definitions/LineItemGUIDRefDType"
            student: 
                $ref: "#/definitions/UserGUIDRefDType"
            class: 
                $ref: "#/definitions/ClassGUIDRefDType"
            scoreScale: 
                $ref: "#/definitions/ScoreScaleGUIDRefDType"
            scoreStatus: 
                description: |
                    The status of the score. The value is from an extensible enumerated vocabulary.
                type: string
            score: 
                description: The score for the result. If a scoreScale is assigned then the value must align with the scale. Model Primitive Datatype = Float.
                type: number
                format: float
            textScore: 
                description: An optional non-numeric score value. If a scoreScale is assigned then the value must align with the scale. This attribute was added in OR 1.2. Model Primitive Datatype = NormalizedString.
                type: string
            scoreDate: 
                description: The date at which the score is assigned or there is an update to the result e.g. change in the 'scoreStatus'. The format is YYYY-MM-DD as defined in [ISO 8601]. Model Primitive Datatype = Date.
                type: string
                format: date
            comment: 
                description: A human readable comment about the score. Model Primitive Datatype = String.
                type: string
            learningObjectiveSet: 
                description: |
                    The set of identifiers for the learning objectives to which this result is aligned. Any number groups of learning objectives can be assigned.
                type: array
                minItems: 0
                items: 
                    $ref: "#/definitions/LearningObjectiveScoreSetDType"
            inProgress: 
                description: |
                    This is used to indicate that the associated work activity has been assigned and student's work product is not yet expected to have been submitted.
                type: string
                enum: 
                   - true
                   - false
            incomplete: 
                description: |
                    This is used to indicate that the student's work product has been submitted but it is deemed incomplete by the teacher.
                type: string
                enum: 
                   - true
                   - false
            late: 
                description: |
                    This is used to indicate that the student's work product is either past due or it has been submitted past the due date. The score on this result may be impacted as as result of this flag.
                type: string
                enum: 
                   - true
                   - false
            missing: 
                description: |
                    This is used to indicate that the student's work product as not been submitted.
                type: string
                enum: 
                   - true
                   - false
        additionalProperties: false
    ResultSetDType:
        description: |
            This is the container for a collection of result instances for a message payload. This may be empty if no instances are found that sustain the applied query constraints. The order is not significant.
        type: object
        properties: 
            results: 
                description: |
                    The collection of result instances. The order is not significant. The corresponding query constraints may result in no instances being returned.
                type: array
                minItems: 0
                items: 
                    $ref: "#/definitions/ResultDType"
        additionalProperties: false
    ScoreScaleDType:
        description: |
            The container for the definition Score Scale mapping i.e. the relationship between two score scales.
        type: object
        required: 
            - sourcedId
            - status
            - dateLastModified
            - title
            - type
            - class
            - scoreScaleValue
        properties: 
            sourcedId: 
                description: The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record. Model Primitive Datatype = String.
                type: string
            status: 
                description: |
                    All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.
                type: string
                enum: 
                   - active
                   - tobedeleted
            dateLastModified: 
                description: All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone. Model Primitive Datatype = DateTime.
                type: string
                format: date-time
            metadata: 
                $ref: "#/definitions/MetadataDType"
            title: 
                description: The human readable title for the score scale mapping. Model Primitive Datatype = NormalizedString.
                type: string
            type: 
                description: The type of score scale mapping. At present there is no predefined vocabulary. This should be used by an organization to differentiate between the score scales that it produces. Model Primitive Datatype = NormalizedString.
                type: string
            course: 
                $ref: "#/definitions/CourseGUIDRefDType"
            class: 
                $ref: "#/definitions/ClassGUIDRefDType"
            scoreScaleValue: 
                description: |
                    The set of mappings for this score scale.
                type: array
                minItems: 1
                items: 
                    $ref: "#/definitions/ScoreScaleValueDType"
        additionalProperties: false
    ScoreScaleGUIDRefDType:
        description: |
            This is the container for reference to a OneRoster 'ScoreScale' object that has an allocated sourcedId (GUID).
        type: object
        required: 
            - href
            - sourcedId
            - type
        properties: 
            href: 
                description: The URI for the type of object being referenced. Model Primitive Datatype = AnyURI.
                type: string
                format: uri
            sourcedId: 
                description: The globally unique identifier of the object being referenced. Model Primitive Datatype = String.
                type: string
            type: 
                description: |
                    The type of object being referenced i.e. a 'scoreScale'.
                type: string
                enum: 
                   - scoreScale
        additionalProperties: false
    ScoreScaleSetDType:
        description: |
            This is the container for a collection of scoreScale instances for a message payload. This may be empty if no instances are found that sustain the applied query constraints. The order is not significant.
        type: object
        properties: 
            scoreScales: 
                description: |
                    The collection of scoreScale instances. The order is not significant. The corresponding query constraints may result in no instances being returned.
                type: array
                minItems: 0
                items: 
                    $ref: "#/definitions/ScoreScaleDType"
        additionalProperties: false
    ScoreScaleValueDType:
        description: |
            A specific mapping of values between two score scales. The left hand side (LHS) value is the reference point. Examples of this mapping are: '7' maps to 'A', '7'-'10' maps to 'A', etc.
        type: object
        required: 
            - itemValueLHS
            - itemValueRHS
        properties: 
            itemValueLHS: 
                description: The left hand side value of the mapping relationship. The format is either a single value ('x') or a range ('x' - 'y'). In the case of a single value this is considered to be the inclusive lower value for the implied range. When a range is specified (lower-to-upper) the values are inclusive. Model Primitive Datatype = NormalizedString.
                type: string
            itemValueRHS: 
                description: The right hand side value of the mapping relationship  i.e. the equivalent value to the reference point defined in the LHS. Model Primitive Datatype = NormalizedString.
                type: string
        additionalProperties: false
    SingleAssessmentLineItemDType:
        description: |
            This is the container for a single assessment lineItem instance for a message payload.
        type: object
        required: 
            - assessmentLineItem
        properties: 
            assessmentLineItem: 
                $ref: "#/definitions/AssessmentLineItemDType"
        additionalProperties: false
    SingleAssessmentResultDType:
        description: |
            This is the container for a single assessment result instance for a message payload.
        type: object
        required: 
            - assessmentResult
        properties: 
            assessmentResult: 
                $ref: "#/definitions/AssessmentResultDType"
        additionalProperties: false
    SingleCategoryDType:
        description: |
            This is the container for a single category instance for a message payload.
        type: object
        required: 
            - category
        properties: 
            category: 
                $ref: "#/definitions/CategoryDType"
        additionalProperties: false
    SingleLineItemDType:
        description: |
            This is the container for a single lineItem instance for a message payload.
        type: object
        required: 
            - lineItem
        properties: 
            lineItem: 
                $ref: "#/definitions/LineItemDType"
        additionalProperties: false
    SingleResultDType:
        description: |
            This is the container for a single result instance for a message payload.
        type: object
        required: 
            - result
        properties: 
            result: 
                $ref: "#/definitions/ResultDType"
        additionalProperties: false
    SingleScoreScaleDType:
        description: |
            This is the container for a single scoreScale instance for a message payload.
        type: object
        required: 
            - scoreScale
        properties: 
            scoreScale: 
                $ref: "#/definitions/ScoreScaleDType"
        additionalProperties: false
    UserGUIDRefDType:
        description: |
            This is the container for reference to a OneRoster 'User' object that has an allocated sourcedId (GUID).
        type: object
        required: 
            - href
            - sourcedId
            - type
        properties: 
            href: 
                description: The URI for the type of object being referenced. Model Primitive Datatype = AnyURI.
                type: string
                format: uri
            sourcedId: 
                description: The globally unique identifier of the object being referenced. Model Primitive Datatype = String.
                type: string
            type: 
                description: |
                    The type of object being referenced i.e. a 'user'.
                type: string
                enum: 
                   - user
        additionalProperties: false
    imsx_CodeMinorDType:
        description: |
            This is the container for the set of code minor status codes reported in the responses from the Service Provider.
        type: object
        required: 
            - imsx_codeMinorField
        properties: 
            imsx_codeMinorField: 
                description: |
                    Each reported code minor status code.
                type: array
                minItems: 1
                items: 
                    $ref: "#/definitions/imsx_CodeMinorFieldDType"
        additionalProperties: false
    imsx_CodeMinorFieldDType:
        description: |
            This is the container for a single code minor status code.
        type: object
        required: 
            - imsx_codeMinorFieldName
            - imsx_codeMinorFieldValue
        properties: 
            imsx_codeMinorFieldName: 
                description: This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'. Model Primitive Datatype = NormalizedString.
                type: string
                default: TargetEndSystem
            imsx_codeMinorFieldValue: 
                description: |
                    The code minor status code (this is a value from the corresponding enumerated vocabulary).
                type: string
                enum: 
                   - fullsuccess
                   - invalid_filter_field
                   - invalid_selection_field
                   - invaliddata
                   - unauthorisedrequest
                   - internal_server_error
                   - server_busy
                   - deletefailure
                   - unknownobject
                   - forbidden
        additionalProperties: false
    imsx_StatusInfoDType:
        description: |
            This is the container for the status code and associated information returned within the HTTP messages received from the Service Provider. For the OneRoster Rostering 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: 
                description: |
                    The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.
                type: string
                enum: 
                   - success
                   - processing
                   - failure
                   - unsupported
            imsx_severity: 
                description: |
                    The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.
                type: string
                enum: 
                   - status
                   - warning
                   - error
            imsx_description: 
                description: A human readable description supplied by the entity creating the status code information. Model Primitive Datatype = String.
                type: string
            imsx_CodeMinor: 
                $ref: "#/definitions/imsx_CodeMinorDType"
        additionalProperties: false
        

toc | top

Appendix C JSON Schema Listings

This Section is NORMATIVE.

C1 JSON Schemas for Payload Validation

This is the set of JSON Schema listing that are used to validate the set of JSON payloads used by this service.

C1.1a JSON Schema for the "deleteAssessmentLineItem" Operation Request Payload Validation.

No request payload is sent for this delete request and so there is no JSON Schema listing.

C1.1b JSON Schema for the "deleteAssessmentLineItem" Operation Response Payload Validation for HTTP Codes (204)

No payload is returned for this HTTP code and so there is no JSON Schema listing.

C1.1c JSON Schema for the "deleteAssessmentLineItem" Operation Response Payload Validation for HTTP Codes (default,401,403,404,422,429,500)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerostergradebookservicev1p2-deleteassessmentlineitem-default-401-403-404-422-429-500-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "deleteAssessmentLineItem-default-401-403-404-422-429-500-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (deleteAssessmentLineItem-default-401-403-404-422-429-500-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech;  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "imsx_codeMajor" : {
            "description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
            "type" : "string",
            "enum" : [ "success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported" ]
        },
        "imsx_severity" : {
            "description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
            "type" : "string",
            "enum" : [ "status","warning","error","status","warning","error","status","warning","error" ]
        },
        "imsx_description" : {
            "description" : "Model Primitive Datatype = String. A human readable description supplied by the entity creating the status code information.",
            "type" : "string"
        },
        "imsx_CodeMinor" : {
            "description" : "The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.",
            "$ref" : "#/definitions/imsx_CodeMinorDType"
        }
    },
    "required" : [ "imsx_codeMajor","imsx_severity" ],
    "additionalProperties" : false,
    "definitions" : {
        "imsx_CodeMinorDType" : {
            "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorField" : {
                    "description" : "Each reported code minor status code.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/imsx_CodeMinorFieldDType"
                    }
                }
            },
            "required" : [ "imsx_codeMinorField" ],
            "additionalProperties" : false
        },
        "imsx_CodeMinorFieldDType" : {
            "description" : "This is the container for a single code minor status code.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorFieldName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
                    "type" : "string",
                    "default" : "TargetEndSystem"
                },
                "imsx_codeMinorFieldValue" : {
                    "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
                    "type" : "string",
                    "enum" : [ "fullsuccess","invalid_filter_field","invalid_selection_field","invaliddata","unauthorisedrequest","internal_server_error",
                                "server_busy","deletefailure","unknownobject","forbidden" ]
                }
            },
            "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
            "additionalProperties" : false
        }
    }
}
        

C1.2a JSON Schema for the "deleteAssessmentResult" Operation Request Payload Validation.

No request payload is sent for this delete request and so there is no JSON Schema listing.

C1.2b JSON Schema for the "deleteAssessmentResult" Operation Response Payload Validation for HTTP Codes (204)

No payload is returned for this HTTP code and so there is no JSON Schema listing.

C1.2c JSON Schema for the "deleteAssessmentResult" Operation Response Payload Validation for HTTP Codes (default,401,403,404,422,429,500)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerostergradebookservicev1p2-deleteassessmentresult-default-401-403-404-422-429-500-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "deleteAssessmentResult-default-401-403-404-422-429-500-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (deleteAssessmentResult-default-401-403-404-422-429-500-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech;  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "imsx_codeMajor" : {
            "description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
            "type" : "string",
            "enum" : [ "success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported" ]
        },
        "imsx_severity" : {
            "description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
            "type" : "string",
            "enum" : [ "status","warning","error","status","warning","error","status","warning","error" ]
        },
        "imsx_description" : {
            "description" : "Model Primitive Datatype = String. A human readable description supplied by the entity creating the status code information.",
            "type" : "string"
        },
        "imsx_CodeMinor" : {
            "description" : "The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.",
            "$ref" : "#/definitions/imsx_CodeMinorDType"
        }
    },
    "required" : [ "imsx_codeMajor","imsx_severity" ],
    "additionalProperties" : false,
    "definitions" : {
        "imsx_CodeMinorDType" : {
            "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorField" : {
                    "description" : "Each reported code minor status code.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/imsx_CodeMinorFieldDType"
                    }
                }
            },
            "required" : [ "imsx_codeMinorField" ],
            "additionalProperties" : false
        },
        "imsx_CodeMinorFieldDType" : {
            "description" : "This is the container for a single code minor status code.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorFieldName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
                    "type" : "string",
                    "default" : "TargetEndSystem"
                },
                "imsx_codeMinorFieldValue" : {
                    "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
                    "type" : "string",
                    "enum" : [ "fullsuccess","invalid_filter_field","invalid_selection_field","invaliddata","unauthorisedrequest","internal_server_error",
                                "server_busy","deletefailure","unknownobject","forbidden" ]
                }
            },
            "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
            "additionalProperties" : false
        }
    }
}
        

C1.3a JSON Schema for the "deleteCategory" Operation Request Payload Validation.

No request payload is sent for this delete request and so there is no JSON Schema listing.

C1.3b JSON Schema for the "deleteCategory" Operation Response Payload Validation for HTTP Codes (204)

No payload is returned for this HTTP code and so there is no JSON Schema listing.

C1.3c JSON Schema for the "deleteCategory" Operation Response Payload Validation for HTTP Codes (default,401,403,404,422,429,500)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerostergradebookservicev1p2-deletecategory-default-401-403-404-422-429-500-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "deleteCategory-default-401-403-404-422-429-500-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (deleteCategory-default-401-403-404-422-429-500-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech;  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "imsx_codeMajor" : {
            "description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
            "type" : "string",
            "enum" : [ "success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported" ]
        },
        "imsx_severity" : {
            "description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
            "type" : "string",
            "enum" : [ "status","warning","error","status","warning","error","status","warning","error" ]
        },
        "imsx_description" : {
            "description" : "Model Primitive Datatype = String. A human readable description supplied by the entity creating the status code information.",
            "type" : "string"
        },
        "imsx_CodeMinor" : {
            "description" : "The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.",
            "$ref" : "#/definitions/imsx_CodeMinorDType"
        }
    },
    "required" : [ "imsx_codeMajor","imsx_severity" ],
    "additionalProperties" : false,
    "definitions" : {
        "imsx_CodeMinorDType" : {
            "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorField" : {
                    "description" : "Each reported code minor status code.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/imsx_CodeMinorFieldDType"
                    }
                }
            },
            "required" : [ "imsx_codeMinorField" ],
            "additionalProperties" : false
        },
        "imsx_CodeMinorFieldDType" : {
            "description" : "This is the container for a single code minor status code.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorFieldName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
                    "type" : "string",
                    "default" : "TargetEndSystem"
                },
                "imsx_codeMinorFieldValue" : {
                    "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
                    "type" : "string",
                    "enum" : [ "fullsuccess","invalid_filter_field","invalid_selection_field","invaliddata","unauthorisedrequest","internal_server_error",
                                "server_busy","deletefailure","unknownobject","forbidden" ]
                }
            },
            "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
            "additionalProperties" : false
        }
    }
}
        

C1.4a JSON Schema for the "deleteLineItem" Operation Request Payload Validation.

No request payload is sent for this delete request and so there is no JSON Schema listing.

C1.4b JSON Schema for the "deleteLineItem" Operation Response Payload Validation for HTTP Codes (204)

No payload is returned for this HTTP code and so there is no JSON Schema listing.

C1.4c JSON Schema for the "deleteLineItem" Operation Response Payload Validation for HTTP Codes (default,401,403,404,422,429,500)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerostergradebookservicev1p2-deletelineitem-default-401-403-404-422-429-500-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "deleteLineItem-default-401-403-404-422-429-500-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (deleteLineItem-default-401-403-404-422-429-500-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech;  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "imsx_codeMajor" : {
            "description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
            "type" : "string",
            "enum" : [ "success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported" ]
        },
        "imsx_severity" : {
            "description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
            "type" : "string",
            "enum" : [ "status","warning","error","status","warning","error","status","warning","error" ]
        },
        "imsx_description" : {
            "description" : "Model Primitive Datatype = String. A human readable description supplied by the entity creating the status code information.",
            "type" : "string"
        },
        "imsx_CodeMinor" : {
            "description" : "The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.",
            "$ref" : "#/definitions/imsx_CodeMinorDType"
        }
    },
    "required" : [ "imsx_codeMajor","imsx_severity" ],
    "additionalProperties" : false,
    "definitions" : {
        "imsx_CodeMinorDType" : {
            "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorField" : {
                    "description" : "Each reported code minor status code.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/imsx_CodeMinorFieldDType"
                    }
                }
            },
            "required" : [ "imsx_codeMinorField" ],
            "additionalProperties" : false
        },
        "imsx_CodeMinorFieldDType" : {
            "description" : "This is the container for a single code minor status code.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorFieldName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
                    "type" : "string",
                    "default" : "TargetEndSystem"
                },
                "imsx_codeMinorFieldValue" : {
                    "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
                    "type" : "string",
                    "enum" : [ "fullsuccess","invalid_filter_field","invalid_selection_field","invaliddata","unauthorisedrequest","internal_server_error",
                                "server_busy","deletefailure","unknownobject","forbidden" ]
                }
            },
            "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
            "additionalProperties" : false
        }
    }
}
        

C1.5a JSON Schema for the "deleteResult" Operation Request Payload Validation.

No request payload is sent for this delete request and so there is no JSON Schema listing.

C1.5b JSON Schema for the "deleteResult" Operation Response Payload Validation for HTTP Codes (204)

No payload is returned for this HTTP code and so there is no JSON Schema listing.

C1.5c JSON Schema for the "deleteResult" Operation Response Payload Validation for HTTP Codes (default,401,403,404,422,429,500)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerostergradebookservicev1p2-deleteresult-default-401-403-404-422-429-500-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "deleteResult-default-401-403-404-422-429-500-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (deleteResult-default-401-403-404-422-429-500-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech;  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "imsx_codeMajor" : {
            "description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
            "type" : "string",
            "enum" : [ "success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported" ]
        },
        "imsx_severity" : {
            "description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
            "type" : "string",
            "enum" : [ "status","warning","error","status","warning","error","status","warning","error" ]
        },
        "imsx_description" : {
            "description" : "Model Primitive Datatype = String. A human readable description supplied by the entity creating the status code information.",
            "type" : "string"
        },
        "imsx_CodeMinor" : {
            "description" : "The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.",
            "$ref" : "#/definitions/imsx_CodeMinorDType"
        }
    },
    "required" : [ "imsx_codeMajor","imsx_severity" ],
    "additionalProperties" : false,
    "definitions" : {
        "imsx_CodeMinorDType" : {
            "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorField" : {
                    "description" : "Each reported code minor status code.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/imsx_CodeMinorFieldDType"
                    }
                }
            },
            "required" : [ "imsx_codeMinorField" ],
            "additionalProperties" : false
        },
        "imsx_CodeMinorFieldDType" : {
            "description" : "This is the container for a single code minor status code.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorFieldName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
                    "type" : "string",
                    "default" : "TargetEndSystem"
                },
                "imsx_codeMinorFieldValue" : {
                    "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
                    "type" : "string",
                    "enum" : [ "fullsuccess","invalid_filter_field","invalid_selection_field","invaliddata","unauthorisedrequest","internal_server_error",
                                "server_busy","deletefailure","unknownobject","forbidden" ]
                }
            },
            "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
            "additionalProperties" : false
        }
    }
}
        

C1.6a JSON Schema for the "deleteScoreScale" Operation Request Payload Validation.

No request payload is sent for this delete request and so there is no JSON Schema listing.

C1.6b JSON Schema for the "deleteScoreScale" Operation Response Payload Validation for HTTP Codes (204)

No payload is returned for this HTTP code and so there is no JSON Schema listing.

C1.6c JSON Schema for the "deleteScoreScale" Operation Response Payload Validation for HTTP Codes (default,401,403,404,422,429,500)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerostergradebookservicev1p2-deletescorescale-default-401-403-404-422-429-500-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "deleteScoreScale-default-401-403-404-422-429-500-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (deleteScoreScale-default-401-403-404-422-429-500-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech;  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "imsx_codeMajor" : {
            "description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
            "type" : "string",
            "enum" : [ "success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported" ]
        },
        "imsx_severity" : {
            "description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
            "type" : "string",
            "enum" : [ "status","warning","error","status","warning","error","status","warning","error" ]
        },
        "imsx_description" : {
            "description" : "Model Primitive Datatype = String. A human readable description supplied by the entity creating the status code information.",
            "type" : "string"
        },
        "imsx_CodeMinor" : {
            "description" : "The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.",
            "$ref" : "#/definitions/imsx_CodeMinorDType"
        }
    },
    "required" : [ "imsx_codeMajor","imsx_severity" ],
    "additionalProperties" : false,
    "definitions" : {
        "imsx_CodeMinorDType" : {
            "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorField" : {
                    "description" : "Each reported code minor status code.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/imsx_CodeMinorFieldDType"
                    }
                }
            },
            "required" : [ "imsx_codeMinorField" ],
            "additionalProperties" : false
        },
        "imsx_CodeMinorFieldDType" : {
            "description" : "This is the container for a single code minor status code.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorFieldName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
                    "type" : "string",
                    "default" : "TargetEndSystem"
                },
                "imsx_codeMinorFieldValue" : {
                    "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
                    "type" : "string",
                    "enum" : [ "fullsuccess","invalid_filter_field","invalid_selection_field","invaliddata","unauthorisedrequest","internal_server_error",
                                "server_busy","deletefailure","unknownobject","forbidden" ]
                }
            },
            "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
            "additionalProperties" : false
        }
    }
}
        

C1.7a JSON Schema for the "getAllAssessmentLineItems" Operation Request Payload Validation.

No request parameters are sent for this request and so there is no JSON Schema listing.

C1.7b JSON Schema for the "getAllAssessmentLineItems" Operation Response Payload Validation for HTTP Codes (200)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerostergradebookservicev1p2-getallassessmentlineitems-200-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getAllAssessmentLineItems-200-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getAllAssessmentLineItems-200-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech;  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "assessmentLineItems" : {
            "description" : "The collection of assessment lineItem instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
            "type" : "array",
            "minItems" : 0,
            "items" : {
                "$ref" : "#/definitions/AssessmentLineItemDType"
            }
        }
    },
    "additionalProperties" : false,
    "definitions" : {
        "AssessmentLineItemDType" : {
            "description" : "This is the container for the definition of an assessment lineItem. An assessment lineItem is a collection of results for a set of students who are completing an assignment.",
            "type" : "object",
            "properties" : {
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                    "type" : "string"
                },
                "status" : {
                    "description" : "All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                    "type" : "string",
                    "enum" : [ "active","tobedeleted" ]
                },
                "dateLastModified" : {
                    "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                    "type" : "string",
                    "format" : "date-time"
                },
                "metadata" : {
                    "description" : "All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.",
                    "$ref" : "#/definitions/MetadataDType"
                },
                "title" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The title, human readable, for the assessment lineItem.  This should allow the assessment lineItem to be distinguished from its peer assessment lineItems.",
                    "type" : "string"
                },
                "description" : {
                    "description" : "Model Primitive Datatype = String. A human readable description of the usage of the assessment lineItem.",
                    "type" : "string"
                },
                "class" : {
                    "description" : "The GUID of the class to which the assessment lineItem has been assigned. Note that an assessment LineItem MAY be assigned tio a class.",
                    "$ref" : "#/definitions/ClassGUIDRefDType"
                },
                "parentAssessmentLineItem" : {
                    "description" : "The GUID of the parent assessment lineItem. This enables the assessment lineItems to be chained together in a parent/child hierarchy.",
                    "$ref" : "#/definitions/AssessmentLineItemGUIDRefDType"
                },
                "scoreScale" : {
                    "description" : "The GUID of the score scale to be used for the lineItem. This attribute was added in the OR 1.2 release.",
                    "$ref" : "#/definitions/ScoreScaleGUIDRefDType"
                },
                "resultValueMin" : {
                    "description" : "Model Primitive Datatype = Float. The minimum value (numeric) that can be assigned to the score attribute in a result. The score scale mapping should be used to map to other scores.",
                    "type" : "number",
                    "format" : "float"
                },
                "resultValueMax" : {
                    "description" : "Model Primitive Datatype = Float. The maximum value (numeric) that can be assigned to the score attribute in a result. The score scale mapping should be used to map to other scores.",
                    "type" : "number",
                    "format" : "float"
                },
                "learningObjectiveSet" : {
                    "description" : "The set of identifiers for the learning objectives to which this assessment is aligned. Any number groups of learning objectives can be assigned.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/LearningObjectiveSetDType"
                    }
                }
            },
            "required" : [ "sourcedId","status","dateLastModified","title" ],
            "additionalProperties" : false
        },
        "AssessmentLineItemGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'AssessmentLineItem' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. an 'assessmentLineItem'.",
                    "type" : "string",
                    "enum" : [ "assessmentLineItem" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "ClassGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Class' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'class'.",
                    "type" : "string",
                    "enum" : [ "class" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "LearningObjectiveSetDType" : {
            "description" : "This is the container for the set of learning objective identifiers that are from a single source responsible for creating those identifiers.",
            "type" : "object",
            "properties" : {
                "source" : {
                    "description" : "The source responsible for creating the learning objective identifiers. The permitted values are from an extensible vocabulary.",
                    "anyOf" : [
                            {
                                "description" : "Model Primitive Datatype = NormalizedString.",
                                "type" : "string",
                                "pattern" : "^/(?!case$)(?!unknown$)[a-z0-9]+$"
                            },
                            {
                                "type" : "string",
                                "enum" : [ "case","unknown" ]
                            }
                    ]
                },
                "learningObjectiveIds" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The set of unique identifiers for the associated learning objectives. If these are CASE identifiers they MUST be valid UUIDs.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "type" : "string"
                    }
                }
            },
            "required" : [ "source","learningObjectiveIds" ],
            "additionalProperties" : false
        },
        "MetadataDType" : {
            "description" : "The container for the proprietary extensions.",
            "type" : "object",
            "properties" : {

            },
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        },
        "ScoreScaleGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'ScoreScale' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'scoreScale'.",
                    "type" : "string",
                    "enum" : [ "scoreScale" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        }
    }
}
        

C1.7c JSON Schema for the "getAllAssessmentLineItems" Operation Response Payload Validation for HTTP Codes (default,400,401,403,422,429,500)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerostergradebookservicev1p2-getallassessmentlineitems-default-400-401-403-422-429-500-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getAllAssessmentLineItems-default-400-401-403-422-429-500-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getAllAssessmentLineItems-default-400-401-403-422-429-500-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech;  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "imsx_codeMajor" : {
            "description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
            "type" : "string",
            "enum" : [ "success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported" ]
        },
        "imsx_severity" : {
            "description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
            "type" : "string",
            "enum" : [ "status","warning","error","status","warning","error","status","warning","error" ]
        },
        "imsx_description" : {
            "description" : "Model Primitive Datatype = String. A human readable description supplied by the entity creating the status code information.",
            "type" : "string"
        },
        "imsx_CodeMinor" : {
            "description" : "The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.",
            "$ref" : "#/definitions/imsx_CodeMinorDType"
        }
    },
    "required" : [ "imsx_codeMajor","imsx_severity" ],
    "additionalProperties" : false,
    "definitions" : {
        "imsx_CodeMinorDType" : {
            "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorField" : {
                    "description" : "Each reported code minor status code.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/imsx_CodeMinorFieldDType"
                    }
                }
            },
            "required" : [ "imsx_codeMinorField" ],
            "additionalProperties" : false
        },
        "imsx_CodeMinorFieldDType" : {
            "description" : "This is the container for a single code minor status code.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorFieldName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
                    "type" : "string",
                    "default" : "TargetEndSystem"
                },
                "imsx_codeMinorFieldValue" : {
                    "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
                    "type" : "string",
                    "enum" : [ "fullsuccess","invalid_filter_field","invalid_selection_field","invaliddata","unauthorisedrequest","internal_server_error",
                                "server_busy","deletefailure","unknownobject","forbidden" ]
                }
            },
            "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
            "additionalProperties" : false
        }
    }
}
        

C1.8a JSON Schema for the "getAllAssessmentResults" Operation Request Payload Validation.

No request parameters are sent for this request and so there is no JSON Schema listing.

C1.8b JSON Schema for the "getAllAssessmentResults" Operation Response Payload Validation for HTTP Codes (200)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerostergradebookservicev1p2-getallassessmentresults-200-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getAllAssessmentResults-200-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getAllAssessmentResults-200-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech;  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "assessmentResults" : {
            "description" : "The collection of assessment result instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
            "type" : "array",
            "minItems" : 0,
            "items" : {
                "$ref" : "#/definitions/AssessmentResultDType"
            }
        }
    },
    "additionalProperties" : false,
    "definitions" : {
        "AssessmentLineItemGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'AssessmentLineItem' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. an 'assessmentLineItem'.",
                    "type" : "string",
                    "enum" : [ "assessmentLineItem" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "AssessmentResultDType" : {
            "description" : "This is the container for the AssessmentResult record.  An assessment result consists of the assigned score plus the context for that score.",
            "type" : "object",
            "properties" : {
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                    "type" : "string"
                },
                "status" : {
                    "description" : "All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                    "type" : "string",
                    "enum" : [ "active","tobedeleted" ]
                },
                "dateLastModified" : {
                    "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                    "type" : "string",
                    "format" : "date-time"
                },
                "metadata" : {
                    "description" : "All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.",
                    "$ref" : "#/definitions/MetadataDType"
                },
                "assessmentLineItem" : {
                    "description" : "The GUID of the assessment lineItem to which the assessment result is aligned.",
                    "$ref" : "#/definitions/AssessmentLineItemGUIDRefDType"
                },
                "student" : {
                    "description" : "The GUID of the student for whom the assessment result is assigned.",
                    "$ref" : "#/definitions/UserGUIDRefDType"
                },
                "score" : {
                    "description" : "Model Primitive Datatype = Float. The score for the result. If a scoreScale is assigned then the value must align with the scale.",
                    "type" : "number",
                    "format" : "float"
                },
                "textScore" : {
                    "description" : "Model Primitive Datatype = NormalizedString. An optional non-numeric score value. If a scoreScale is assigned then the value must align with the scale.",
                    "type" : "string"
                },
                "scoreDate" : {
                    "description" : "Model Primitive Datatype = Date. The date at which the score is assigned or there is an update to the result e.g. change in the 'scoreStatus'.. The format is YYYY-MM-DD as defined in [ISO 8601].",
                    "type" : "string",
                    "format" : "date"
                },
                "scoreScale" : {
                    "description" : "The GUID of the scoreScale against which the result is aligned.",
                    "$ref" : "#/definitions/ScoreScaleGUIDRefDType"
                },
                "scorePercentile" : {
                    "description" : "Model Primitive Datatype = Float. The percentile rank of a score is the percentage of scores in its frequency distribution that are equal to or lower than it.",
                    "type" : "number",
                    "format" : "float"
                },
                "scoreStatus" : {
                    "description" : "The status of the score. The value is from an extensible enumerated vocabulary.",
                    "anyOf" : [
                            {
                                "description" : "Model Primitive Datatype = NormalizedString.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-zA-Z0-9\\.\\-_]+"
                            },
                            {
                                "type" : "string",
                                "enum" : [ "exempt","fully graded","not submitted","partially graded","submitted" ]
                            }
                    ]
                },
                "comment" : {
                    "description" : "Model Primitive Datatype = String. A human readable comment about the score.",
                    "type" : "string"
                },
                "learningObjectiveSet" : {
                    "description" : "The set of identifiers for the learning objectives to which this result is aligned. Any number groups of learning objectives can be assigned.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/LearningObjectiveScoreSetDType"
                    }
                },
                "inProgress" : {
                    "description" : "This is used to indicate that the associated work activity has been assigned and student's work product is not yet expected to have been submitted.",
                    "type" : "string",
                    "enum" : [ "true","false" ]
                },
                "incomplete" : {
                    "description" : "This is used to indicate that the student's work product has been submitted but it is deemed incomplete by the teacher.",
                    "type" : "string",
                    "enum" : [ "true","false" ]
                },
                "late" : {
                    "description" : "This is used to indicate that the student's work product is either past due or it has been submitted past the due date. The score on this result may be impacted as as result of this flag.",
                    "type" : "string",
                    "enum" : [ "true","false" ]
                },
                "missing" : {
                    "description" : "This is used to indicate that the student's work product as not been submitted.",
                    "type" : "string",
                    "enum" : [ "true","false" ]
                }
            },
            "required" : [ "sourcedId","status","dateLastModified","assessmentLineItem","student","scoreDate","scoreStatus" ],
            "additionalProperties" : false
        },
        "LearningObjectiveResultsDType" : {
            "description" : "This is the container for a learning objective identifier. This also allows a mastery score to be aligned with the learning objective.",
            "type" : "object",
            "properties" : {
                "learningObjectiveId" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The unique identifier for the associated learning objective. If this is a CASE identifier it MUST be a valid UUID.",
                    "type" : "string"
                },
                "score" : {
                    "description" : "Model Primitive Datatype = Float. The optional mastery score supplied as a numeric value. ",
                    "type" : "number",
                    "format" : "float"
                },
                "textScore" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The optional mastery score supplied in a non-numeric form. ",
                    "type" : "string"
                }
            },
            "required" : [ "learningObjectiveId" ],
            "additionalProperties" : false
        },
        "LearningObjectiveScoreSetDType" : {
            "description" : "This is the container for the set of learning objective identifiers that are from a single source responsible for creating those identifiers. This also allows a mastery score to be aligned with a learning objective.",
            "type" : "object",
            "properties" : {
                "source" : {
                    "description" : "The source responsible for creating the learning objective identifiers. The permitted values are from an extensible vocabulary.",
                    "anyOf" : [
                            {
                                "description" : "Model Primitive Datatype = NormalizedString.",
                                "type" : "string",
                                "pattern" : "^/(?!case$)(?!unknown$)[a-z0-9]+$"
                            },
                            {
                                "type" : "string",
                                "enum" : [ "case","unknown" ]
                            }
                    ]
                },
                "learningObjectiveResults" : {
                    "description" : "The set of unique identifiers for the associated learning objectives (these may have alignment with a mastery score). If these are CASE identifiers they MUST be valid UUIDs.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/LearningObjectiveResultsDType"
                    }
                }
            },
            "required" : [ "source","learningObjectiveResults" ],
            "additionalProperties" : false
        },
        "MetadataDType" : {
            "description" : "The container for the proprietary extensions.",
            "type" : "object",
            "properties" : {

            },
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        },
        "ScoreScaleGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'ScoreScale' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'scoreScale'.",
                    "type" : "string",
                    "enum" : [ "scoreScale" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "UserGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'User' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'user'.",
                    "type" : "string",
                    "enum" : [ "user" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        }
    }
}
        

C1.8c JSON Schema for the "getAllAssessmentResults" Operation Response Payload Validation for HTTP Codes (default,400,401,403,422,429,500)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerostergradebookservicev1p2-getallassessmentresults-default-400-401-403-422-429-500-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getAllAssessmentResults-default-400-401-403-422-429-500-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getAllAssessmentResults-default-400-401-403-422-429-500-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech;  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "imsx_codeMajor" : {
            "description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
            "type" : "string",
            "enum" : [ "success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported" ]
        },
        "imsx_severity" : {
            "description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
            "type" : "string",
            "enum" : [ "status","warning","error","status","warning","error","status","warning","error" ]
        },
        "imsx_description" : {
            "description" : "Model Primitive Datatype = String. A human readable description supplied by the entity creating the status code information.",
            "type" : "string"
        },
        "imsx_CodeMinor" : {
            "description" : "The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.",
            "$ref" : "#/definitions/imsx_CodeMinorDType"
        }
    },
    "required" : [ "imsx_codeMajor","imsx_severity" ],
    "additionalProperties" : false,
    "definitions" : {
        "imsx_CodeMinorDType" : {
            "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorField" : {
                    "description" : "Each reported code minor status code.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/imsx_CodeMinorFieldDType"
                    }
                }
            },
            "required" : [ "imsx_codeMinorField" ],
            "additionalProperties" : false
        },
        "imsx_CodeMinorFieldDType" : {
            "description" : "This is the container for a single code minor status code.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorFieldName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
                    "type" : "string",
                    "default" : "TargetEndSystem"
                },
                "imsx_codeMinorFieldValue" : {
                    "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
                    "type" : "string",
                    "enum" : [ "fullsuccess","invalid_filter_field","invalid_selection_field","invaliddata","unauthorisedrequest","internal_server_error",
                                "server_busy","deletefailure","unknownobject","forbidden" ]
                }
            },
            "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
            "additionalProperties" : false
        }
    }
}
        

C1.9a JSON Schema for the "getAllCategories" Operation Request Payload Validation.

No request parameters are sent for this request and so there is no JSON Schema listing.

C1.9b JSON Schema for the "getAllCategories" Operation Response Payload Validation for HTTP Codes (200)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerostergradebookservicev1p2-getallcategories-200-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getAllCategories-200-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getAllCategories-200-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech;  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "categories" : {
            "description" : "The collection of category instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
            "type" : "array",
            "minItems" : 0,
            "items" : {
                "$ref" : "#/definitions/CategoryDType"
            }
        }
    },
    "additionalProperties" : false,
    "definitions" : {
        "CategoryDType" : {
            "description" : "A Category is the name given to a grouping of line items (line items being equivalent to assignments which students will complete). ",
            "type" : "object",
            "properties" : {
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                    "type" : "string"
                },
                "status" : {
                    "description" : "All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                    "type" : "string",
                    "enum" : [ "active","tobedeleted" ]
                },
                "dateLastModified" : {
                    "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                    "type" : "string",
                    "format" : "date-time"
                },
                "metadata" : {
                    "description" : "All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.",
                    "$ref" : "#/definitions/MetadataDType"
                },
                "title" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The human readable title for the category.",
                    "type" : "string"
                },
                "weight" : {
                    "description" : "Model Primitive Datatype = Float. Total weight of this grading category in calculation of the course final score.",
                    "type" : "number",
                    "format" : "float"
                }
            },
            "required" : [ "sourcedId","status","dateLastModified","title" ],
            "additionalProperties" : false
        },
        "MetadataDType" : {
            "description" : "The container for the proprietary extensions.",
            "type" : "object",
            "properties" : {

            },
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        }
    }
}
        

C1.9c JSON Schema for the "getAllCategories" Operation Response Payload Validation for HTTP Codes (default,400,401,403,422,429,500)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerostergradebookservicev1p2-getallcategories-default-400-401-403-422-429-500-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getAllCategories-default-400-401-403-422-429-500-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getAllCategories-default-400-401-403-422-429-500-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech;  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "imsx_codeMajor" : {
            "description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
            "type" : "string",
            "enum" : [ "success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported" ]
        },
        "imsx_severity" : {
            "description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
            "type" : "string",
            "enum" : [ "status","warning","error","status","warning","error","status","warning","error" ]
        },
        "imsx_description" : {
            "description" : "Model Primitive Datatype = String. A human readable description supplied by the entity creating the status code information.",
            "type" : "string"
        },
        "imsx_CodeMinor" : {
            "description" : "The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.",
            "$ref" : "#/definitions/imsx_CodeMinorDType"
        }
    },
    "required" : [ "imsx_codeMajor","imsx_severity" ],
    "additionalProperties" : false,
    "definitions" : {
        "imsx_CodeMinorDType" : {
            "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorField" : {
                    "description" : "Each reported code minor status code.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/imsx_CodeMinorFieldDType"
                    }
                }
            },
            "required" : [ "imsx_codeMinorField" ],
            "additionalProperties" : false
        },
        "imsx_CodeMinorFieldDType" : {
            "description" : "This is the container for a single code minor status code.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorFieldName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
                    "type" : "string",
                    "default" : "TargetEndSystem"
                },
                "imsx_codeMinorFieldValue" : {
                    "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
                    "type" : "string",
                    "enum" : [ "fullsuccess","invalid_filter_field","invalid_selection_field","invaliddata","unauthorisedrequest","internal_server_error",
                                "server_busy","deletefailure","unknownobject","forbidden" ]
                }
            },
            "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
            "additionalProperties" : false
        }
    }
}
        

C1.10a JSON Schema for the "getAllLineItems" Operation Request Payload Validation.

No request parameters are sent for this request and so there is no JSON Schema listing.

C1.10b JSON Schema for the "getAllLineItems" Operation Response Payload Validation for HTTP Codes (200)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerostergradebookservicev1p2-getalllineitems-200-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getAllLineItems-200-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getAllLineItems-200-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech;  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "lineItems" : {
            "description" : "The collection of lineItem instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
            "type" : "array",
            "minItems" : 0,
            "items" : {
                "$ref" : "#/definitions/LineItemDType"
            }
        }
    },
    "additionalProperties" : false,
    "definitions" : {
        "AcadSessionGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Academic Session' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. an 'academicSession'.",
                    "type" : "string",
                    "enum" : [ "academicSession" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "CategoryGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Category' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'category'.",
                    "type" : "string",
                    "enum" : [ "category" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "ClassGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Class' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'class'.",
                    "type" : "string",
                    "enum" : [ "class" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "LearningObjectiveSetDType" : {
            "description" : "This is the container for the set of learning objective identifiers that are from a single source responsible for creating those identifiers.",
            "type" : "object",
            "properties" : {
                "source" : {
                    "description" : "The source responsible for creating the learning objective identifiers. The permitted values are from an extensible vocabulary.",
                    "anyOf" : [
                            {
                                "description" : "Model Primitive Datatype = NormalizedString.",
                                "type" : "string",
                                "pattern" : "^/(?!case$)(?!unknown$)[a-z0-9]+$"
                            },
                            {
                                "type" : "string",
                                "enum" : [ "case","unknown" ]
                            }
                    ]
                },
                "learningObjectiveIds" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The set of unique identifiers for the associated learning objectives. If these are CASE identifiers they MUST be valid UUIDs.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "type" : "string"
                    }
                }
            },
            "required" : [ "source","learningObjectiveIds" ],
            "additionalProperties" : false
        },
        "LineItemDType" : {
            "description" : "This is the container for the definition of a lineItem. A lineItem is a collection of results for a set of students who are completing an assignment as part of a class at a school.",
            "type" : "object",
            "properties" : {
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                    "type" : "string"
                },
                "status" : {
                    "description" : "All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                    "type" : "string",
                    "enum" : [ "active","tobedeleted" ]
                },
                "dateLastModified" : {
                    "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                    "type" : "string",
                    "format" : "date-time"
                },
                "metadata" : {
                    "description" : "All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.",
                    "$ref" : "#/definitions/MetadataDType"
                },
                "title" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The title, human readable, for the lineItem.  This should allow the lineItem to be distinguished from its peer lineItems.",
                    "type" : "string"
                },
                "description" : {
                    "description" : "Model Primitive Datatype = String. A human readable description of the usage of the lineItem.",
                    "type" : "string"
                },
                "assignDate" : {
                    "description" : "Model Primitive Datatype = DateTime. The date/time the activity being addressed by the lineItem was assigned to the student. This has a format as defined in [ISO 8601].",
                    "type" : "string",
                    "format" : "date-time"
                },
                "dueDate" : {
                    "description" : "Model Primitive Datatype = DateTime. The date/time by which the assignment must be completed and submitted. This has the dateTime format as defined in [ISO 8601].",
                    "type" : "string",
                    "format" : "date-time"
                },
                "class" : {
                    "description" : "The GUID of the class to which the lineItem has been assigned.",
                    "$ref" : "#/definitions/ClassGUIDRefDType"
                },
                "school" : {
                    "description" : "The GUID of the school for whom the lineItem has been assigned. This attribute was added in the OR 1.2 release.",
                    "$ref" : "#/definitions/OrgGUIDRefDType"
                },
                "category" : {
                    "description" : "The GUID of the category to which the lineItem has been assigned.",
                    "$ref" : "#/definitions/CategoryGUIDRefDType"
                },
                "gradingPeriod" : {
                    "description" : "The GUID of the grading period for the lineItem. This attribute was added in the OR 1.2 release.",
                    "$ref" : "#/definitions/AcadSessionGUIDRefDType"
                },
                "academicSession" : {
                    "description" : "The GUID of the academic session for the lineItem. This should NOT be defined if the 'gradingPeriod' attribute has been used.",
                    "$ref" : "#/definitions/AcadSessionGUIDRefDType"
                },
                "scoreScale" : {
                    "description" : "The GUID of the score scale to be used for the lineItem. This attribute was added in the OR 1.2 release.",
                    "$ref" : "#/definitions/ScoreScaleGUIDRefDType"
                },
                "resultValueMin" : {
                    "description" : "Model Primitive Datatype = Float. The minimum value (numeric) that can be assigned to the score attribute in a result. The score scale mapping should be used to map to other scores.",
                    "type" : "number",
                    "format" : "float"
                },
                "resultValueMax" : {
                    "description" : "Model Primitive Datatype = Float. The maximum value (numeric) that can be assigned to the score attribute in a result. The score scale mapping should be used to map to other scores.",
                    "type" : "number",
                    "format" : "float"
                },
                "learningObjectiveSet" : {
                    "description" : "The set of identifiers for the learning objectives to which this assessment is aligned. Any number groups of learning objectives can be assigned.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/LearningObjectiveSetDType"
                    }
                }
            },
            "required" : [ "sourcedId","status","dateLastModified","title","assignDate","dueDate","class","school","category" ],
            "additionalProperties" : false
        },
        "MetadataDType" : {
            "description" : "The container for the proprietary extensions.",
            "type" : "object",
            "properties" : {

            },
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        },
        "OrgGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Org' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. an 'org'.",
                    "type" : "string",
                    "enum" : [ "org" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "ScoreScaleGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'ScoreScale' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'scoreScale'.",
                    "type" : "string",
                    "enum" : [ "scoreScale" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        }
    }
}
        

C1.10c JSON Schema for the "getAllLineItems" Operation Response Payload Validation for HTTP Codes (default,400,401,403,422,429,500)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerostergradebookservicev1p2-getalllineitems-default-400-401-403-422-429-500-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getAllLineItems-default-400-401-403-422-429-500-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getAllLineItems-default-400-401-403-422-429-500-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech;  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "imsx_codeMajor" : {
            "description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
            "type" : "string",
            "enum" : [ "success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported" ]
        },
        "imsx_severity" : {
            "description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
            "type" : "string",
            "enum" : [ "status","warning","error","status","warning","error","status","warning","error" ]
        },
        "imsx_description" : {
            "description" : "Model Primitive Datatype = String. A human readable description supplied by the entity creating the status code information.",
            "type" : "string"
        },
        "imsx_CodeMinor" : {
            "description" : "The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.",
            "$ref" : "#/definitions/imsx_CodeMinorDType"
        }
    },
    "required" : [ "imsx_codeMajor","imsx_severity" ],
    "additionalProperties" : false,
    "definitions" : {
        "imsx_CodeMinorDType" : {
            "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorField" : {
                    "description" : "Each reported code minor status code.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/imsx_CodeMinorFieldDType"
                    }
                }
            },
            "required" : [ "imsx_codeMinorField" ],
            "additionalProperties" : false
        },
        "imsx_CodeMinorFieldDType" : {
            "description" : "This is the container for a single code minor status code.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorFieldName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
                    "type" : "string",
                    "default" : "TargetEndSystem"
                },
                "imsx_codeMinorFieldValue" : {
                    "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
                    "type" : "string",
                    "enum" : [ "fullsuccess","invalid_filter_field","invalid_selection_field","invaliddata","unauthorisedrequest","internal_server_error",
                                "server_busy","deletefailure","unknownobject","forbidden" ]
                }
            },
            "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
            "additionalProperties" : false
        }
    }
}
        

C1.11a JSON Schema for the "getAllResults" Operation Request Payload Validation.

No request parameters are sent for this request and so there is no JSON Schema listing.

C1.11b JSON Schema for the "getAllResults" Operation Response Payload Validation for HTTP Codes (200)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerostergradebookservicev1p2-getallresults-200-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getAllResults-200-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getAllResults-200-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech;  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "results" : {
            "description" : "The collection of result instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
            "type" : "array",
            "minItems" : 0,
            "items" : {
                "$ref" : "#/definitions/ResultDType"
            }
        }
    },
    "additionalProperties" : false,
    "definitions" : {
        "ClassGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Class' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'class'.",
                    "type" : "string",
                    "enum" : [ "class" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "LearningObjectiveResultsDType" : {
            "description" : "This is the container for a learning objective identifier. This also allows a mastery score to be aligned with the learning objective.",
            "type" : "object",
            "properties" : {
                "learningObjectiveId" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The unique identifier for the associated learning objective. If this is a CASE identifier it MUST be a valid UUID.",
                    "type" : "string"
                },
                "score" : {
                    "description" : "Model Primitive Datatype = Float. The optional mastery score supplied as a numeric value. ",
                    "type" : "number",
                    "format" : "float"
                },
                "textScore" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The optional mastery score supplied in a non-numeric form. ",
                    "type" : "string"
                }
            },
            "required" : [ "learningObjectiveId" ],
            "additionalProperties" : false
        },
        "LearningObjectiveScoreSetDType" : {
            "description" : "This is the container for the set of learning objective identifiers that are from a single source responsible for creating those identifiers. This also allows a mastery score to be aligned with a learning objective.",
            "type" : "object",
            "properties" : {
                "source" : {
                    "description" : "The source responsible for creating the learning objective identifiers. The permitted values are from an extensible vocabulary.",
                    "anyOf" : [
                            {
                                "description" : "Model Primitive Datatype = NormalizedString.",
                                "type" : "string",
                                "pattern" : "^/(?!case$)(?!unknown$)[a-z0-9]+$"
                            },
                            {
                                "type" : "string",
                                "enum" : [ "case","unknown" ]
                            }
                    ]
                },
                "learningObjectiveResults" : {
                    "description" : "The set of unique identifiers for the associated learning objectives (these may have alignment with a mastery score). If these are CASE identifiers they MUST be valid UUIDs.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/LearningObjectiveResultsDType"
                    }
                }
            },
            "required" : [ "source","learningObjectiveResults" ],
            "additionalProperties" : false
        },
        "LineItemGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'LineItem' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'lineItem'.",
                    "type" : "string",
                    "enum" : [ "lineItem" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "MetadataDType" : {
            "description" : "The container for the proprietary extensions.",
            "type" : "object",
            "properties" : {

            },
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        },
        "ResultDType" : {
            "description" : "This is the container for the Result record.  A result consists of the assigned score plus the context for that score.",
            "type" : "object",
            "properties" : {
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                    "type" : "string"
                },
                "status" : {
                    "description" : "All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                    "type" : "string",
                    "enum" : [ "active","tobedeleted" ]
                },
                "dateLastModified" : {
                    "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                    "type" : "string",
                    "format" : "date-time"
                },
                "metadata" : {
                    "description" : "All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.",
                    "$ref" : "#/definitions/MetadataDType"
                },
                "lineItem" : {
                    "description" : "The GUID of the lineItem to which the result is aligned.",
                    "$ref" : "#/definitions/LineItemGUIDRefDType"
                },
                "student" : {
                    "description" : "The GUID of the student for whom the result is assigned.",
                    "$ref" : "#/definitions/UserGUIDRefDType"
                },
                "class" : {
                    "description" : "The GUID of the class to which the result is aligned.",
                    "$ref" : "#/definitions/ClassGUIDRefDType"
                },
                "scoreScale" : {
                    "description" : "The GUID of the scoreScale against which the result is aligned.",
                    "$ref" : "#/definitions/ScoreScaleGUIDRefDType"
                },
                "scoreStatus" : {
                    "description" : "The status of the score. The value is from an extensible enumerated vocabulary.",
                    "anyOf" : [
                            {
                                "description" : "Model Primitive Datatype = NormalizedString.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-zA-Z0-9\\.\\-_]+"
                            },
                            {
                                "type" : "string",
                                "enum" : [ "exempt","fully graded","not submitted","partially graded","submitted" ]
                            }
                    ]
                },
                "score" : {
                    "description" : "Model Primitive Datatype = Float. The score for the result. If a scoreScale is assigned then the value must align with the scale.",
                    "type" : "number",
                    "format" : "float"
                },
                "textScore" : {
                    "description" : "Model Primitive Datatype = NormalizedString. An optional non-numeric score value. If a scoreScale is assigned then the value must align with the scale. This attribute was added in OR 1.2.",
                    "type" : "string"
                },
                "scoreDate" : {
                    "description" : "Model Primitive Datatype = Date. The date at which the score is assigned or there is an update to the result e.g. change in the 'scoreStatus'. The format is YYYY-MM-DD as defined in [ISO 8601].",
                    "type" : "string",
                    "format" : "date"
                },
                "comment" : {
                    "description" : "Model Primitive Datatype = String. A human readable comment about the score.",
                    "type" : "string"
                },
                "learningObjectiveSet" : {
                    "description" : "The set of identifiers for the learning objectives to which this result is aligned. Any number groups of learning objectives can be assigned.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/LearningObjectiveScoreSetDType"
                    }
                },
                "inProgress" : {
                    "description" : "This is used to indicate that the associated work activity has been assigned and student's work product is not yet expected to have been submitted.",
                    "type" : "string",
                    "enum" : [ "true","false" ]
                },
                "incomplete" : {
                    "description" : "This is used to indicate that the student's work product has been submitted but it is deemed incomplete by the teacher.",
                    "type" : "string",
                    "enum" : [ "true","false" ]
                },
                "late" : {
                    "description" : "This is used to indicate that the student's work product is either past due or it has been submitted past the due date. The score on this result may be impacted as as result of this flag.",
                    "type" : "string",
                    "enum" : [ "true","false" ]
                },
                "missing" : {
                    "description" : "This is used to indicate that the student's work product as not been submitted.",
                    "type" : "string",
                    "enum" : [ "true","false" ]
                }
            },
            "required" : [ "sourcedId","status","dateLastModified","lineItem","student","scoreStatus","scoreDate" ],
            "additionalProperties" : false
        },
        "ScoreScaleGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'ScoreScale' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'scoreScale'.",
                    "type" : "string",
                    "enum" : [ "scoreScale" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "UserGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'User' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'user'.",
                    "type" : "string",
                    "enum" : [ "user" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        }
    }
}
        

C1.11c JSON Schema for the "getAllResults" Operation Response Payload Validation for HTTP Codes (default,400,401,403,422,429,500)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerostergradebookservicev1p2-getallresults-default-400-401-403-422-429-500-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getAllResults-default-400-401-403-422-429-500-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getAllResults-default-400-401-403-422-429-500-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech;  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "imsx_codeMajor" : {
            "description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
            "type" : "string",
            "enum" : [ "success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported" ]
        },
        "imsx_severity" : {
            "description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
            "type" : "string",
            "enum" : [ "status","warning","error","status","warning","error","status","warning","error" ]
        },
        "imsx_description" : {
            "description" : "Model Primitive Datatype = String. A human readable description supplied by the entity creating the status code information.",
            "type" : "string"
        },
        "imsx_CodeMinor" : {
            "description" : "The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.",
            "$ref" : "#/definitions/imsx_CodeMinorDType"
        }
    },
    "required" : [ "imsx_codeMajor","imsx_severity" ],
    "additionalProperties" : false,
    "definitions" : {
        "imsx_CodeMinorDType" : {
            "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorField" : {
                    "description" : "Each reported code minor status code.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/imsx_CodeMinorFieldDType"
                    }
                }
            },
            "required" : [ "imsx_codeMinorField" ],
            "additionalProperties" : false
        },
        "imsx_CodeMinorFieldDType" : {
            "description" : "This is the container for a single code minor status code.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorFieldName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
                    "type" : "string",
                    "default" : "TargetEndSystem"
                },
                "imsx_codeMinorFieldValue" : {
                    "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
                    "type" : "string",
                    "enum" : [ "fullsuccess","invalid_filter_field","invalid_selection_field","invaliddata","unauthorisedrequest","internal_server_error",
                                "server_busy","deletefailure","unknownobject","forbidden" ]
                }
            },
            "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
            "additionalProperties" : false
        }
    }
}
        

C1.12a JSON Schema for the "getAllScoreScales" Operation Request Payload Validation.

No request parameters are sent for this request and so there is no JSON Schema listing.

C1.12b JSON Schema for the "getAllScoreScales" Operation Response Payload Validation for HTTP Codes (200)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerostergradebookservicev1p2-getallscorescales-200-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getAllScoreScales-200-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getAllScoreScales-200-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech;  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "scoreScales" : {
            "description" : "The collection of scoreScale instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
            "type" : "array",
            "minItems" : 0,
            "items" : {
                "$ref" : "#/definitions/ScoreScaleDType"
            }
        }
    },
    "additionalProperties" : false,
    "definitions" : {
        "ClassGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Class' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'class'.",
                    "type" : "string",
                    "enum" : [ "class" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "CourseGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Course' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'course'.",
                    "type" : "string",
                    "enum" : [ "course" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "MetadataDType" : {
            "description" : "The container for the proprietary extensions.",
            "type" : "object",
            "properties" : {

            },
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        },
        "ScoreScaleDType" : {
            "description" : "The container for the definition Score Scale mapping i.e. the relationship between two score scales.",
            "type" : "object",
            "properties" : {
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                    "type" : "string"
                },
                "status" : {
                    "description" : "All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                    "type" : "string",
                    "enum" : [ "active","tobedeleted" ]
                },
                "dateLastModified" : {
                    "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                    "type" : "string",
                    "format" : "date-time"
                },
                "metadata" : {
                    "description" : "All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.",
                    "$ref" : "#/definitions/MetadataDType"
                },
                "title" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The human readable title for the score scale mapping.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The type of score scale mapping. At present there is no predefined vocabulary. This should be used by an organization to differentiate between the score scales that it produces.",
                    "type" : "string"
                },
                "course" : {
                    "description" : "The GUID for the course for which this scale will be used.",
                    "$ref" : "#/definitions/CourseGUIDRefDType"
                },
                "class" : {
                    "description" : "The GUID for the class for which this scale will be used.",
                    "$ref" : "#/definitions/ClassGUIDRefDType"
                },
                "scoreScaleValue" : {
                    "description" : "The set of mappings for this score scale.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/ScoreScaleValueDType"
                    }
                }
            },
            "required" : [ "sourcedId","status","dateLastModified","title","type","class","scoreScaleValue" ],
            "additionalProperties" : false
        },
        "ScoreScaleValueDType" : {
            "description" : "A specific mapping of values between two score scales. The left hand side (LHS) value is the reference point. Examples of this mapping are: '7' maps to 'A', '7'-'10' maps to 'A', etc.",
            "type" : "object",
            "properties" : {
                "itemValueLHS" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The left hand side value of the mapping relationship. The format is either a single value ('x') or a range ('x' - 'y'). In the case of a single value this is considered to be the inclusive lower value for the implied range. When a range is specified (lower-to-upper) the values are inclusive.",
                    "type" : "string"
                },
                "itemValueRHS" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The right hand side value of the mapping relationship  i.e. the equivalent value to the reference point defined in the LHS.",
                    "type" : "string"
                }
            },
            "required" : [ "itemValueLHS","itemValueRHS" ],
            "additionalProperties" : false
        }
    }
}
        

C1.12c JSON Schema for the "getAllScoreScales" Operation Response Payload Validation for HTTP Codes (default,400,401,403,422,429,500)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerostergradebookservicev1p2-getallscorescales-default-400-401-403-422-429-500-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getAllScoreScales-default-400-401-403-422-429-500-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getAllScoreScales-default-400-401-403-422-429-500-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech;  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "imsx_codeMajor" : {
            "description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
            "type" : "string",
            "enum" : [ "success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported" ]
        },
        "imsx_severity" : {
            "description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
            "type" : "string",
            "enum" : [ "status","warning","error","status","warning","error","status","warning","error" ]
        },
        "imsx_description" : {
            "description" : "Model Primitive Datatype = String. A human readable description supplied by the entity creating the status code information.",
            "type" : "string"
        },
        "imsx_CodeMinor" : {
            "description" : "The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.",
            "$ref" : "#/definitions/imsx_CodeMinorDType"
        }
    },
    "required" : [ "imsx_codeMajor","imsx_severity" ],
    "additionalProperties" : false,
    "definitions" : {
        "imsx_CodeMinorDType" : {
            "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorField" : {
                    "description" : "Each reported code minor status code.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/imsx_CodeMinorFieldDType"
                    }
                }
            },
            "required" : [ "imsx_codeMinorField" ],
            "additionalProperties" : false
        },
        "imsx_CodeMinorFieldDType" : {
            "description" : "This is the container for a single code minor status code.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorFieldName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
                    "type" : "string",
                    "default" : "TargetEndSystem"
                },
                "imsx_codeMinorFieldValue" : {
                    "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
                    "type" : "string",
                    "enum" : [ "fullsuccess","invalid_filter_field","invalid_selection_field","invaliddata","unauthorisedrequest","internal_server_error",
                                "server_busy","deletefailure","unknownobject","forbidden" ]
                }
            },
            "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
            "additionalProperties" : false
        }
    }
}
        

C1.13a JSON Schema for the "getAssessmentLineItem" Operation Request Payload Validation.

No request payload is sent for this request, only a single path parameter is supplied, and so there is no JSON Schema listing.

C1.13b JSON Schema for the "getAssessmentLineItem" Operation Response Payload Validation for HTTP Codes (200)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerostergradebookservicev1p2-getassessmentlineitem-200-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getAssessmentLineItem-200-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getAssessmentLineItem-200-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech;  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "assessmentLineItem" : {
            "description" : "The instance of the single assessment lineItem for a message payload. There must be a data payload otherwise an error report payload for the record not being located should be returned.",
            "$ref" : "#/definitions/AssessmentLineItemDType"
        }
    },
    "required" : [ "assessmentLineItem" ],
    "additionalProperties" : false,
    "definitions" : {
        "AssessmentLineItemDType" : {
            "description" : "This is the container for the definition of an assessment lineItem. An assessment lineItem is a collection of results for a set of students who are completing an assignment.",
            "type" : "object",
            "properties" : {
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                    "type" : "string"
                },
                "status" : {
                    "description" : "All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                    "type" : "string",
                    "enum" : [ "active","tobedeleted" ]
                },
                "dateLastModified" : {
                    "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                    "type" : "string",
                    "format" : "date-time"
                },
                "metadata" : {
                    "description" : "All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.",
                    "$ref" : "#/definitions/MetadataDType"
                },
                "title" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The title, human readable, for the assessment lineItem.  This should allow the assessment lineItem to be distinguished from its peer assessment lineItems.",
                    "type" : "string"
                },
                "description" : {
                    "description" : "Model Primitive Datatype = String. A human readable description of the usage of the assessment lineItem.",
                    "type" : "string"
                },
                "class" : {
                    "description" : "The GUID of the class to which the assessment lineItem has been assigned. Note that an assessment LineItem MAY be assigned tio a class.",
                    "$ref" : "#/definitions/ClassGUIDRefDType"
                },
                "parentAssessmentLineItem" : {
                    "description" : "The GUID of the parent assessment lineItem. This enables the assessment lineItems to be chained together in a parent/child hierarchy.",
                    "$ref" : "#/definitions/AssessmentLineItemGUIDRefDType"
                },
                "scoreScale" : {
                    "description" : "The GUID of the score scale to be used for the lineItem. This attribute was added in the OR 1.2 release.",
                    "$ref" : "#/definitions/ScoreScaleGUIDRefDType"
                },
                "resultValueMin" : {
                    "description" : "Model Primitive Datatype = Float. The minimum value (numeric) that can be assigned to the score attribute in a result. The score scale mapping should be used to map to other scores.",
                    "type" : "number",
                    "format" : "float"
                },
                "resultValueMax" : {
                    "description" : "Model Primitive Datatype = Float. The maximum value (numeric) that can be assigned to the score attribute in a result. The score scale mapping should be used to map to other scores.",
                    "type" : "number",
                    "format" : "float"
                },
                "learningObjectiveSet" : {
                    "description" : "The set of identifiers for the learning objectives to which this assessment is aligned. Any number groups of learning objectives can be assigned.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/LearningObjectiveSetDType"
                    }
                }
            },
            "required" : [ "sourcedId","status","dateLastModified","title" ],
            "additionalProperties" : false
        },
        "AssessmentLineItemGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'AssessmentLineItem' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. an 'assessmentLineItem'.",
                    "type" : "string",
                    "enum" : [ "assessmentLineItem" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "ClassGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Class' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'class'.",
                    "type" : "string",
                    "enum" : [ "class" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "LearningObjectiveSetDType" : {
            "description" : "This is the container for the set of learning objective identifiers that are from a single source responsible for creating those identifiers.",
            "type" : "object",
            "properties" : {
                "source" : {
                    "description" : "The source responsible for creating the learning objective identifiers. The permitted values are from an extensible vocabulary.",
                    "anyOf" : [
                            {
                                "description" : "Model Primitive Datatype = NormalizedString.",
                                "type" : "string",
                                "pattern" : "^/(?!case$)(?!unknown$)[a-z0-9]+$"
                            },
                            {
                                "type" : "string",
                                "enum" : [ "case","unknown" ]
                            }
                    ]
                },
                "learningObjectiveIds" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The set of unique identifiers for the associated learning objectives. If these are CASE identifiers they MUST be valid UUIDs.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "type" : "string"
                    }
                }
            },
            "required" : [ "source","learningObjectiveIds" ],
            "additionalProperties" : false
        },
        "MetadataDType" : {
            "description" : "The container for the proprietary extensions.",
            "type" : "object",
            "properties" : {

            },
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        },
        "ScoreScaleGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'ScoreScale' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'scoreScale'.",
                    "type" : "string",
                    "enum" : [ "scoreScale" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        }
    }
}
        

C1.13c JSON Schema for the "getAssessmentLineItem" Operation Response Payload Validation for HTTP Codes (default,400,401,403,404,422,429,500)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerostergradebookservicev1p2-getassessmentlineitem-default-400-401-403-404-422-429-500-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getAssessmentLineItem-default-400-401-403-404-422-429-500-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getAssessmentLineItem-default-400-401-403-404-422-429-500-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech;  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "imsx_codeMajor" : {
            "description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
            "type" : "string",
            "enum" : [ "success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported" ]
        },
        "imsx_severity" : {
            "description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
            "type" : "string",
            "enum" : [ "status","warning","error","status","warning","error","status","warning","error" ]
        },
        "imsx_description" : {
            "description" : "Model Primitive Datatype = String. A human readable description supplied by the entity creating the status code information.",
            "type" : "string"
        },
        "imsx_CodeMinor" : {
            "description" : "The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.",
            "$ref" : "#/definitions/imsx_CodeMinorDType"
        }
    },
    "required" : [ "imsx_codeMajor","imsx_severity" ],
    "additionalProperties" : false,
    "definitions" : {
        "imsx_CodeMinorDType" : {
            "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorField" : {
                    "description" : "Each reported code minor status code.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/imsx_CodeMinorFieldDType"
                    }
                }
            },
            "required" : [ "imsx_codeMinorField" ],
            "additionalProperties" : false
        },
        "imsx_CodeMinorFieldDType" : {
            "description" : "This is the container for a single code minor status code.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorFieldName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
                    "type" : "string",
                    "default" : "TargetEndSystem"
                },
                "imsx_codeMinorFieldValue" : {
                    "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
                    "type" : "string",
                    "enum" : [ "fullsuccess","invalid_filter_field","invalid_selection_field","invaliddata","unauthorisedrequest","internal_server_error",
                                "server_busy","deletefailure","unknownobject","forbidden" ]
                }
            },
            "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
            "additionalProperties" : false
        }
    }
}
        

C1.14a JSON Schema for the "getAssessmentResult" Operation Request Payload Validation.

No request payload is sent for this request, only a single path parameter is supplied, and so there is no JSON Schema listing.

C1.14b JSON Schema for the "getAssessmentResult" Operation Response Payload Validation for HTTP Codes (200)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerostergradebookservicev1p2-getassessmentresult-200-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getAssessmentResult-200-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getAssessmentResult-200-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech;  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "assessmentResult" : {
            "description" : "The instance of the single assessment result for a message payload. There must be a data payload otherwise an error report payload for the record not being located should be returned.",
            "$ref" : "#/definitions/AssessmentResultDType"
        }
    },
    "required" : [ "assessmentResult" ],
    "additionalProperties" : false,
    "definitions" : {
        "AssessmentLineItemGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'AssessmentLineItem' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. an 'assessmentLineItem'.",
                    "type" : "string",
                    "enum" : [ "assessmentLineItem" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "AssessmentResultDType" : {
            "description" : "This is the container for the AssessmentResult record.  An assessment result consists of the assigned score plus the context for that score.",
            "type" : "object",
            "properties" : {
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                    "type" : "string"
                },
                "status" : {
                    "description" : "All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                    "type" : "string",
                    "enum" : [ "active","tobedeleted" ]
                },
                "dateLastModified" : {
                    "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                    "type" : "string",
                    "format" : "date-time"
                },
                "metadata" : {
                    "description" : "All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.",
                    "$ref" : "#/definitions/MetadataDType"
                },
                "assessmentLineItem" : {
                    "description" : "The GUID of the assessment lineItem to which the assessment result is aligned.",
                    "$ref" : "#/definitions/AssessmentLineItemGUIDRefDType"
                },
                "student" : {
                    "description" : "The GUID of the student for whom the assessment result is assigned.",
                    "$ref" : "#/definitions/UserGUIDRefDType"
                },
                "score" : {
                    "description" : "Model Primitive Datatype = Float. The score for the result. If a scoreScale is assigned then the value must align with the scale.",
                    "type" : "number",
                    "format" : "float"
                },
                "textScore" : {
                    "description" : "Model Primitive Datatype = NormalizedString. An optional non-numeric score value. If a scoreScale is assigned then the value must align with the scale.",
                    "type" : "string"
                },
                "scoreDate" : {
                    "description" : "Model Primitive Datatype = Date. The date at which the score is assigned or there is an update to the result e.g. change in the 'scoreStatus'.. The format is YYYY-MM-DD as defined in [ISO 8601].",
                    "type" : "string",
                    "format" : "date"
                },
                "scoreScale" : {
                    "description" : "The GUID of the scoreScale against which the result is aligned.",
                    "$ref" : "#/definitions/ScoreScaleGUIDRefDType"
                },
                "scorePercentile" : {
                    "description" : "Model Primitive Datatype = Float. The percentile rank of a score is the percentage of scores in its frequency distribution that are equal to or lower than it.",
                    "type" : "number",
                    "format" : "float"
                },
                "scoreStatus" : {
                    "description" : "The status of the score. The value is from an extensible enumerated vocabulary.",
                    "anyOf" : [
                            {
                                "description" : "Model Primitive Datatype = NormalizedString.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-zA-Z0-9\\.\\-_]+"
                            },
                            {
                                "type" : "string",
                                "enum" : [ "exempt","fully graded","not submitted","partially graded","submitted" ]
                            }
                    ]
                },
                "comment" : {
                    "description" : "Model Primitive Datatype = String. A human readable comment about the score.",
                    "type" : "string"
                },
                "learningObjectiveSet" : {
                    "description" : "The set of identifiers for the learning objectives to which this result is aligned. Any number groups of learning objectives can be assigned.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/LearningObjectiveScoreSetDType"
                    }
                },
                "inProgress" : {
                    "description" : "This is used to indicate that the associated work activity has been assigned and student's work product is not yet expected to have been submitted.",
                    "type" : "string",
                    "enum" : [ "true","false" ]
                },
                "incomplete" : {
                    "description" : "This is used to indicate that the student's work product has been submitted but it is deemed incomplete by the teacher.",
                    "type" : "string",
                    "enum" : [ "true","false" ]
                },
                "late" : {
                    "description" : "This is used to indicate that the student's work product is either past due or it has been submitted past the due date. The score on this result may be impacted as as result of this flag.",
                    "type" : "string",
                    "enum" : [ "true","false" ]
                },
                "missing" : {
                    "description" : "This is used to indicate that the student's work product as not been submitted.",
                    "type" : "string",
                    "enum" : [ "true","false" ]
                }
            },
            "required" : [ "sourcedId","status","dateLastModified","assessmentLineItem","student","scoreDate","scoreStatus" ],
            "additionalProperties" : false
        },
        "LearningObjectiveResultsDType" : {
            "description" : "This is the container for a learning objective identifier. This also allows a mastery score to be aligned with the learning objective.",
            "type" : "object",
            "properties" : {
                "learningObjectiveId" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The unique identifier for the associated learning objective. If this is a CASE identifier it MUST be a valid UUID.",
                    "type" : "string"
                },
                "score" : {
                    "description" : "Model Primitive Datatype = Float. The optional mastery score supplied as a numeric value. ",
                    "type" : "number",
                    "format" : "float"
                },
                "textScore" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The optional mastery score supplied in a non-numeric form. ",
                    "type" : "string"
                }
            },
            "required" : [ "learningObjectiveId" ],
            "additionalProperties" : false
        },
        "LearningObjectiveScoreSetDType" : {
            "description" : "This is the container for the set of learning objective identifiers that are from a single source responsible for creating those identifiers. This also allows a mastery score to be aligned with a learning objective.",
            "type" : "object",
            "properties" : {
                "source" : {
                    "description" : "The source responsible for creating the learning objective identifiers. The permitted values are from an extensible vocabulary.",
                    "anyOf" : [
                            {
                                "description" : "Model Primitive Datatype = NormalizedString.",
                                "type" : "string",
                                "pattern" : "^/(?!case$)(?!unknown$)[a-z0-9]+$"
                            },
                            {
                                "type" : "string",
                                "enum" : [ "case","unknown" ]
                            }
                    ]
                },
                "learningObjectiveResults" : {
                    "description" : "The set of unique identifiers for the associated learning objectives (these may have alignment with a mastery score). If these are CASE identifiers they MUST be valid UUIDs.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/LearningObjectiveResultsDType"
                    }
                }
            },
            "required" : [ "source","learningObjectiveResults" ],
            "additionalProperties" : false
        },
        "MetadataDType" : {
            "description" : "The container for the proprietary extensions.",
            "type" : "object",
            "properties" : {

            },
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        },
        "ScoreScaleGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'ScoreScale' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'scoreScale'.",
                    "type" : "string",
                    "enum" : [ "scoreScale" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "UserGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'User' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'user'.",
                    "type" : "string",
                    "enum" : [ "user" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        }
    }
}
        

C1.14c JSON Schema for the "getAssessmentResult" Operation Response Payload Validation for HTTP Codes (default,400,401,403,404,422,429,500)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerostergradebookservicev1p2-getassessmentresult-default-400-401-403-404-422-429-500-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getAssessmentResult-default-400-401-403-404-422-429-500-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getAssessmentResult-default-400-401-403-404-422-429-500-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech;  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "imsx_codeMajor" : {
            "description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
            "type" : "string",
            "enum" : [ "success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported" ]
        },
        "imsx_severity" : {
            "description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
            "type" : "string",
            "enum" : [ "status","warning","error","status","warning","error","status","warning","error" ]
        },
        "imsx_description" : {
            "description" : "Model Primitive Datatype = String. A human readable description supplied by the entity creating the status code information.",
            "type" : "string"
        },
        "imsx_CodeMinor" : {
            "description" : "The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.",
            "$ref" : "#/definitions/imsx_CodeMinorDType"
        }
    },
    "required" : [ "imsx_codeMajor","imsx_severity" ],
    "additionalProperties" : false,
    "definitions" : {
        "imsx_CodeMinorDType" : {
            "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorField" : {
                    "description" : "Each reported code minor status code.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/imsx_CodeMinorFieldDType"
                    }
                }
            },
            "required" : [ "imsx_codeMinorField" ],
            "additionalProperties" : false
        },
        "imsx_CodeMinorFieldDType" : {
            "description" : "This is the container for a single code minor status code.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorFieldName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
                    "type" : "string",
                    "default" : "TargetEndSystem"
                },
                "imsx_codeMinorFieldValue" : {
                    "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
                    "type" : "string",
                    "enum" : [ "fullsuccess","invalid_filter_field","invalid_selection_field","invaliddata","unauthorisedrequest","internal_server_error",
                                "server_busy","deletefailure","unknownobject","forbidden" ]
                }
            },
            "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
            "additionalProperties" : false
        }
    }
}
        

C1.15a JSON Schema for the "getCategoriesForClass" Operation Request Payload Validation.

No request payload is sent for this request, only a single path parameter is supplied, and so there is no JSON Schema listing.

C1.15b JSON Schema for the "getCategoriesForClass" Operation Response Payload Validation for HTTP Codes (200)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerostergradebookservicev1p2-getcategoriesforclass-200-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getCategoriesForClass-200-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getCategoriesForClass-200-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech;  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "categories" : {
            "description" : "The collection of category instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
            "type" : "array",
            "minItems" : 0,
            "items" : {
                "$ref" : "#/definitions/CategoryDType"
            }
        }
    },
    "additionalProperties" : false,
    "definitions" : {
        "CategoryDType" : {
            "description" : "A Category is the name given to a grouping of line items (line items being equivalent to assignments which students will complete). ",
            "type" : "object",
            "properties" : {
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                    "type" : "string"
                },
                "status" : {
                    "description" : "All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                    "type" : "string",
                    "enum" : [ "active","tobedeleted" ]
                },
                "dateLastModified" : {
                    "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                    "type" : "string",
                    "format" : "date-time"
                },
                "metadata" : {
                    "description" : "All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.",
                    "$ref" : "#/definitions/MetadataDType"
                },
                "title" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The human readable title for the category.",
                    "type" : "string"
                },
                "weight" : {
                    "description" : "Model Primitive Datatype = Float. Total weight of this grading category in calculation of the course final score.",
                    "type" : "number",
                    "format" : "float"
                }
            },
            "required" : [ "sourcedId","status","dateLastModified","title" ],
            "additionalProperties" : false
        },
        "MetadataDType" : {
            "description" : "The container for the proprietary extensions.",
            "type" : "object",
            "properties" : {

            },
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        }
    }
}
        

C1.15c JSON Schema for the "getCategoriesForClass" Operation Response Payload Validation for HTTP Codes (default,400,401,403,404,422,429,500)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerostergradebookservicev1p2-getcategoriesforclass-default-400-401-403-404-422-429-500-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getCategoriesForClass-default-400-401-403-404-422-429-500-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getCategoriesForClass-default-400-401-403-404-422-429-500-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech;  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "imsx_codeMajor" : {
            "description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
            "type" : "string",
            "enum" : [ "success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported" ]
        },
        "imsx_severity" : {
            "description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
            "type" : "string",
            "enum" : [ "status","warning","error","status","warning","error","status","warning","error" ]
        },
        "imsx_description" : {
            "description" : "Model Primitive Datatype = String. A human readable description supplied by the entity creating the status code information.",
            "type" : "string"
        },
        "imsx_CodeMinor" : {
            "description" : "The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.",
            "$ref" : "#/definitions/imsx_CodeMinorDType"
        }
    },
    "required" : [ "imsx_codeMajor","imsx_severity" ],
    "additionalProperties" : false,
    "definitions" : {
        "imsx_CodeMinorDType" : {
            "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorField" : {
                    "description" : "Each reported code minor status code.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/imsx_CodeMinorFieldDType"
                    }
                }
            },
            "required" : [ "imsx_codeMinorField" ],
            "additionalProperties" : false
        },
        "imsx_CodeMinorFieldDType" : {
            "description" : "This is the container for a single code minor status code.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorFieldName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
                    "type" : "string",
                    "default" : "TargetEndSystem"
                },
                "imsx_codeMinorFieldValue" : {
                    "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
                    "type" : "string",
                    "enum" : [ "fullsuccess","invalid_filter_field","invalid_selection_field","invaliddata","unauthorisedrequest","internal_server_error",
                                "server_busy","deletefailure","unknownobject","forbidden" ]
                }
            },
            "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
            "additionalProperties" : false
        }
    }
}
        

C1.16a JSON Schema for the "getCategory" Operation Request Payload Validation.

No request payload is sent for this request, only a single path parameter is supplied, and so there is no JSON Schema listing.

C1.16b JSON Schema for the "getCategory" Operation Response Payload Validation for HTTP Codes (200)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerostergradebookservicev1p2-getcategory-200-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getCategory-200-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getCategory-200-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech;  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "category" : {
            "description" : "The instance of the single category for a message payload. There must be a data payload otherwise an error report payload for the record not being located should be returned.",
            "$ref" : "#/definitions/CategoryDType"
        }
    },
    "required" : [ "category" ],
    "additionalProperties" : false,
    "definitions" : {
        "CategoryDType" : {
            "description" : "A Category is the name given to a grouping of line items (line items being equivalent to assignments which students will complete). ",
            "type" : "object",
            "properties" : {
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                    "type" : "string"
                },
                "status" : {
                    "description" : "All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                    "type" : "string",
                    "enum" : [ "active","tobedeleted" ]
                },
                "dateLastModified" : {
                    "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                    "type" : "string",
                    "format" : "date-time"
                },
                "metadata" : {
                    "description" : "All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.",
                    "$ref" : "#/definitions/MetadataDType"
                },
                "title" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The human readable title for the category.",
                    "type" : "string"
                },
                "weight" : {
                    "description" : "Model Primitive Datatype = Float. Total weight of this grading category in calculation of the course final score.",
                    "type" : "number",
                    "format" : "float"
                }
            },
            "required" : [ "sourcedId","status","dateLastModified","title" ],
            "additionalProperties" : false
        },
        "MetadataDType" : {
            "description" : "The container for the proprietary extensions.",
            "type" : "object",
            "properties" : {

            },
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        }
    }
}
        

C1.16c JSON Schema for the "getCategory" Operation Response Payload Validation for HTTP Codes (default,400,401,403,404,422,429,500)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerostergradebookservicev1p2-getcategory-default-400-401-403-404-422-429-500-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getCategory-default-400-401-403-404-422-429-500-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getCategory-default-400-401-403-404-422-429-500-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech;  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "imsx_codeMajor" : {
            "description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
            "type" : "string",
            "enum" : [ "success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported" ]
        },
        "imsx_severity" : {
            "description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
            "type" : "string",
            "enum" : [ "status","warning","error","status","warning","error","status","warning","error" ]
        },
        "imsx_description" : {
            "description" : "Model Primitive Datatype = String. A human readable description supplied by the entity creating the status code information.",
            "type" : "string"
        },
        "imsx_CodeMinor" : {
            "description" : "The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.",
            "$ref" : "#/definitions/imsx_CodeMinorDType"
        }
    },
    "required" : [ "imsx_codeMajor","imsx_severity" ],
    "additionalProperties" : false,
    "definitions" : {
        "imsx_CodeMinorDType" : {
            "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorField" : {
                    "description" : "Each reported code minor status code.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/imsx_CodeMinorFieldDType"
                    }
                }
            },
            "required" : [ "imsx_codeMinorField" ],
            "additionalProperties" : false
        },
        "imsx_CodeMinorFieldDType" : {
            "description" : "This is the container for a single code minor status code.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorFieldName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
                    "type" : "string",
                    "default" : "TargetEndSystem"
                },
                "imsx_codeMinorFieldValue" : {
                    "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
                    "type" : "string",
                    "enum" : [ "fullsuccess","invalid_filter_field","invalid_selection_field","invaliddata","unauthorisedrequest","internal_server_error",
                                "server_busy","deletefailure","unknownobject","forbidden" ]
                }
            },
            "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
            "additionalProperties" : false
        }
    }
}
        

C1.17a JSON Schema for the "getLineItem" Operation Request Payload Validation.

No request payload is sent for this request, only a single path parameter is supplied, and so there is no JSON Schema listing.

C1.17b JSON Schema for the "getLineItem" Operation Response Payload Validation for HTTP Codes (200)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerostergradebookservicev1p2-getlineitem-200-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getLineItem-200-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getLineItem-200-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech;  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "lineItem" : {
            "description" : "The instance of the single lineItem for a message payload. There must be a data payload otherwise an error report payload for the record not being located should be returned.",
            "$ref" : "#/definitions/LineItemDType"
        }
    },
    "required" : [ "lineItem" ],
    "additionalProperties" : false,
    "definitions" : {
        "AcadSessionGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Academic Session' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. an 'academicSession'.",
                    "type" : "string",
                    "enum" : [ "academicSession" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "CategoryGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Category' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'category'.",
                    "type" : "string",
                    "enum" : [ "category" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "ClassGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Class' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'class'.",
                    "type" : "string",
                    "enum" : [ "class" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "LearningObjectiveSetDType" : {
            "description" : "This is the container for the set of learning objective identifiers that are from a single source responsible for creating those identifiers.",
            "type" : "object",
            "properties" : {
                "source" : {
                    "description" : "The source responsible for creating the learning objective identifiers. The permitted values are from an extensible vocabulary.",
                    "anyOf" : [
                            {
                                "description" : "Model Primitive Datatype = NormalizedString.",
                                "type" : "string",
                                "pattern" : "^/(?!case$)(?!unknown$)[a-z0-9]+$"
                            },
                            {
                                "type" : "string",
                                "enum" : [ "case","unknown" ]
                            }
                    ]
                },
                "learningObjectiveIds" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The set of unique identifiers for the associated learning objectives. If these are CASE identifiers they MUST be valid UUIDs.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "type" : "string"
                    }
                }
            },
            "required" : [ "source","learningObjectiveIds" ],
            "additionalProperties" : false
        },
        "LineItemDType" : {
            "description" : "This is the container for the definition of a lineItem. A lineItem is a collection of results for a set of students who are completing an assignment as part of a class at a school.",
            "type" : "object",
            "properties" : {
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                    "type" : "string"
                },
                "status" : {
                    "description" : "All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                    "type" : "string",
                    "enum" : [ "active","tobedeleted" ]
                },
                "dateLastModified" : {
                    "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                    "type" : "string",
                    "format" : "date-time"
                },
                "metadata" : {
                    "description" : "All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.",
                    "$ref" : "#/definitions/MetadataDType"
                },
                "title" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The title, human readable, for the lineItem.  This should allow the lineItem to be distinguished from its peer lineItems.",
                    "type" : "string"
                },
                "description" : {
                    "description" : "Model Primitive Datatype = String. A human readable description of the usage of the lineItem.",
                    "type" : "string"
                },
                "assignDate" : {
                    "description" : "Model Primitive Datatype = DateTime. The date/time the activity being addressed by the lineItem was assigned to the student. This has a format as defined in [ISO 8601].",
                    "type" : "string",
                    "format" : "date-time"
                },
                "dueDate" : {
                    "description" : "Model Primitive Datatype = DateTime. The date/time by which the assignment must be completed and submitted. This has the dateTime format as defined in [ISO 8601].",
                    "type" : "string",
                    "format" : "date-time"
                },
                "class" : {
                    "description" : "The GUID of the class to which the lineItem has been assigned.",
                    "$ref" : "#/definitions/ClassGUIDRefDType"
                },
                "school" : {
                    "description" : "The GUID of the school for whom the lineItem has been assigned. This attribute was added in the OR 1.2 release.",
                    "$ref" : "#/definitions/OrgGUIDRefDType"
                },
                "category" : {
                    "description" : "The GUID of the category to which the lineItem has been assigned.",
                    "$ref" : "#/definitions/CategoryGUIDRefDType"
                },
                "gradingPeriod" : {
                    "description" : "The GUID of the grading period for the lineItem. This attribute was added in the OR 1.2 release.",
                    "$ref" : "#/definitions/AcadSessionGUIDRefDType"
                },
                "academicSession" : {
                    "description" : "The GUID of the academic session for the lineItem. This should NOT be defined if the 'gradingPeriod' attribute has been used.",
                    "$ref" : "#/definitions/AcadSessionGUIDRefDType"
                },
                "scoreScale" : {
                    "description" : "The GUID of the score scale to be used for the lineItem. This attribute was added in the OR 1.2 release.",
                    "$ref" : "#/definitions/ScoreScaleGUIDRefDType"
                },
                "resultValueMin" : {
                    "description" : "Model Primitive Datatype = Float. The minimum value (numeric) that can be assigned to the score attribute in a result. The score scale mapping should be used to map to other scores.",
                    "type" : "number",
                    "format" : "float"
                },
                "resultValueMax" : {
                    "description" : "Model Primitive Datatype = Float. The maximum value (numeric) that can be assigned to the score attribute in a result. The score scale mapping should be used to map to other scores.",
                    "type" : "number",
                    "format" : "float"
                },
                "learningObjectiveSet" : {
                    "description" : "The set of identifiers for the learning objectives to which this assessment is aligned. Any number groups of learning objectives can be assigned.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/LearningObjectiveSetDType"
                    }
                }
            },
            "required" : [ "sourcedId","status","dateLastModified","title","assignDate","dueDate","class","school","category" ],
            "additionalProperties" : false
        },
        "MetadataDType" : {
            "description" : "The container for the proprietary extensions.",
            "type" : "object",
            "properties" : {

            },
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        },
        "OrgGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Org' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. an 'org'.",
                    "type" : "string",
                    "enum" : [ "org" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "ScoreScaleGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'ScoreScale' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'scoreScale'.",
                    "type" : "string",
                    "enum" : [ "scoreScale" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        }
    }
}
        

C1.17c JSON Schema for the "getLineItem" Operation Response Payload Validation for HTTP Codes (default,400,401,403,404,422,429,500)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerostergradebookservicev1p2-getlineitem-default-400-401-403-404-422-429-500-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getLineItem-default-400-401-403-404-422-429-500-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getLineItem-default-400-401-403-404-422-429-500-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech;  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "imsx_codeMajor" : {
            "description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
            "type" : "string",
            "enum" : [ "success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported" ]
        },
        "imsx_severity" : {
            "description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
            "type" : "string",
            "enum" : [ "status","warning","error","status","warning","error","status","warning","error" ]
        },
        "imsx_description" : {
            "description" : "Model Primitive Datatype = String. A human readable description supplied by the entity creating the status code information.",
            "type" : "string"
        },
        "imsx_CodeMinor" : {
            "description" : "The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.",
            "$ref" : "#/definitions/imsx_CodeMinorDType"
        }
    },
    "required" : [ "imsx_codeMajor","imsx_severity" ],
    "additionalProperties" : false,
    "definitions" : {
        "imsx_CodeMinorDType" : {
            "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorField" : {
                    "description" : "Each reported code minor status code.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/imsx_CodeMinorFieldDType"
                    }
                }
            },
            "required" : [ "imsx_codeMinorField" ],
            "additionalProperties" : false
        },
        "imsx_CodeMinorFieldDType" : {
            "description" : "This is the container for a single code minor status code.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorFieldName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
                    "type" : "string",
                    "default" : "TargetEndSystem"
                },
                "imsx_codeMinorFieldValue" : {
                    "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
                    "type" : "string",
                    "enum" : [ "fullsuccess","invalid_filter_field","invalid_selection_field","invaliddata","unauthorisedrequest","internal_server_error",
                                "server_busy","deletefailure","unknownobject","forbidden" ]
                }
            },
            "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
            "additionalProperties" : false
        }
    }
}
        

C1.18a JSON Schema for the "getLineItemsForClass" Operation Request Payload Validation.

No request payload is sent for this request, only a single path parameter is supplied, and so there is no JSON Schema listing.

C1.18b JSON Schema for the "getLineItemsForClass" Operation Response Payload Validation for HTTP Codes (200)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerostergradebookservicev1p2-getlineitemsforclass-200-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getLineItemsForClass-200-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getLineItemsForClass-200-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech;  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "lineItems" : {
            "description" : "The collection of lineItem instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
            "type" : "array",
            "minItems" : 0,
            "items" : {
                "$ref" : "#/definitions/LineItemDType"
            }
        }
    },
    "additionalProperties" : false,
    "definitions" : {
        "AcadSessionGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Academic Session' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. an 'academicSession'.",
                    "type" : "string",
                    "enum" : [ "academicSession" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "CategoryGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Category' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'category'.",
                    "type" : "string",
                    "enum" : [ "category" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "ClassGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Class' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'class'.",
                    "type" : "string",
                    "enum" : [ "class" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "LearningObjectiveSetDType" : {
            "description" : "This is the container for the set of learning objective identifiers that are from a single source responsible for creating those identifiers.",
            "type" : "object",
            "properties" : {
                "source" : {
                    "description" : "The source responsible for creating the learning objective identifiers. The permitted values are from an extensible vocabulary.",
                    "anyOf" : [
                            {
                                "description" : "Model Primitive Datatype = NormalizedString.",
                                "type" : "string",
                                "pattern" : "^/(?!case$)(?!unknown$)[a-z0-9]+$"
                            },
                            {
                                "type" : "string",
                                "enum" : [ "case","unknown" ]
                            }
                    ]
                },
                "learningObjectiveIds" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The set of unique identifiers for the associated learning objectives. If these are CASE identifiers they MUST be valid UUIDs.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "type" : "string"
                    }
                }
            },
            "required" : [ "source","learningObjectiveIds" ],
            "additionalProperties" : false
        },
        "LineItemDType" : {
            "description" : "This is the container for the definition of a lineItem. A lineItem is a collection of results for a set of students who are completing an assignment as part of a class at a school.",
            "type" : "object",
            "properties" : {
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                    "type" : "string"
                },
                "status" : {
                    "description" : "All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                    "type" : "string",
                    "enum" : [ "active","tobedeleted" ]
                },
                "dateLastModified" : {
                    "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                    "type" : "string",
                    "format" : "date-time"
                },
                "metadata" : {
                    "description" : "All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.",
                    "$ref" : "#/definitions/MetadataDType"
                },
                "title" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The title, human readable, for the lineItem.  This should allow the lineItem to be distinguished from its peer lineItems.",
                    "type" : "string"
                },
                "description" : {
                    "description" : "Model Primitive Datatype = String. A human readable description of the usage of the lineItem.",
                    "type" : "string"
                },
                "assignDate" : {
                    "description" : "Model Primitive Datatype = DateTime. The date/time the activity being addressed by the lineItem was assigned to the student. This has a format as defined in [ISO 8601].",
                    "type" : "string",
                    "format" : "date-time"
                },
                "dueDate" : {
                    "description" : "Model Primitive Datatype = DateTime. The date/time by which the assignment must be completed and submitted. This has the dateTime format as defined in [ISO 8601].",
                    "type" : "string",
                    "format" : "date-time"
                },
                "class" : {
                    "description" : "The GUID of the class to which the lineItem has been assigned.",
                    "$ref" : "#/definitions/ClassGUIDRefDType"
                },
                "school" : {
                    "description" : "The GUID of the school for whom the lineItem has been assigned. This attribute was added in the OR 1.2 release.",
                    "$ref" : "#/definitions/OrgGUIDRefDType"
                },
                "category" : {
                    "description" : "The GUID of the category to which the lineItem has been assigned.",
                    "$ref" : "#/definitions/CategoryGUIDRefDType"
                },
                "gradingPeriod" : {
                    "description" : "The GUID of the grading period for the lineItem. This attribute was added in the OR 1.2 release.",
                    "$ref" : "#/definitions/AcadSessionGUIDRefDType"
                },
                "academicSession" : {
                    "description" : "The GUID of the academic session for the lineItem. This should NOT be defined if the 'gradingPeriod' attribute has been used.",
                    "$ref" : "#/definitions/AcadSessionGUIDRefDType"
                },
                "scoreScale" : {
                    "description" : "The GUID of the score scale to be used for the lineItem. This attribute was added in the OR 1.2 release.",
                    "$ref" : "#/definitions/ScoreScaleGUIDRefDType"
                },
                "resultValueMin" : {
                    "description" : "Model Primitive Datatype = Float. The minimum value (numeric) that can be assigned to the score attribute in a result. The score scale mapping should be used to map to other scores.",
                    "type" : "number",
                    "format" : "float"
                },
                "resultValueMax" : {
                    "description" : "Model Primitive Datatype = Float. The maximum value (numeric) that can be assigned to the score attribute in a result. The score scale mapping should be used to map to other scores.",
                    "type" : "number",
                    "format" : "float"
                },
                "learningObjectiveSet" : {
                    "description" : "The set of identifiers for the learning objectives to which this assessment is aligned. Any number groups of learning objectives can be assigned.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/LearningObjectiveSetDType"
                    }
                }
            },
            "required" : [ "sourcedId","status","dateLastModified","title","assignDate","dueDate","class","school","category" ],
            "additionalProperties" : false
        },
        "MetadataDType" : {
            "description" : "The container for the proprietary extensions.",
            "type" : "object",
            "properties" : {

            },
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        },
        "OrgGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Org' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. an 'org'.",
                    "type" : "string",
                    "enum" : [ "org" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "ScoreScaleGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'ScoreScale' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'scoreScale'.",
                    "type" : "string",
                    "enum" : [ "scoreScale" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        }
    }
}
        

C1.18c JSON Schema for the "getLineItemsForClass" Operation Response Payload Validation for HTTP Codes (default,400,401,403,404,422,429,500)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerostergradebookservicev1p2-getlineitemsforclass-default-400-401-403-404-422-429-500-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getLineItemsForClass-default-400-401-403-404-422-429-500-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getLineItemsForClass-default-400-401-403-404-422-429-500-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech;  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "imsx_codeMajor" : {
            "description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
            "type" : "string",
            "enum" : [ "success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported" ]
        },
        "imsx_severity" : {
            "description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
            "type" : "string",
            "enum" : [ "status","warning","error","status","warning","error","status","warning","error" ]
        },
        "imsx_description" : {
            "description" : "Model Primitive Datatype = String. A human readable description supplied by the entity creating the status code information.",
            "type" : "string"
        },
        "imsx_CodeMinor" : {
            "description" : "The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.",
            "$ref" : "#/definitions/imsx_CodeMinorDType"
        }
    },
    "required" : [ "imsx_codeMajor","imsx_severity" ],
    "additionalProperties" : false,
    "definitions" : {
        "imsx_CodeMinorDType" : {
            "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorField" : {
                    "description" : "Each reported code minor status code.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/imsx_CodeMinorFieldDType"
                    }
                }
            },
            "required" : [ "imsx_codeMinorField" ],
            "additionalProperties" : false
        },
        "imsx_CodeMinorFieldDType" : {
            "description" : "This is the container for a single code minor status code.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorFieldName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
                    "type" : "string",
                    "default" : "TargetEndSystem"
                },
                "imsx_codeMinorFieldValue" : {
                    "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
                    "type" : "string",
                    "enum" : [ "fullsuccess","invalid_filter_field","invalid_selection_field","invaliddata","unauthorisedrequest","internal_server_error",
                                "server_busy","deletefailure","unknownobject","forbidden" ]
                }
            },
            "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
            "additionalProperties" : false
        }
    }
}
        

C1.19a JSON Schema for the "getResult" Operation Request Payload Validation.

No request payload is sent for this request, only a single path parameter is supplied, and so there is no JSON Schema listing.

C1.19b JSON Schema for the "getResult" Operation Response Payload Validation for HTTP Codes (200)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerostergradebookservicev1p2-getresult-200-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getResult-200-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getResult-200-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech;  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "result" : {
            "description" : "The instance of the single result for a message payload. There must be a data payload otherwise an error report payload for the record not being located should be returned.",
            "$ref" : "#/definitions/ResultDType"
        }
    },
    "required" : [ "result" ],
    "additionalProperties" : false,
    "definitions" : {
        "ClassGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Class' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'class'.",
                    "type" : "string",
                    "enum" : [ "class" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "LearningObjectiveResultsDType" : {
            "description" : "This is the container for a learning objective identifier. This also allows a mastery score to be aligned with the learning objective.",
            "type" : "object",
            "properties" : {
                "learningObjectiveId" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The unique identifier for the associated learning objective. If this is a CASE identifier it MUST be a valid UUID.",
                    "type" : "string"
                },
                "score" : {
                    "description" : "Model Primitive Datatype = Float. The optional mastery score supplied as a numeric value. ",
                    "type" : "number",
                    "format" : "float"
                },
                "textScore" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The optional mastery score supplied in a non-numeric form. ",
                    "type" : "string"
                }
            },
            "required" : [ "learningObjectiveId" ],
            "additionalProperties" : false
        },
        "LearningObjectiveScoreSetDType" : {
            "description" : "This is the container for the set of learning objective identifiers that are from a single source responsible for creating those identifiers. This also allows a mastery score to be aligned with a learning objective.",
            "type" : "object",
            "properties" : {
                "source" : {
                    "description" : "The source responsible for creating the learning objective identifiers. The permitted values are from an extensible vocabulary.",
                    "anyOf" : [
                            {
                                "description" : "Model Primitive Datatype = NormalizedString.",
                                "type" : "string",
                                "pattern" : "^/(?!case$)(?!unknown$)[a-z0-9]+$"
                            },
                            {
                                "type" : "string",
                                "enum" : [ "case","unknown" ]
                            }
                    ]
                },
                "learningObjectiveResults" : {
                    "description" : "The set of unique identifiers for the associated learning objectives (these may have alignment with a mastery score). If these are CASE identifiers they MUST be valid UUIDs.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/LearningObjectiveResultsDType"
                    }
                }
            },
            "required" : [ "source","learningObjectiveResults" ],
            "additionalProperties" : false
        },
        "LineItemGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'LineItem' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'lineItem'.",
                    "type" : "string",
                    "enum" : [ "lineItem" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "MetadataDType" : {
            "description" : "The container for the proprietary extensions.",
            "type" : "object",
            "properties" : {

            },
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        },
        "ResultDType" : {
            "description" : "This is the container for the Result record.  A result consists of the assigned score plus the context for that score.",
            "type" : "object",
            "properties" : {
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                    "type" : "string"
                },
                "status" : {
                    "description" : "All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                    "type" : "string",
                    "enum" : [ "active","tobedeleted" ]
                },
                "dateLastModified" : {
                    "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                    "type" : "string",
                    "format" : "date-time"
                },
                "metadata" : {
                    "description" : "All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.",
                    "$ref" : "#/definitions/MetadataDType"
                },
                "lineItem" : {
                    "description" : "The GUID of the lineItem to which the result is aligned.",
                    "$ref" : "#/definitions/LineItemGUIDRefDType"
                },
                "student" : {
                    "description" : "The GUID of the student for whom the result is assigned.",
                    "$ref" : "#/definitions/UserGUIDRefDType"
                },
                "class" : {
                    "description" : "The GUID of the class to which the result is aligned.",
                    "$ref" : "#/definitions/ClassGUIDRefDType"
                },
                "scoreScale" : {
                    "description" : "The GUID of the scoreScale against which the result is aligned.",
                    "$ref" : "#/definitions/ScoreScaleGUIDRefDType"
                },
                "scoreStatus" : {
                    "description" : "The status of the score. The value is from an extensible enumerated vocabulary.",
                    "anyOf" : [
                            {
                                "description" : "Model Primitive Datatype = NormalizedString.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-zA-Z0-9\\.\\-_]+"
                            },
                            {
                                "type" : "string",
                                "enum" : [ "exempt","fully graded","not submitted","partially graded","submitted" ]
                            }
                    ]
                },
                "score" : {
                    "description" : "Model Primitive Datatype = Float. The score for the result. If a scoreScale is assigned then the value must align with the scale.",
                    "type" : "number",
                    "format" : "float"
                },
                "textScore" : {
                    "description" : "Model Primitive Datatype = NormalizedString. An optional non-numeric score value. If a scoreScale is assigned then the value must align with the scale. This attribute was added in OR 1.2.",
                    "type" : "string"
                },
                "scoreDate" : {
                    "description" : "Model Primitive Datatype = Date. The date at which the score is assigned or there is an update to the result e.g. change in the 'scoreStatus'. The format is YYYY-MM-DD as defined in [ISO 8601].",
                    "type" : "string",
                    "format" : "date"
                },
                "comment" : {
                    "description" : "Model Primitive Datatype = String. A human readable comment about the score.",
                    "type" : "string"
                },
                "learningObjectiveSet" : {
                    "description" : "The set of identifiers for the learning objectives to which this result is aligned. Any number groups of learning objectives can be assigned.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/LearningObjectiveScoreSetDType"
                    }
                },
                "inProgress" : {
                    "description" : "This is used to indicate that the associated work activity has been assigned and student's work product is not yet expected to have been submitted.",
                    "type" : "string",
                    "enum" : [ "true","false" ]
                },
                "incomplete" : {
                    "description" : "This is used to indicate that the student's work product has been submitted but it is deemed incomplete by the teacher.",
                    "type" : "string",
                    "enum" : [ "true","false" ]
                },
                "late" : {
                    "description" : "This is used to indicate that the student's work product is either past due or it has been submitted past the due date. The score on this result may be impacted as as result of this flag.",
                    "type" : "string",
                    "enum" : [ "true","false" ]
                },
                "missing" : {
                    "description" : "This is used to indicate that the student's work product as not been submitted.",
                    "type" : "string",
                    "enum" : [ "true","false" ]
                }
            },
            "required" : [ "sourcedId","status","dateLastModified","lineItem","student","scoreStatus","scoreDate" ],
            "additionalProperties" : false
        },
        "ScoreScaleGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'ScoreScale' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'scoreScale'.",
                    "type" : "string",
                    "enum" : [ "scoreScale" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "UserGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'User' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'user'.",
                    "type" : "string",
                    "enum" : [ "user" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        }
    }
}
        

C1.19c JSON Schema for the "getResult" Operation Response Payload Validation for HTTP Codes (default,400,401,403,404,422,429,500)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerostergradebookservicev1p2-getresult-default-400-401-403-404-422-429-500-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getResult-default-400-401-403-404-422-429-500-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getResult-default-400-401-403-404-422-429-500-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech;  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "imsx_codeMajor" : {
            "description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
            "type" : "string",
            "enum" : [ "success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported" ]
        },
        "imsx_severity" : {
            "description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
            "type" : "string",
            "enum" : [ "status","warning","error","status","warning","error","status","warning","error" ]
        },
        "imsx_description" : {
            "description" : "Model Primitive Datatype = String. A human readable description supplied by the entity creating the status code information.",
            "type" : "string"
        },
        "imsx_CodeMinor" : {
            "description" : "The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.",
            "$ref" : "#/definitions/imsx_CodeMinorDType"
        }
    },
    "required" : [ "imsx_codeMajor","imsx_severity" ],
    "additionalProperties" : false,
    "definitions" : {
        "imsx_CodeMinorDType" : {
            "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorField" : {
                    "description" : "Each reported code minor status code.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/imsx_CodeMinorFieldDType"
                    }
                }
            },
            "required" : [ "imsx_codeMinorField" ],
            "additionalProperties" : false
        },
        "imsx_CodeMinorFieldDType" : {
            "description" : "This is the container for a single code minor status code.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorFieldName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
                    "type" : "string",
                    "default" : "TargetEndSystem"
                },
                "imsx_codeMinorFieldValue" : {
                    "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
                    "type" : "string",
                    "enum" : [ "fullsuccess","invalid_filter_field","invalid_selection_field","invaliddata","unauthorisedrequest","internal_server_error",
                                "server_busy","deletefailure","unknownobject","forbidden" ]
                }
            },
            "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
            "additionalProperties" : false
        }
    }
}
        

C1.20a JSON Schema for the "getResultsForClass" Operation Request Payload Validation.

No request payload is sent for this request, only a single path parameter is supplied, and so there is no JSON Schema listing.

C1.20b JSON Schema for the "getResultsForClass" Operation Response Payload Validation for HTTP Codes (200)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerostergradebookservicev1p2-getresultsforclass-200-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getResultsForClass-200-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getResultsForClass-200-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech;  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "results" : {
            "description" : "The collection of result instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
            "type" : "array",
            "minItems" : 0,
            "items" : {
                "$ref" : "#/definitions/ResultDType"
            }
        }
    },
    "additionalProperties" : false,
    "definitions" : {
        "ClassGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Class' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'class'.",
                    "type" : "string",
                    "enum" : [ "class" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "LearningObjectiveResultsDType" : {
            "description" : "This is the container for a learning objective identifier. This also allows a mastery score to be aligned with the learning objective.",
            "type" : "object",
            "properties" : {
                "learningObjectiveId" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The unique identifier for the associated learning objective. If this is a CASE identifier it MUST be a valid UUID.",
                    "type" : "string"
                },
                "score" : {
                    "description" : "Model Primitive Datatype = Float. The optional mastery score supplied as a numeric value. ",
                    "type" : "number",
                    "format" : "float"
                },
                "textScore" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The optional mastery score supplied in a non-numeric form. ",
                    "type" : "string"
                }
            },
            "required" : [ "learningObjectiveId" ],
            "additionalProperties" : false
        },
        "LearningObjectiveScoreSetDType" : {
            "description" : "This is the container for the set of learning objective identifiers that are from a single source responsible for creating those identifiers. This also allows a mastery score to be aligned with a learning objective.",
            "type" : "object",
            "properties" : {
                "source" : {
                    "description" : "The source responsible for creating the learning objective identifiers. The permitted values are from an extensible vocabulary.",
                    "anyOf" : [
                            {
                                "description" : "Model Primitive Datatype = NormalizedString.",
                                "type" : "string",
                                "pattern" : "^/(?!case$)(?!unknown$)[a-z0-9]+$"
                            },
                            {
                                "type" : "string",
                                "enum" : [ "case","unknown" ]
                            }
                    ]
                },
                "learningObjectiveResults" : {
                    "description" : "The set of unique identifiers for the associated learning objectives (these may have alignment with a mastery score). If these are CASE identifiers they MUST be valid UUIDs.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/LearningObjectiveResultsDType"
                    }
                }
            },
            "required" : [ "source","learningObjectiveResults" ],
            "additionalProperties" : false
        },
        "LineItemGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'LineItem' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'lineItem'.",
                    "type" : "string",
                    "enum" : [ "lineItem" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "MetadataDType" : {
            "description" : "The container for the proprietary extensions.",
            "type" : "object",
            "properties" : {

            },
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        },
        "ResultDType" : {
            "description" : "This is the container for the Result record.  A result consists of the assigned score plus the context for that score.",
            "type" : "object",
            "properties" : {
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                    "type" : "string"
                },
                "status" : {
                    "description" : "All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                    "type" : "string",
                    "enum" : [ "active","tobedeleted" ]
                },
                "dateLastModified" : {
                    "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                    "type" : "string",
                    "format" : "date-time"
                },
                "metadata" : {
                    "description" : "All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.",
                    "$ref" : "#/definitions/MetadataDType"
                },
                "lineItem" : {
                    "description" : "The GUID of the lineItem to which the result is aligned.",
                    "$ref" : "#/definitions/LineItemGUIDRefDType"
                },
                "student" : {
                    "description" : "The GUID of the student for whom the result is assigned.",
                    "$ref" : "#/definitions/UserGUIDRefDType"
                },
                "class" : {
                    "description" : "The GUID of the class to which the result is aligned.",
                    "$ref" : "#/definitions/ClassGUIDRefDType"
                },
                "scoreScale" : {
                    "description" : "The GUID of the scoreScale against which the result is aligned.",
                    "$ref" : "#/definitions/ScoreScaleGUIDRefDType"
                },
                "scoreStatus" : {
                    "description" : "The status of the score. The value is from an extensible enumerated vocabulary.",
                    "anyOf" : [
                            {
                                "description" : "Model Primitive Datatype = NormalizedString.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-zA-Z0-9\\.\\-_]+"
                            },
                            {
                                "type" : "string",
                                "enum" : [ "exempt","fully graded","not submitted","partially graded","submitted" ]
                            }
                    ]
                },
                "score" : {
                    "description" : "Model Primitive Datatype = Float. The score for the result. If a scoreScale is assigned then the value must align with the scale.",
                    "type" : "number",
                    "format" : "float"
                },
                "textScore" : {
                    "description" : "Model Primitive Datatype = NormalizedString. An optional non-numeric score value. If a scoreScale is assigned then the value must align with the scale. This attribute was added in OR 1.2.",
                    "type" : "string"
                },
                "scoreDate" : {
                    "description" : "Model Primitive Datatype = Date. The date at which the score is assigned or there is an update to the result e.g. change in the 'scoreStatus'. The format is YYYY-MM-DD as defined in [ISO 8601].",
                    "type" : "string",
                    "format" : "date"
                },
                "comment" : {
                    "description" : "Model Primitive Datatype = String. A human readable comment about the score.",
                    "type" : "string"
                },
                "learningObjectiveSet" : {
                    "description" : "The set of identifiers for the learning objectives to which this result is aligned. Any number groups of learning objectives can be assigned.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/LearningObjectiveScoreSetDType"
                    }
                },
                "inProgress" : {
                    "description" : "This is used to indicate that the associated work activity has been assigned and student's work product is not yet expected to have been submitted.",
                    "type" : "string",
                    "enum" : [ "true","false" ]
                },
                "incomplete" : {
                    "description" : "This is used to indicate that the student's work product has been submitted but it is deemed incomplete by the teacher.",
                    "type" : "string",
                    "enum" : [ "true","false" ]
                },
                "late" : {
                    "description" : "This is used to indicate that the student's work product is either past due or it has been submitted past the due date. The score on this result may be impacted as as result of this flag.",
                    "type" : "string",
                    "enum" : [ "true","false" ]
                },
                "missing" : {
                    "description" : "This is used to indicate that the student's work product as not been submitted.",
                    "type" : "string",
                    "enum" : [ "true","false" ]
                }
            },
            "required" : [ "sourcedId","status","dateLastModified","lineItem","student","scoreStatus","scoreDate" ],
            "additionalProperties" : false
        },
        "ScoreScaleGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'ScoreScale' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'scoreScale'.",
                    "type" : "string",
                    "enum" : [ "scoreScale" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "UserGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'User' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'user'.",
                    "type" : "string",
                    "enum" : [ "user" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        }
    }
}
        

C1.20c JSON Schema for the "getResultsForClass" Operation Response Payload Validation for HTTP Codes (default,400,401,403,404,422,429,500)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerostergradebookservicev1p2-getresultsforclass-default-400-401-403-404-422-429-500-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getResultsForClass-default-400-401-403-404-422-429-500-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getResultsForClass-default-400-401-403-404-422-429-500-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech;  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "imsx_codeMajor" : {
            "description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
            "type" : "string",
            "enum" : [ "success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported" ]
        },
        "imsx_severity" : {
            "description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
            "type" : "string",
            "enum" : [ "status","warning","error","status","warning","error","status","warning","error" ]
        },
        "imsx_description" : {
            "description" : "Model Primitive Datatype = String. A human readable description supplied by the entity creating the status code information.",
            "type" : "string"
        },
        "imsx_CodeMinor" : {
            "description" : "The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.",
            "$ref" : "#/definitions/imsx_CodeMinorDType"
        }
    },
    "required" : [ "imsx_codeMajor","imsx_severity" ],
    "additionalProperties" : false,
    "definitions" : {
        "imsx_CodeMinorDType" : {
            "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorField" : {
                    "description" : "Each reported code minor status code.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/imsx_CodeMinorFieldDType"
                    }
                }
            },
            "required" : [ "imsx_codeMinorField" ],
            "additionalProperties" : false
        },
        "imsx_CodeMinorFieldDType" : {
            "description" : "This is the container for a single code minor status code.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorFieldName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
                    "type" : "string",
                    "default" : "TargetEndSystem"
                },
                "imsx_codeMinorFieldValue" : {
                    "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
                    "type" : "string",
                    "enum" : [ "fullsuccess","invalid_filter_field","invalid_selection_field","invaliddata","unauthorisedrequest","internal_server_error",
                                "server_busy","deletefailure","unknownobject","forbidden" ]
                }
            },
            "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
            "additionalProperties" : false
        }
    }
}
        

C1.21a JSON Schema for the "getResultsForLineItemForClass" Operation Request Payload Validation.

MISSING JSON SCHEMA DESCRIPTION.

C1.21b JSON Schema for the "getResultsForLineItemForClass" Operation Response Payload Validation for HTTP Codes (200)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerostergradebookservicev1p2-getresultsforlineitemforclass-200-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getResultsForLineItemForClass-200-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getResultsForLineItemForClass-200-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech;  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "results" : {
            "description" : "The collection of result instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
            "type" : "array",
            "minItems" : 0,
            "items" : {
                "$ref" : "#/definitions/ResultDType"
            }
        }
    },
    "additionalProperties" : false,
    "definitions" : {
        "ClassGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Class' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'class'.",
                    "type" : "string",
                    "enum" : [ "class" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "LearningObjectiveResultsDType" : {
            "description" : "This is the container for a learning objective identifier. This also allows a mastery score to be aligned with the learning objective.",
            "type" : "object",
            "properties" : {
                "learningObjectiveId" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The unique identifier for the associated learning objective. If this is a CASE identifier it MUST be a valid UUID.",
                    "type" : "string"
                },
                "score" : {
                    "description" : "Model Primitive Datatype = Float. The optional mastery score supplied as a numeric value. ",
                    "type" : "number",
                    "format" : "float"
                },
                "textScore" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The optional mastery score supplied in a non-numeric form. ",
                    "type" : "string"
                }
            },
            "required" : [ "learningObjectiveId" ],
            "additionalProperties" : false
        },
        "LearningObjectiveScoreSetDType" : {
            "description" : "This is the container for the set of learning objective identifiers that are from a single source responsible for creating those identifiers. This also allows a mastery score to be aligned with a learning objective.",
            "type" : "object",
            "properties" : {
                "source" : {
                    "description" : "The source responsible for creating the learning objective identifiers. The permitted values are from an extensible vocabulary.",
                    "anyOf" : [
                            {
                                "description" : "Model Primitive Datatype = NormalizedString.",
                                "type" : "string",
                                "pattern" : "^/(?!case$)(?!unknown$)[a-z0-9]+$"
                            },
                            {
                                "type" : "string",
                                "enum" : [ "case","unknown" ]
                            }
                    ]
                },
                "learningObjectiveResults" : {
                    "description" : "The set of unique identifiers for the associated learning objectives (these may have alignment with a mastery score). If these are CASE identifiers they MUST be valid UUIDs.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/LearningObjectiveResultsDType"
                    }
                }
            },
            "required" : [ "source","learningObjectiveResults" ],
            "additionalProperties" : false
        },
        "LineItemGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'LineItem' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'lineItem'.",
                    "type" : "string",
                    "enum" : [ "lineItem" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "MetadataDType" : {
            "description" : "The container for the proprietary extensions.",
            "type" : "object",
            "properties" : {

            },
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        },
        "ResultDType" : {
            "description" : "This is the container for the Result record.  A result consists of the assigned score plus the context for that score.",
            "type" : "object",
            "properties" : {
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                    "type" : "string"
                },
                "status" : {
                    "description" : "All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                    "type" : "string",
                    "enum" : [ "active","tobedeleted" ]
                },
                "dateLastModified" : {
                    "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                    "type" : "string",
                    "format" : "date-time"
                },
                "metadata" : {
                    "description" : "All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.",
                    "$ref" : "#/definitions/MetadataDType"
                },
                "lineItem" : {
                    "description" : "The GUID of the lineItem to which the result is aligned.",
                    "$ref" : "#/definitions/LineItemGUIDRefDType"
                },
                "student" : {
                    "description" : "The GUID of the student for whom the result is assigned.",
                    "$ref" : "#/definitions/UserGUIDRefDType"
                },
                "class" : {
                    "description" : "The GUID of the class to which the result is aligned.",
                    "$ref" : "#/definitions/ClassGUIDRefDType"
                },
                "scoreScale" : {
                    "description" : "The GUID of the scoreScale against which the result is aligned.",
                    "$ref" : "#/definitions/ScoreScaleGUIDRefDType"
                },
                "scoreStatus" : {
                    "description" : "The status of the score. The value is from an extensible enumerated vocabulary.",
                    "anyOf" : [
                            {
                                "description" : "Model Primitive Datatype = NormalizedString.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-zA-Z0-9\\.\\-_]+"
                            },
                            {
                                "type" : "string",
                                "enum" : [ "exempt","fully graded","not submitted","partially graded","submitted" ]
                            }
                    ]
                },
                "score" : {
                    "description" : "Model Primitive Datatype = Float. The score for the result. If a scoreScale is assigned then the value must align with the scale.",
                    "type" : "number",
                    "format" : "float"
                },
                "textScore" : {
                    "description" : "Model Primitive Datatype = NormalizedString. An optional non-numeric score value. If a scoreScale is assigned then the value must align with the scale. This attribute was added in OR 1.2.",
                    "type" : "string"
                },
                "scoreDate" : {
                    "description" : "Model Primitive Datatype = Date. The date at which the score is assigned or there is an update to the result e.g. change in the 'scoreStatus'. The format is YYYY-MM-DD as defined in [ISO 8601].",
                    "type" : "string",
                    "format" : "date"
                },
                "comment" : {
                    "description" : "Model Primitive Datatype = String. A human readable comment about the score.",
                    "type" : "string"
                },
                "learningObjectiveSet" : {
                    "description" : "The set of identifiers for the learning objectives to which this result is aligned. Any number groups of learning objectives can be assigned.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/LearningObjectiveScoreSetDType"
                    }
                },
                "inProgress" : {
                    "description" : "This is used to indicate that the associated work activity has been assigned and student's work product is not yet expected to have been submitted.",
                    "type" : "string",
                    "enum" : [ "true","false" ]
                },
                "incomplete" : {
                    "description" : "This is used to indicate that the student's work product has been submitted but it is deemed incomplete by the teacher.",
                    "type" : "string",
                    "enum" : [ "true","false" ]
                },
                "late" : {
                    "description" : "This is used to indicate that the student's work product is either past due or it has been submitted past the due date. The score on this result may be impacted as as result of this flag.",
                    "type" : "string",
                    "enum" : [ "true","false" ]
                },
                "missing" : {
                    "description" : "This is used to indicate that the student's work product as not been submitted.",
                    "type" : "string",
                    "enum" : [ "true","false" ]
                }
            },
            "required" : [ "sourcedId","status","dateLastModified","lineItem","student","scoreStatus","scoreDate" ],
            "additionalProperties" : false
        },
        "ScoreScaleGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'ScoreScale' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'scoreScale'.",
                    "type" : "string",
                    "enum" : [ "scoreScale" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "UserGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'User' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'user'.",
                    "type" : "string",
                    "enum" : [ "user" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        }
    }
}
        

C1.21c JSON Schema for the "getResultsForLineItemForClass" Operation Response Payload Validation for HTTP Codes (default,400,401,403,404,422,429,500)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerostergradebookservicev1p2-getresultsforlineitemforclass-default-400-401-403-404-422-429-500-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getResultsForLineItemForClass-default-400-401-403-404-422-429-500-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getResultsForLineItemForClass-default-400-401-403-404-422-429-500-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech;  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "imsx_codeMajor" : {
            "description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
            "type" : "string",
            "enum" : [ "success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported" ]
        },
        "imsx_severity" : {
            "description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
            "type" : "string",
            "enum" : [ "status","warning","error","status","warning","error","status","warning","error" ]
        },
        "imsx_description" : {
            "description" : "Model Primitive Datatype = String. A human readable description supplied by the entity creating the status code information.",
            "type" : "string"
        },
        "imsx_CodeMinor" : {
            "description" : "The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.",
            "$ref" : "#/definitions/imsx_CodeMinorDType"
        }
    },
    "required" : [ "imsx_codeMajor","imsx_severity" ],
    "additionalProperties" : false,
    "definitions" : {
        "imsx_CodeMinorDType" : {
            "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorField" : {
                    "description" : "Each reported code minor status code.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/imsx_CodeMinorFieldDType"
                    }
                }
            },
            "required" : [ "imsx_codeMinorField" ],
            "additionalProperties" : false
        },
        "imsx_CodeMinorFieldDType" : {
            "description" : "This is the container for a single code minor status code.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorFieldName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
                    "type" : "string",
                    "default" : "TargetEndSystem"
                },
                "imsx_codeMinorFieldValue" : {
                    "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
                    "type" : "string",
                    "enum" : [ "fullsuccess","invalid_filter_field","invalid_selection_field","invaliddata","unauthorisedrequest","internal_server_error",
                                "server_busy","deletefailure","unknownobject","forbidden" ]
                }
            },
            "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
            "additionalProperties" : false
        }
    }
}
        

C1.22a JSON Schema for the "getResultsForStudentForClass" Operation Request Payload Validation.

MISSING JSON SCHEMA DESCRIPTION.

C1.22b JSON Schema for the "getResultsForStudentForClass" Operation Response Payload Validation for HTTP Codes (200)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerostergradebookservicev1p2-getresultsforstudentforclass-200-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getResultsForStudentForClass-200-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getResultsForStudentForClass-200-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech;  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "results" : {
            "description" : "The collection of result instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
            "type" : "array",
            "minItems" : 0,
            "items" : {
                "$ref" : "#/definitions/ResultDType"
            }
        }
    },
    "additionalProperties" : false,
    "definitions" : {
        "ClassGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Class' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'class'.",
                    "type" : "string",
                    "enum" : [ "class" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "LearningObjectiveResultsDType" : {
            "description" : "This is the container for a learning objective identifier. This also allows a mastery score to be aligned with the learning objective.",
            "type" : "object",
            "properties" : {
                "learningObjectiveId" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The unique identifier for the associated learning objective. If this is a CASE identifier it MUST be a valid UUID.",
                    "type" : "string"
                },
                "score" : {
                    "description" : "Model Primitive Datatype = Float. The optional mastery score supplied as a numeric value. ",
                    "type" : "number",
                    "format" : "float"
                },
                "textScore" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The optional mastery score supplied in a non-numeric form. ",
                    "type" : "string"
                }
            },
            "required" : [ "learningObjectiveId" ],
            "additionalProperties" : false
        },
        "LearningObjectiveScoreSetDType" : {
            "description" : "This is the container for the set of learning objective identifiers that are from a single source responsible for creating those identifiers. This also allows a mastery score to be aligned with a learning objective.",
            "type" : "object",
            "properties" : {
                "source" : {
                    "description" : "The source responsible for creating the learning objective identifiers. The permitted values are from an extensible vocabulary.",
                    "anyOf" : [
                            {
                                "description" : "Model Primitive Datatype = NormalizedString.",
                                "type" : "string",
                                "pattern" : "^/(?!case$)(?!unknown$)[a-z0-9]+$"
                            },
                            {
                                "type" : "string",
                                "enum" : [ "case","unknown" ]
                            }
                    ]
                },
                "learningObjectiveResults" : {
                    "description" : "The set of unique identifiers for the associated learning objectives (these may have alignment with a mastery score). If these are CASE identifiers they MUST be valid UUIDs.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/LearningObjectiveResultsDType"
                    }
                }
            },
            "required" : [ "source","learningObjectiveResults" ],
            "additionalProperties" : false
        },
        "LineItemGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'LineItem' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'lineItem'.",
                    "type" : "string",
                    "enum" : [ "lineItem" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "MetadataDType" : {
            "description" : "The container for the proprietary extensions.",
            "type" : "object",
            "properties" : {

            },
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        },
        "ResultDType" : {
            "description" : "This is the container for the Result record.  A result consists of the assigned score plus the context for that score.",
            "type" : "object",
            "properties" : {
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                    "type" : "string"
                },
                "status" : {
                    "description" : "All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                    "type" : "string",
                    "enum" : [ "active","tobedeleted" ]
                },
                "dateLastModified" : {
                    "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                    "type" : "string",
                    "format" : "date-time"
                },
                "metadata" : {
                    "description" : "All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.",
                    "$ref" : "#/definitions/MetadataDType"
                },
                "lineItem" : {
                    "description" : "The GUID of the lineItem to which the result is aligned.",
                    "$ref" : "#/definitions/LineItemGUIDRefDType"
                },
                "student" : {
                    "description" : "The GUID of the student for whom the result is assigned.",
                    "$ref" : "#/definitions/UserGUIDRefDType"
                },
                "class" : {
                    "description" : "The GUID of the class to which the result is aligned.",
                    "$ref" : "#/definitions/ClassGUIDRefDType"
                },
                "scoreScale" : {
                    "description" : "The GUID of the scoreScale against which the result is aligned.",
                    "$ref" : "#/definitions/ScoreScaleGUIDRefDType"
                },
                "scoreStatus" : {
                    "description" : "The status of the score. The value is from an extensible enumerated vocabulary.",
                    "anyOf" : [
                            {
                                "description" : "Model Primitive Datatype = NormalizedString.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-zA-Z0-9\\.\\-_]+"
                            },
                            {
                                "type" : "string",
                                "enum" : [ "exempt","fully graded","not submitted","partially graded","submitted" ]
                            }
                    ]
                },
                "score" : {
                    "description" : "Model Primitive Datatype = Float. The score for the result. If a scoreScale is assigned then the value must align with the scale.",
                    "type" : "number",
                    "format" : "float"
                },
                "textScore" : {
                    "description" : "Model Primitive Datatype = NormalizedString. An optional non-numeric score value. If a scoreScale is assigned then the value must align with the scale. This attribute was added in OR 1.2.",
                    "type" : "string"
                },
                "scoreDate" : {
                    "description" : "Model Primitive Datatype = Date. The date at which the score is assigned or there is an update to the result e.g. change in the 'scoreStatus'. The format is YYYY-MM-DD as defined in [ISO 8601].",
                    "type" : "string",
                    "format" : "date"
                },
                "comment" : {
                    "description" : "Model Primitive Datatype = String. A human readable comment about the score.",
                    "type" : "string"
                },
                "learningObjectiveSet" : {
                    "description" : "The set of identifiers for the learning objectives to which this result is aligned. Any number groups of learning objectives can be assigned.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/LearningObjectiveScoreSetDType"
                    }
                },
                "inProgress" : {
                    "description" : "This is used to indicate that the associated work activity has been assigned and student's work product is not yet expected to have been submitted.",
                    "type" : "string",
                    "enum" : [ "true","false" ]
                },
                "incomplete" : {
                    "description" : "This is used to indicate that the student's work product has been submitted but it is deemed incomplete by the teacher.",
                    "type" : "string",
                    "enum" : [ "true","false" ]
                },
                "late" : {
                    "description" : "This is used to indicate that the student's work product is either past due or it has been submitted past the due date. The score on this result may be impacted as as result of this flag.",
                    "type" : "string",
                    "enum" : [ "true","false" ]
                },
                "missing" : {
                    "description" : "This is used to indicate that the student's work product as not been submitted.",
                    "type" : "string",
                    "enum" : [ "true","false" ]
                }
            },
            "required" : [ "sourcedId","status","dateLastModified","lineItem","student","scoreStatus","scoreDate" ],
            "additionalProperties" : false
        },
        "ScoreScaleGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'ScoreScale' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'scoreScale'.",
                    "type" : "string",
                    "enum" : [ "scoreScale" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "UserGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'User' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'user'.",
                    "type" : "string",
                    "enum" : [ "user" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        }
    }
}
        

C1.22c JSON Schema for the "getResultsForStudentForClass" Operation Response Payload Validation for HTTP Codes (default,400,401,403,404,422,429,500)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerostergradebookservicev1p2-getresultsforstudentforclass-default-400-401-403-404-422-429-500-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getResultsForStudentForClass-default-400-401-403-404-422-429-500-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getResultsForStudentForClass-default-400-401-403-404-422-429-500-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech;  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "imsx_codeMajor" : {
            "description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
            "type" : "string",
            "enum" : [ "success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported" ]
        },
        "imsx_severity" : {
            "description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
            "type" : "string",
            "enum" : [ "status","warning","error","status","warning","error","status","warning","error" ]
        },
        "imsx_description" : {
            "description" : "Model Primitive Datatype = String. A human readable description supplied by the entity creating the status code information.",
            "type" : "string"
        },
        "imsx_CodeMinor" : {
            "description" : "The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.",
            "$ref" : "#/definitions/imsx_CodeMinorDType"
        }
    },
    "required" : [ "imsx_codeMajor","imsx_severity" ],
    "additionalProperties" : false,
    "definitions" : {
        "imsx_CodeMinorDType" : {
            "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorField" : {
                    "description" : "Each reported code minor status code.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/imsx_CodeMinorFieldDType"
                    }
                }
            },
            "required" : [ "imsx_codeMinorField" ],
            "additionalProperties" : false
        },
        "imsx_CodeMinorFieldDType" : {
            "description" : "This is the container for a single code minor status code.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorFieldName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
                    "type" : "string",
                    "default" : "TargetEndSystem"
                },
                "imsx_codeMinorFieldValue" : {
                    "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
                    "type" : "string",
                    "enum" : [ "fullsuccess","invalid_filter_field","invalid_selection_field","invaliddata","unauthorisedrequest","internal_server_error",
                                "server_busy","deletefailure","unknownobject","forbidden" ]
                }
            },
            "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
            "additionalProperties" : false
        }
    }
}
        

C1.23a JSON Schema for the "getScoreScale" Operation Request Payload Validation.

No request payload is sent for this request, only a single path parameter is supplied, and so there is no JSON Schema listing.

C1.23b JSON Schema for the "getScoreScale" Operation Response Payload Validation for HTTP Codes (200)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerostergradebookservicev1p2-getscorescale-200-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getScoreScale-200-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getScoreScale-200-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech;  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "scoreScale" : {
            "description" : "The instance of the single scoreScale for a message payload. There must be a data payload otherwise an error report payload for the record not being located should be returned.",
            "$ref" : "#/definitions/ScoreScaleDType"
        }
    },
    "required" : [ "scoreScale" ],
    "additionalProperties" : false,
    "definitions" : {
        "ClassGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Class' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'class'.",
                    "type" : "string",
                    "enum" : [ "class" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "CourseGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Course' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'course'.",
                    "type" : "string",
                    "enum" : [ "course" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "MetadataDType" : {
            "description" : "The container for the proprietary extensions.",
            "type" : "object",
            "properties" : {

            },
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        },
        "ScoreScaleDType" : {
            "description" : "The container for the definition Score Scale mapping i.e. the relationship between two score scales.",
            "type" : "object",
            "properties" : {
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                    "type" : "string"
                },
                "status" : {
                    "description" : "All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                    "type" : "string",
                    "enum" : [ "active","tobedeleted" ]
                },
                "dateLastModified" : {
                    "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                    "type" : "string",
                    "format" : "date-time"
                },
                "metadata" : {
                    "description" : "All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.",
                    "$ref" : "#/definitions/MetadataDType"
                },
                "title" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The human readable title for the score scale mapping.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The type of score scale mapping. At present there is no predefined vocabulary. This should be used by an organization to differentiate between the score scales that it produces.",
                    "type" : "string"
                },
                "course" : {
                    "description" : "The GUID for the course for which this scale will be used.",
                    "$ref" : "#/definitions/CourseGUIDRefDType"
                },
                "class" : {
                    "description" : "The GUID for the class for which this scale will be used.",
                    "$ref" : "#/definitions/ClassGUIDRefDType"
                },
                "scoreScaleValue" : {
                    "description" : "The set of mappings for this score scale.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/ScoreScaleValueDType"
                    }
                }
            },
            "required" : [ "sourcedId","status","dateLastModified","title","type","class","scoreScaleValue" ],
            "additionalProperties" : false
        },
        "ScoreScaleValueDType" : {
            "description" : "A specific mapping of values between two score scales. The left hand side (LHS) value is the reference point. Examples of this mapping are: '7' maps to 'A', '7'-'10' maps to 'A', etc.",
            "type" : "object",
            "properties" : {
                "itemValueLHS" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The left hand side value of the mapping relationship. The format is either a single value ('x') or a range ('x' - 'y'). In the case of a single value this is considered to be the inclusive lower value for the implied range. When a range is specified (lower-to-upper) the values are inclusive.",
                    "type" : "string"
                },
                "itemValueRHS" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The right hand side value of the mapping relationship  i.e. the equivalent value to the reference point defined in the LHS.",
                    "type" : "string"
                }
            },
            "required" : [ "itemValueLHS","itemValueRHS" ],
            "additionalProperties" : false
        }
    }
}
        

C1.23c JSON Schema for the "getScoreScale" Operation Response Payload Validation for HTTP Codes (default,400,401,403,404,422,429,500)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerostergradebookservicev1p2-getscorescale-default-400-401-403-404-422-429-500-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getScoreScale-default-400-401-403-404-422-429-500-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getScoreScale-default-400-401-403-404-422-429-500-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech;  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "imsx_codeMajor" : {
            "description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
            "type" : "string",
            "enum" : [ "success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported" ]
        },
        "imsx_severity" : {
            "description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
            "type" : "string",
            "enum" : [ "status","warning","error","status","warning","error","status","warning","error" ]
        },
        "imsx_description" : {
            "description" : "Model Primitive Datatype = String. A human readable description supplied by the entity creating the status code information.",
            "type" : "string"
        },
        "imsx_CodeMinor" : {
            "description" : "The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.",
            "$ref" : "#/definitions/imsx_CodeMinorDType"
        }
    },
    "required" : [ "imsx_codeMajor","imsx_severity" ],
    "additionalProperties" : false,
    "definitions" : {
        "imsx_CodeMinorDType" : {
            "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorField" : {
                    "description" : "Each reported code minor status code.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/imsx_CodeMinorFieldDType"
                    }
                }
            },
            "required" : [ "imsx_codeMinorField" ],
            "additionalProperties" : false
        },
        "imsx_CodeMinorFieldDType" : {
            "description" : "This is the container for a single code minor status code.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorFieldName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
                    "type" : "string",
                    "default" : "TargetEndSystem"
                },
                "imsx_codeMinorFieldValue" : {
                    "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
                    "type" : "string",
                    "enum" : [ "fullsuccess","invalid_filter_field","invalid_selection_field","invaliddata","unauthorisedrequest","internal_server_error",
                                "server_busy","deletefailure","unknownobject","forbidden" ]
                }
            },
            "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
            "additionalProperties" : false
        }
    }
}
        

C1.24a JSON Schema for the "getScoreScalesForClass" Operation Request Payload Validation.

No request payload is sent for this request, only a single path parameter is supplied, and so there is no JSON Schema listing.

C1.24b JSON Schema for the "getScoreScalesForClass" Operation Response Payload Validation for HTTP Codes (200)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerostergradebookservicev1p2-getscorescalesforclass-200-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getScoreScalesForClass-200-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getScoreScalesForClass-200-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech;  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "scoreScales" : {
            "description" : "The collection of scoreScale instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
            "type" : "array",
            "minItems" : 0,
            "items" : {
                "$ref" : "#/definitions/ScoreScaleDType"
            }
        }
    },
    "additionalProperties" : false,
    "definitions" : {
        "ClassGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Class' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'class'.",
                    "type" : "string",
                    "enum" : [ "class" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "CourseGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Course' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'course'.",
                    "type" : "string",
                    "enum" : [ "course" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "MetadataDType" : {
            "description" : "The container for the proprietary extensions.",
            "type" : "object",
            "properties" : {

            },
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        },
        "ScoreScaleDType" : {
            "description" : "The container for the definition Score Scale mapping i.e. the relationship between two score scales.",
            "type" : "object",
            "properties" : {
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                    "type" : "string"
                },
                "status" : {
                    "description" : "All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                    "type" : "string",
                    "enum" : [ "active","tobedeleted" ]
                },
                "dateLastModified" : {
                    "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                    "type" : "string",
                    "format" : "date-time"
                },
                "metadata" : {
                    "description" : "All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.",
                    "$ref" : "#/definitions/MetadataDType"
                },
                "title" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The human readable title for the score scale mapping.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The type of score scale mapping. At present there is no predefined vocabulary. This should be used by an organization to differentiate between the score scales that it produces.",
                    "type" : "string"
                },
                "course" : {
                    "description" : "The GUID for the course for which this scale will be used.",
                    "$ref" : "#/definitions/CourseGUIDRefDType"
                },
                "class" : {
                    "description" : "The GUID for the class for which this scale will be used.",
                    "$ref" : "#/definitions/ClassGUIDRefDType"
                },
                "scoreScaleValue" : {
                    "description" : "The set of mappings for this score scale.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/ScoreScaleValueDType"
                    }
                }
            },
            "required" : [ "sourcedId","status","dateLastModified","title","type","class","scoreScaleValue" ],
            "additionalProperties" : false
        },
        "ScoreScaleValueDType" : {
            "description" : "A specific mapping of values between two score scales. The left hand side (LHS) value is the reference point. Examples of this mapping are: '7' maps to 'A', '7'-'10' maps to 'A', etc.",
            "type" : "object",
            "properties" : {
                "itemValueLHS" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The left hand side value of the mapping relationship. The format is either a single value ('x') or a range ('x' - 'y'). In the case of a single value this is considered to be the inclusive lower value for the implied range. When a range is specified (lower-to-upper) the values are inclusive.",
                    "type" : "string"
                },
                "itemValueRHS" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The right hand side value of the mapping relationship  i.e. the equivalent value to the reference point defined in the LHS.",
                    "type" : "string"
                }
            },
            "required" : [ "itemValueLHS","itemValueRHS" ],
            "additionalProperties" : false
        }
    }
}
        

C1.24c JSON Schema for the "getScoreScalesForClass" Operation Response Payload Validation for HTTP Codes (default,400,401,403,404,422,429,500)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerostergradebookservicev1p2-getscorescalesforclass-default-400-401-403-404-422-429-500-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getScoreScalesForClass-default-400-401-403-404-422-429-500-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getScoreScalesForClass-default-400-401-403-404-422-429-500-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech;  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "imsx_codeMajor" : {
            "description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
            "type" : "string",
            "enum" : [ "success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported" ]
        },
        "imsx_severity" : {
            "description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
            "type" : "string",
            "enum" : [ "status","warning","error","status","warning","error","status","warning","error" ]
        },
        "imsx_description" : {
            "description" : "Model Primitive Datatype = String. A human readable description supplied by the entity creating the status code information.",
            "type" : "string"
        },
        "imsx_CodeMinor" : {
            "description" : "The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.",
            "$ref" : "#/definitions/imsx_CodeMinorDType"
        }
    },
    "required" : [ "imsx_codeMajor","imsx_severity" ],
    "additionalProperties" : false,
    "definitions" : {
        "imsx_CodeMinorDType" : {
            "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorField" : {
                    "description" : "Each reported code minor status code.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/imsx_CodeMinorFieldDType"
                    }
                }
            },
            "required" : [ "imsx_codeMinorField" ],
            "additionalProperties" : false
        },
        "imsx_CodeMinorFieldDType" : {
            "description" : "This is the container for a single code minor status code.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorFieldName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
                    "type" : "string",
                    "default" : "TargetEndSystem"
                },
                "imsx_codeMinorFieldValue" : {
                    "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
                    "type" : "string",
                    "enum" : [ "fullsuccess","invalid_filter_field","invalid_selection_field","invaliddata","unauthorisedrequest","internal_server_error",
                                "server_busy","deletefailure","unknownobject","forbidden" ]
                }
            },
            "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
            "additionalProperties" : false
        }
    }
}
        

C1.25a JSON Schema for the "getScoreScalesForSchool" Operation Request Payload Validation.

No request payload is sent for this request, only a single path parameter is supplied, and so there is no JSON Schema listing.

C1.25b JSON Schema for the "getScoreScalesForSchool" Operation Response Payload Validation for HTTP Codes (200)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerostergradebookservicev1p2-getscorescalesforschool-200-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getScoreScalesForSchool-200-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getScoreScalesForSchool-200-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech;  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "scoreScales" : {
            "description" : "The collection of scoreScale instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
            "type" : "array",
            "minItems" : 0,
            "items" : {
                "$ref" : "#/definitions/ScoreScaleDType"
            }
        }
    },
    "additionalProperties" : false,
    "definitions" : {
        "ClassGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Class' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'class'.",
                    "type" : "string",
                    "enum" : [ "class" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "CourseGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Course' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'course'.",
                    "type" : "string",
                    "enum" : [ "course" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "MetadataDType" : {
            "description" : "The container for the proprietary extensions.",
            "type" : "object",
            "properties" : {

            },
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        },
        "ScoreScaleDType" : {
            "description" : "The container for the definition Score Scale mapping i.e. the relationship between two score scales.",
            "type" : "object",
            "properties" : {
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                    "type" : "string"
                },
                "status" : {
                    "description" : "All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                    "type" : "string",
                    "enum" : [ "active","tobedeleted" ]
                },
                "dateLastModified" : {
                    "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                    "type" : "string",
                    "format" : "date-time"
                },
                "metadata" : {
                    "description" : "All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.",
                    "$ref" : "#/definitions/MetadataDType"
                },
                "title" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The human readable title for the score scale mapping.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The type of score scale mapping. At present there is no predefined vocabulary. This should be used by an organization to differentiate between the score scales that it produces.",
                    "type" : "string"
                },
                "course" : {
                    "description" : "The GUID for the course for which this scale will be used.",
                    "$ref" : "#/definitions/CourseGUIDRefDType"
                },
                "class" : {
                    "description" : "The GUID for the class for which this scale will be used.",
                    "$ref" : "#/definitions/ClassGUIDRefDType"
                },
                "scoreScaleValue" : {
                    "description" : "The set of mappings for this score scale.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/ScoreScaleValueDType"
                    }
                }
            },
            "required" : [ "sourcedId","status","dateLastModified","title","type","class","scoreScaleValue" ],
            "additionalProperties" : false
        },
        "ScoreScaleValueDType" : {
            "description" : "A specific mapping of values between two score scales. The left hand side (LHS) value is the reference point. Examples of this mapping are: '7' maps to 'A', '7'-'10' maps to 'A', etc.",
            "type" : "object",
            "properties" : {
                "itemValueLHS" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The left hand side value of the mapping relationship. The format is either a single value ('x') or a range ('x' - 'y'). In the case of a single value this is considered to be the inclusive lower value for the implied range. When a range is specified (lower-to-upper) the values are inclusive.",
                    "type" : "string"
                },
                "itemValueRHS" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The right hand side value of the mapping relationship  i.e. the equivalent value to the reference point defined in the LHS.",
                    "type" : "string"
                }
            },
            "required" : [ "itemValueLHS","itemValueRHS" ],
            "additionalProperties" : false
        }
    }
}
        

C1.25c JSON Schema for the "getScoreScalesForSchool" Operation Response Payload Validation for HTTP Codes (default,400,401,403,404,422,429,500)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerostergradebookservicev1p2-getscorescalesforschool-default-400-401-403-404-422-429-500-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "getScoreScalesForSchool-default-400-401-403-404-422-429-500-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (getScoreScalesForSchool-default-400-401-403-404-422-429-500-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech;  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "imsx_codeMajor" : {
            "description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
            "type" : "string",
            "enum" : [ "success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported" ]
        },
        "imsx_severity" : {
            "description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
            "type" : "string",
            "enum" : [ "status","warning","error","status","warning","error","status","warning","error" ]
        },
        "imsx_description" : {
            "description" : "Model Primitive Datatype = String. A human readable description supplied by the entity creating the status code information.",
            "type" : "string"
        },
        "imsx_CodeMinor" : {
            "description" : "The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.",
            "$ref" : "#/definitions/imsx_CodeMinorDType"
        }
    },
    "required" : [ "imsx_codeMajor","imsx_severity" ],
    "additionalProperties" : false,
    "definitions" : {
        "imsx_CodeMinorDType" : {
            "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorField" : {
                    "description" : "Each reported code minor status code.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/imsx_CodeMinorFieldDType"
                    }
                }
            },
            "required" : [ "imsx_codeMinorField" ],
            "additionalProperties" : false
        },
        "imsx_CodeMinorFieldDType" : {
            "description" : "This is the container for a single code minor status code.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorFieldName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
                    "type" : "string",
                    "default" : "TargetEndSystem"
                },
                "imsx_codeMinorFieldValue" : {
                    "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
                    "type" : "string",
                    "enum" : [ "fullsuccess","invalid_filter_field","invalid_selection_field","invaliddata","unauthorisedrequest","internal_server_error",
                                "server_busy","deletefailure","unknownobject","forbidden" ]
                }
            },
            "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
            "additionalProperties" : false
        }
    }
}
        

C1.26a JSON Schema for the "postLineItemsForClass" Operation Request Payload Validation.

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerostergradebookservicev1p2-postlineitemsforclass-requestpayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "postLineItemsForClass-requestpayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (postLineItemsForClass-requestpayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech;  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "lineItems" : {
            "description" : "The collection of lineItem instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
            "type" : "array",
            "minItems" : 0,
            "items" : {
                "$ref" : "#/definitions/LineItemDType"
            }
        }
    },
    "additionalProperties" : false,
    "definitions" : {
        "AcadSessionGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Academic Session' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. an 'academicSession'.",
                    "type" : "string",
                    "enum" : [ "academicSession" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "CategoryGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Category' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'category'.",
                    "type" : "string",
                    "enum" : [ "category" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "ClassGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Class' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'class'.",
                    "type" : "string",
                    "enum" : [ "class" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "LearningObjectiveSetDType" : {
            "description" : "This is the container for the set of learning objective identifiers that are from a single source responsible for creating those identifiers.",
            "type" : "object",
            "properties" : {
                "source" : {
                    "description" : "The source responsible for creating the learning objective identifiers. The permitted values are from an extensible vocabulary.",
                    "anyOf" : [
                            {
                                "description" : "Model Primitive Datatype = NormalizedString.",
                                "type" : "string",
                                "pattern" : "^/(?!case$)(?!unknown$)[a-z0-9]+$"
                            },
                            {
                                "type" : "string",
                                "enum" : [ "case","unknown" ]
                            }
                    ]
                },
                "learningObjectiveIds" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The set of unique identifiers for the associated learning objectives. If these are CASE identifiers they MUST be valid UUIDs.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "type" : "string"
                    }
                }
            },
            "required" : [ "source","learningObjectiveIds" ],
            "additionalProperties" : false
        },
        "LineItemDType" : {
            "description" : "This is the container for the definition of a lineItem. A lineItem is a collection of results for a set of students who are completing an assignment as part of a class at a school.",
            "type" : "object",
            "properties" : {
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                    "type" : "string"
                },
                "status" : {
                    "description" : "All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                    "type" : "string",
                    "enum" : [ "active","tobedeleted" ]
                },
                "dateLastModified" : {
                    "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                    "type" : "string",
                    "format" : "date-time"
                },
                "metadata" : {
                    "description" : "All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.",
                    "$ref" : "#/definitions/MetadataDType"
                },
                "title" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The title, human readable, for the lineItem.  This should allow the lineItem to be distinguished from its peer lineItems.",
                    "type" : "string"
                },
                "description" : {
                    "description" : "Model Primitive Datatype = String. A human readable description of the usage of the lineItem.",
                    "type" : "string"
                },
                "assignDate" : {
                    "description" : "Model Primitive Datatype = DateTime. The date/time the activity being addressed by the lineItem was assigned to the student. This has a format as defined in [ISO 8601].",
                    "type" : "string",
                    "format" : "date-time"
                },
                "dueDate" : {
                    "description" : "Model Primitive Datatype = DateTime. The date/time by which the assignment must be completed and submitted. This has the dateTime format as defined in [ISO 8601].",
                    "type" : "string",
                    "format" : "date-time"
                },
                "class" : {
                    "description" : "The GUID of the class to which the lineItem has been assigned.",
                    "$ref" : "#/definitions/ClassGUIDRefDType"
                },
                "school" : {
                    "description" : "The GUID of the school for whom the lineItem has been assigned. This attribute was added in the OR 1.2 release.",
                    "$ref" : "#/definitions/OrgGUIDRefDType"
                },
                "category" : {
                    "description" : "The GUID of the category to which the lineItem has been assigned.",
                    "$ref" : "#/definitions/CategoryGUIDRefDType"
                },
                "gradingPeriod" : {
                    "description" : "The GUID of the grading period for the lineItem. This attribute was added in the OR 1.2 release.",
                    "$ref" : "#/definitions/AcadSessionGUIDRefDType"
                },
                "academicSession" : {
                    "description" : "The GUID of the academic session for the lineItem. This should NOT be defined if the 'gradingPeriod' attribute has been used.",
                    "$ref" : "#/definitions/AcadSessionGUIDRefDType"
                },
                "scoreScale" : {
                    "description" : "The GUID of the score scale to be used for the lineItem. This attribute was added in the OR 1.2 release.",
                    "$ref" : "#/definitions/ScoreScaleGUIDRefDType"
                },
                "resultValueMin" : {
                    "description" : "Model Primitive Datatype = Float. The minimum value (numeric) that can be assigned to the score attribute in a result. The score scale mapping should be used to map to other scores.",
                    "type" : "number",
                    "format" : "float"
                },
                "resultValueMax" : {
                    "description" : "Model Primitive Datatype = Float. The maximum value (numeric) that can be assigned to the score attribute in a result. The score scale mapping should be used to map to other scores.",
                    "type" : "number",
                    "format" : "float"
                },
                "learningObjectiveSet" : {
                    "description" : "The set of identifiers for the learning objectives to which this assessment is aligned. Any number groups of learning objectives can be assigned.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/LearningObjectiveSetDType"
                    }
                }
            },
            "required" : [ "sourcedId","status","dateLastModified","title","assignDate","dueDate","class","school","category" ],
            "additionalProperties" : false
        },
        "MetadataDType" : {
            "description" : "The container for the proprietary extensions.",
            "type" : "object",
            "properties" : {

            },
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        },
        "OrgGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Org' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. an 'org'.",
                    "type" : "string",
                    "enum" : [ "org" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "ScoreScaleGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'ScoreScale' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'scoreScale'.",
                    "type" : "string",
                    "enum" : [ "scoreScale" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        }
    }
}
        

C1.26b JSON Schema for the "postLineItemsForClass" Operation Response Payload Validation for HTTP Codes (201)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerostergradebookservicev1p2-postlineitemsforclass-201-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "postLineItemsForClass-201-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (postLineItemsForClass-201-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech;  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "sourcedIdPairs" : {
            "description" : "The set of sourcedId pairs. The order is not significant as each pair contains the information between the original/new values.",
            "type" : "array",
            "minItems" : 0,
            "items" : {
                "$ref" : "#/definitions/GUIDPairDType"
            }
        }
    },
    "additionalProperties" : false,
    "definitions" : {
        "GUIDPairDType" : {
            "description" : "The container for the mapping between the supplied (assigned by the requesting system) and allocated (assigned by the responding system) sourcedIds i.e. GUIDs.",
            "type" : "object",
            "properties" : {
                "suppliedSourcedId" : {
                    "description" : "Model Primitive Datatype = String. The temporary sourcedId that has been allocated by the requesting system. This sourcedId is used to enable identification of the original record for which the new sourcedId has been allocated at the service provider.",
                    "type" : "string"
                },
                "allocatedSourcedId" : {
                    "description" : "Model Primitive Datatype = String. The sourcedId that has been allocated by the system on which the new record has been created.",
                    "type" : "string"
                }
            },
            "required" : [ "suppliedSourcedId","allocatedSourcedId" ],
            "additionalProperties" : false
        }
    }
}
        

C1.26c JSON Schema for the "postLineItemsForClass" Operation Response Payload Validation for HTTP Codes (default,401,403,404,422,429,500)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerostergradebookservicev1p2-postlineitemsforclass-default-401-403-404-422-429-500-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "postLineItemsForClass-default-401-403-404-422-429-500-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (postLineItemsForClass-default-401-403-404-422-429-500-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech;  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "imsx_codeMajor" : {
            "description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
            "type" : "string",
            "enum" : [ "success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported" ]
        },
        "imsx_severity" : {
            "description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
            "type" : "string",
            "enum" : [ "status","warning","error","status","warning","error","status","warning","error" ]
        },
        "imsx_description" : {
            "description" : "Model Primitive Datatype = String. A human readable description supplied by the entity creating the status code information.",
            "type" : "string"
        },
        "imsx_CodeMinor" : {
            "description" : "The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.",
            "$ref" : "#/definitions/imsx_CodeMinorDType"
        }
    },
    "required" : [ "imsx_codeMajor","imsx_severity" ],
    "additionalProperties" : false,
    "definitions" : {
        "imsx_CodeMinorDType" : {
            "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorField" : {
                    "description" : "Each reported code minor status code.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/imsx_CodeMinorFieldDType"
                    }
                }
            },
            "required" : [ "imsx_codeMinorField" ],
            "additionalProperties" : false
        },
        "imsx_CodeMinorFieldDType" : {
            "description" : "This is the container for a single code minor status code.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorFieldName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
                    "type" : "string",
                    "default" : "TargetEndSystem"
                },
                "imsx_codeMinorFieldValue" : {
                    "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
                    "type" : "string",
                    "enum" : [ "fullsuccess","invalid_filter_field","invalid_selection_field","invaliddata","unauthorisedrequest","internal_server_error",
                                "server_busy","deletefailure","unknownobject","forbidden" ]
                }
            },
            "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
            "additionalProperties" : false
        }
    }
}
        

C1.27a JSON Schema for the "postLineItemsForSchool" Operation Request Payload Validation.

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerostergradebookservicev1p2-postlineitemsforschool-requestpayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "postLineItemsForSchool-requestpayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (postLineItemsForSchool-requestpayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech;  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "lineItems" : {
            "description" : "The collection of lineItem instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
            "type" : "array",
            "minItems" : 0,
            "items" : {
                "$ref" : "#/definitions/LineItemDType"
            }
        }
    },
    "additionalProperties" : false,
    "definitions" : {
        "AcadSessionGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Academic Session' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. an 'academicSession'.",
                    "type" : "string",
                    "enum" : [ "academicSession" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "CategoryGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Category' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'category'.",
                    "type" : "string",
                    "enum" : [ "category" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "ClassGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Class' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'class'.",
                    "type" : "string",
                    "enum" : [ "class" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "LearningObjectiveSetDType" : {
            "description" : "This is the container for the set of learning objective identifiers that are from a single source responsible for creating those identifiers.",
            "type" : "object",
            "properties" : {
                "source" : {
                    "description" : "The source responsible for creating the learning objective identifiers. The permitted values are from an extensible vocabulary.",
                    "anyOf" : [
                            {
                                "description" : "Model Primitive Datatype = NormalizedString.",
                                "type" : "string",
                                "pattern" : "^/(?!case$)(?!unknown$)[a-z0-9]+$"
                            },
                            {
                                "type" : "string",
                                "enum" : [ "case","unknown" ]
                            }
                    ]
                },
                "learningObjectiveIds" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The set of unique identifiers for the associated learning objectives. If these are CASE identifiers they MUST be valid UUIDs.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "type" : "string"
                    }
                }
            },
            "required" : [ "source","learningObjectiveIds" ],
            "additionalProperties" : false
        },
        "LineItemDType" : {
            "description" : "This is the container for the definition of a lineItem. A lineItem is a collection of results for a set of students who are completing an assignment as part of a class at a school.",
            "type" : "object",
            "properties" : {
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                    "type" : "string"
                },
                "status" : {
                    "description" : "All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                    "type" : "string",
                    "enum" : [ "active","tobedeleted" ]
                },
                "dateLastModified" : {
                    "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                    "type" : "string",
                    "format" : "date-time"
                },
                "metadata" : {
                    "description" : "All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.",
                    "$ref" : "#/definitions/MetadataDType"
                },
                "title" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The title, human readable, for the lineItem.  This should allow the lineItem to be distinguished from its peer lineItems.",
                    "type" : "string"
                },
                "description" : {
                    "description" : "Model Primitive Datatype = String. A human readable description of the usage of the lineItem.",
                    "type" : "string"
                },
                "assignDate" : {
                    "description" : "Model Primitive Datatype = DateTime. The date/time the activity being addressed by the lineItem was assigned to the student. This has a format as defined in [ISO 8601].",
                    "type" : "string",
                    "format" : "date-time"
                },
                "dueDate" : {
                    "description" : "Model Primitive Datatype = DateTime. The date/time by which the assignment must be completed and submitted. This has the dateTime format as defined in [ISO 8601].",
                    "type" : "string",
                    "format" : "date-time"
                },
                "class" : {
                    "description" : "The GUID of the class to which the lineItem has been assigned.",
                    "$ref" : "#/definitions/ClassGUIDRefDType"
                },
                "school" : {
                    "description" : "The GUID of the school for whom the lineItem has been assigned. This attribute was added in the OR 1.2 release.",
                    "$ref" : "#/definitions/OrgGUIDRefDType"
                },
                "category" : {
                    "description" : "The GUID of the category to which the lineItem has been assigned.",
                    "$ref" : "#/definitions/CategoryGUIDRefDType"
                },
                "gradingPeriod" : {
                    "description" : "The GUID of the grading period for the lineItem. This attribute was added in the OR 1.2 release.",
                    "$ref" : "#/definitions/AcadSessionGUIDRefDType"
                },
                "academicSession" : {
                    "description" : "The GUID of the academic session for the lineItem. This should NOT be defined if the 'gradingPeriod' attribute has been used.",
                    "$ref" : "#/definitions/AcadSessionGUIDRefDType"
                },
                "scoreScale" : {
                    "description" : "The GUID of the score scale to be used for the lineItem. This attribute was added in the OR 1.2 release.",
                    "$ref" : "#/definitions/ScoreScaleGUIDRefDType"
                },
                "resultValueMin" : {
                    "description" : "Model Primitive Datatype = Float. The minimum value (numeric) that can be assigned to the score attribute in a result. The score scale mapping should be used to map to other scores.",
                    "type" : "number",
                    "format" : "float"
                },
                "resultValueMax" : {
                    "description" : "Model Primitive Datatype = Float. The maximum value (numeric) that can be assigned to the score attribute in a result. The score scale mapping should be used to map to other scores.",
                    "type" : "number",
                    "format" : "float"
                },
                "learningObjectiveSet" : {
                    "description" : "The set of identifiers for the learning objectives to which this assessment is aligned. Any number groups of learning objectives can be assigned.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/LearningObjectiveSetDType"
                    }
                }
            },
            "required" : [ "sourcedId","status","dateLastModified","title","assignDate","dueDate","class","school","category" ],
            "additionalProperties" : false
        },
        "MetadataDType" : {
            "description" : "The container for the proprietary extensions.",
            "type" : "object",
            "properties" : {

            },
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        },
        "OrgGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Org' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. an 'org'.",
                    "type" : "string",
                    "enum" : [ "org" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "ScoreScaleGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'ScoreScale' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'scoreScale'.",
                    "type" : "string",
                    "enum" : [ "scoreScale" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        }
    }
}
        

C1.27b JSON Schema for the "postLineItemsForSchool" Operation Response Payload Validation for HTTP Codes (201)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerostergradebookservicev1p2-postlineitemsforschool-201-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "postLineItemsForSchool-201-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (postLineItemsForSchool-201-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech;  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "sourcedIdPairs" : {
            "description" : "The set of sourcedId pairs. The order is not significant as each pair contains the information between the original/new values.",
            "type" : "array",
            "minItems" : 0,
            "items" : {
                "$ref" : "#/definitions/GUIDPairDType"
            }
        }
    },
    "additionalProperties" : false,
    "definitions" : {
        "GUIDPairDType" : {
            "description" : "The container for the mapping between the supplied (assigned by the requesting system) and allocated (assigned by the responding system) sourcedIds i.e. GUIDs.",
            "type" : "object",
            "properties" : {
                "suppliedSourcedId" : {
                    "description" : "Model Primitive Datatype = String. The temporary sourcedId that has been allocated by the requesting system. This sourcedId is used to enable identification of the original record for which the new sourcedId has been allocated at the service provider.",
                    "type" : "string"
                },
                "allocatedSourcedId" : {
                    "description" : "Model Primitive Datatype = String. The sourcedId that has been allocated by the system on which the new record has been created.",
                    "type" : "string"
                }
            },
            "required" : [ "suppliedSourcedId","allocatedSourcedId" ],
            "additionalProperties" : false
        }
    }
}
        

C1.27c JSON Schema for the "postLineItemsForSchool" Operation Response Payload Validation for HTTP Codes (default,401,403,404,422,429,500)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerostergradebookservicev1p2-postlineitemsforschool-default-401-403-404-422-429-500-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "postLineItemsForSchool-default-401-403-404-422-429-500-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (postLineItemsForSchool-default-401-403-404-422-429-500-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech;  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "imsx_codeMajor" : {
            "description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
            "type" : "string",
            "enum" : [ "success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported" ]
        },
        "imsx_severity" : {
            "description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
            "type" : "string",
            "enum" : [ "status","warning","error","status","warning","error","status","warning","error" ]
        },
        "imsx_description" : {
            "description" : "Model Primitive Datatype = String. A human readable description supplied by the entity creating the status code information.",
            "type" : "string"
        },
        "imsx_CodeMinor" : {
            "description" : "The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.",
            "$ref" : "#/definitions/imsx_CodeMinorDType"
        }
    },
    "required" : [ "imsx_codeMajor","imsx_severity" ],
    "additionalProperties" : false,
    "definitions" : {
        "imsx_CodeMinorDType" : {
            "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorField" : {
                    "description" : "Each reported code minor status code.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/imsx_CodeMinorFieldDType"
                    }
                }
            },
            "required" : [ "imsx_codeMinorField" ],
            "additionalProperties" : false
        },
        "imsx_CodeMinorFieldDType" : {
            "description" : "This is the container for a single code minor status code.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorFieldName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
                    "type" : "string",
                    "default" : "TargetEndSystem"
                },
                "imsx_codeMinorFieldValue" : {
                    "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
                    "type" : "string",
                    "enum" : [ "fullsuccess","invalid_filter_field","invalid_selection_field","invaliddata","unauthorisedrequest","internal_server_error",
                                "server_busy","deletefailure","unknownobject","forbidden" ]
                }
            },
            "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
            "additionalProperties" : false
        }
    }
}
        

C1.28a JSON Schema for the "postResultsForAcademicSessionForClass" Operation Request Payload Validation.

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerostergradebookservicev1p2-postresultsforacademicsessionforclass-requestpayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "postResultsForAcademicSessionForClass-requestpayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (postResultsForAcademicSessionForClass-requestpayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech;  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "results" : {
            "description" : "The collection of result instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
            "type" : "array",
            "minItems" : 0,
            "items" : {
                "$ref" : "#/definitions/ResultDType"
            }
        }
    },
    "additionalProperties" : false,
    "definitions" : {
        "ClassGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Class' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'class'.",
                    "type" : "string",
                    "enum" : [ "class" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "LearningObjectiveResultsDType" : {
            "description" : "This is the container for a learning objective identifier. This also allows a mastery score to be aligned with the learning objective.",
            "type" : "object",
            "properties" : {
                "learningObjectiveId" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The unique identifier for the associated learning objective. If this is a CASE identifier it MUST be a valid UUID.",
                    "type" : "string"
                },
                "score" : {
                    "description" : "Model Primitive Datatype = Float. The optional mastery score supplied as a numeric value. ",
                    "type" : "number",
                    "format" : "float"
                },
                "textScore" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The optional mastery score supplied in a non-numeric form. ",
                    "type" : "string"
                }
            },
            "required" : [ "learningObjectiveId" ],
            "additionalProperties" : false
        },
        "LearningObjectiveScoreSetDType" : {
            "description" : "This is the container for the set of learning objective identifiers that are from a single source responsible for creating those identifiers. This also allows a mastery score to be aligned with a learning objective.",
            "type" : "object",
            "properties" : {
                "source" : {
                    "description" : "The source responsible for creating the learning objective identifiers. The permitted values are from an extensible vocabulary.",
                    "anyOf" : [
                            {
                                "description" : "Model Primitive Datatype = NormalizedString.",
                                "type" : "string",
                                "pattern" : "^/(?!case$)(?!unknown$)[a-z0-9]+$"
                            },
                            {
                                "type" : "string",
                                "enum" : [ "case","unknown" ]
                            }
                    ]
                },
                "learningObjectiveResults" : {
                    "description" : "The set of unique identifiers for the associated learning objectives (these may have alignment with a mastery score). If these are CASE identifiers they MUST be valid UUIDs.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/LearningObjectiveResultsDType"
                    }
                }
            },
            "required" : [ "source","learningObjectiveResults" ],
            "additionalProperties" : false
        },
        "LineItemGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'LineItem' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'lineItem'.",
                    "type" : "string",
                    "enum" : [ "lineItem" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "MetadataDType" : {
            "description" : "The container for the proprietary extensions.",
            "type" : "object",
            "properties" : {

            },
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        },
        "ResultDType" : {
            "description" : "This is the container for the Result record.  A result consists of the assigned score plus the context for that score.",
            "type" : "object",
            "properties" : {
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                    "type" : "string"
                },
                "status" : {
                    "description" : "All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                    "type" : "string",
                    "enum" : [ "active","tobedeleted" ]
                },
                "dateLastModified" : {
                    "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                    "type" : "string",
                    "format" : "date-time"
                },
                "metadata" : {
                    "description" : "All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.",
                    "$ref" : "#/definitions/MetadataDType"
                },
                "lineItem" : {
                    "description" : "The GUID of the lineItem to which the result is aligned.",
                    "$ref" : "#/definitions/LineItemGUIDRefDType"
                },
                "student" : {
                    "description" : "The GUID of the student for whom the result is assigned.",
                    "$ref" : "#/definitions/UserGUIDRefDType"
                },
                "class" : {
                    "description" : "The GUID of the class to which the result is aligned.",
                    "$ref" : "#/definitions/ClassGUIDRefDType"
                },
                "scoreScale" : {
                    "description" : "The GUID of the scoreScale against which the result is aligned.",
                    "$ref" : "#/definitions/ScoreScaleGUIDRefDType"
                },
                "scoreStatus" : {
                    "description" : "The status of the score. The value is from an extensible enumerated vocabulary.",
                    "anyOf" : [
                            {
                                "description" : "Model Primitive Datatype = NormalizedString.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-zA-Z0-9\\.\\-_]+"
                            },
                            {
                                "type" : "string",
                                "enum" : [ "exempt","fully graded","not submitted","partially graded","submitted" ]
                            }
                    ]
                },
                "score" : {
                    "description" : "Model Primitive Datatype = Float. The score for the result. If a scoreScale is assigned then the value must align with the scale.",
                    "type" : "number",
                    "format" : "float"
                },
                "textScore" : {
                    "description" : "Model Primitive Datatype = NormalizedString. An optional non-numeric score value. If a scoreScale is assigned then the value must align with the scale. This attribute was added in OR 1.2.",
                    "type" : "string"
                },
                "scoreDate" : {
                    "description" : "Model Primitive Datatype = Date. The date at which the score is assigned or there is an update to the result e.g. change in the 'scoreStatus'. The format is YYYY-MM-DD as defined in [ISO 8601].",
                    "type" : "string",
                    "format" : "date"
                },
                "comment" : {
                    "description" : "Model Primitive Datatype = String. A human readable comment about the score.",
                    "type" : "string"
                },
                "learningObjectiveSet" : {
                    "description" : "The set of identifiers for the learning objectives to which this result is aligned. Any number groups of learning objectives can be assigned.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/LearningObjectiveScoreSetDType"
                    }
                },
                "inProgress" : {
                    "description" : "This is used to indicate that the associated work activity has been assigned and student's work product is not yet expected to have been submitted.",
                    "type" : "string",
                    "enum" : [ "true","false" ]
                },
                "incomplete" : {
                    "description" : "This is used to indicate that the student's work product has been submitted but it is deemed incomplete by the teacher.",
                    "type" : "string",
                    "enum" : [ "true","false" ]
                },
                "late" : {
                    "description" : "This is used to indicate that the student's work product is either past due or it has been submitted past the due date. The score on this result may be impacted as as result of this flag.",
                    "type" : "string",
                    "enum" : [ "true","false" ]
                },
                "missing" : {
                    "description" : "This is used to indicate that the student's work product as not been submitted.",
                    "type" : "string",
                    "enum" : [ "true","false" ]
                }
            },
            "required" : [ "sourcedId","status","dateLastModified","lineItem","student","scoreStatus","scoreDate" ],
            "additionalProperties" : false
        },
        "ScoreScaleGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'ScoreScale' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'scoreScale'.",
                    "type" : "string",
                    "enum" : [ "scoreScale" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "UserGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'User' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'user'.",
                    "type" : "string",
                    "enum" : [ "user" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        }
    }
}
        

C1.28b JSON Schema for the "postResultsForAcademicSessionForClass" Operation Response Payload Validation for HTTP Codes (201)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerostergradebookservicev1p2-postresultsforacademicsessionforclass-201-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "postResultsForAcademicSessionForClass-201-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (postResultsForAcademicSessionForClass-201-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech;  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "sourcedIdPairs" : {
            "description" : "The set of sourcedId pairs. The order is not significant as each pair contains the information between the original/new values.",
            "type" : "array",
            "minItems" : 0,
            "items" : {
                "$ref" : "#/definitions/GUIDPairDType"
            }
        }
    },
    "additionalProperties" : false,
    "definitions" : {
        "GUIDPairDType" : {
            "description" : "The container for the mapping between the supplied (assigned by the requesting system) and allocated (assigned by the responding system) sourcedIds i.e. GUIDs.",
            "type" : "object",
            "properties" : {
                "suppliedSourcedId" : {
                    "description" : "Model Primitive Datatype = String. The temporary sourcedId that has been allocated by the requesting system. This sourcedId is used to enable identification of the original record for which the new sourcedId has been allocated at the service provider.",
                    "type" : "string"
                },
                "allocatedSourcedId" : {
                    "description" : "Model Primitive Datatype = String. The sourcedId that has been allocated by the system on which the new record has been created.",
                    "type" : "string"
                }
            },
            "required" : [ "suppliedSourcedId","allocatedSourcedId" ],
            "additionalProperties" : false
        }
    }
}
        

C1.28c JSON Schema for the "postResultsForAcademicSessionForClass" Operation Response Payload Validation for HTTP Codes (default,401,403,404,422,429,500)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerostergradebookservicev1p2-postresultsforacademicsessionforclass-default-401-403-404-422-429-500-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "postResultsForAcademicSessionForClass-default-401-403-404-422-429-500-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (postResultsForAcademicSessionForClass-default-401-403-404-422-429-500-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech;  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "imsx_codeMajor" : {
            "description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
            "type" : "string",
            "enum" : [ "success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported" ]
        },
        "imsx_severity" : {
            "description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
            "type" : "string",
            "enum" : [ "status","warning","error","status","warning","error","status","warning","error" ]
        },
        "imsx_description" : {
            "description" : "Model Primitive Datatype = String. A human readable description supplied by the entity creating the status code information.",
            "type" : "string"
        },
        "imsx_CodeMinor" : {
            "description" : "The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.",
            "$ref" : "#/definitions/imsx_CodeMinorDType"
        }
    },
    "required" : [ "imsx_codeMajor","imsx_severity" ],
    "additionalProperties" : false,
    "definitions" : {
        "imsx_CodeMinorDType" : {
            "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorField" : {
                    "description" : "Each reported code minor status code.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/imsx_CodeMinorFieldDType"
                    }
                }
            },
            "required" : [ "imsx_codeMinorField" ],
            "additionalProperties" : false
        },
        "imsx_CodeMinorFieldDType" : {
            "description" : "This is the container for a single code minor status code.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorFieldName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
                    "type" : "string",
                    "default" : "TargetEndSystem"
                },
                "imsx_codeMinorFieldValue" : {
                    "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
                    "type" : "string",
                    "enum" : [ "fullsuccess","invalid_filter_field","invalid_selection_field","invaliddata","unauthorisedrequest","internal_server_error",
                                "server_busy","deletefailure","unknownobject","forbidden" ]
                }
            },
            "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
            "additionalProperties" : false
        }
    }
}
        

C1.29a JSON Schema for the "postResultsForLineItem" Operation Request Payload Validation.

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerostergradebookservicev1p2-postresultsforlineitem-requestpayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "postResultsForLineItem-requestpayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (postResultsForLineItem-requestpayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech;  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "results" : {
            "description" : "The collection of result instances. The order is not significant. The corresponding query constraints may result in no instances being returned.",
            "type" : "array",
            "minItems" : 0,
            "items" : {
                "$ref" : "#/definitions/ResultDType"
            }
        }
    },
    "additionalProperties" : false,
    "definitions" : {
        "ClassGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Class' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'class'.",
                    "type" : "string",
                    "enum" : [ "class" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "LearningObjectiveResultsDType" : {
            "description" : "This is the container for a learning objective identifier. This also allows a mastery score to be aligned with the learning objective.",
            "type" : "object",
            "properties" : {
                "learningObjectiveId" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The unique identifier for the associated learning objective. If this is a CASE identifier it MUST be a valid UUID.",
                    "type" : "string"
                },
                "score" : {
                    "description" : "Model Primitive Datatype = Float. The optional mastery score supplied as a numeric value. ",
                    "type" : "number",
                    "format" : "float"
                },
                "textScore" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The optional mastery score supplied in a non-numeric form. ",
                    "type" : "string"
                }
            },
            "required" : [ "learningObjectiveId" ],
            "additionalProperties" : false
        },
        "LearningObjectiveScoreSetDType" : {
            "description" : "This is the container for the set of learning objective identifiers that are from a single source responsible for creating those identifiers. This also allows a mastery score to be aligned with a learning objective.",
            "type" : "object",
            "properties" : {
                "source" : {
                    "description" : "The source responsible for creating the learning objective identifiers. The permitted values are from an extensible vocabulary.",
                    "anyOf" : [
                            {
                                "description" : "Model Primitive Datatype = NormalizedString.",
                                "type" : "string",
                                "pattern" : "^/(?!case$)(?!unknown$)[a-z0-9]+$"
                            },
                            {
                                "type" : "string",
                                "enum" : [ "case","unknown" ]
                            }
                    ]
                },
                "learningObjectiveResults" : {
                    "description" : "The set of unique identifiers for the associated learning objectives (these may have alignment with a mastery score). If these are CASE identifiers they MUST be valid UUIDs.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/LearningObjectiveResultsDType"
                    }
                }
            },
            "required" : [ "source","learningObjectiveResults" ],
            "additionalProperties" : false
        },
        "LineItemGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'LineItem' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'lineItem'.",
                    "type" : "string",
                    "enum" : [ "lineItem" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "MetadataDType" : {
            "description" : "The container for the proprietary extensions.",
            "type" : "object",
            "properties" : {

            },
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        },
        "ResultDType" : {
            "description" : "This is the container for the Result record.  A result consists of the assigned score plus the context for that score.",
            "type" : "object",
            "properties" : {
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                    "type" : "string"
                },
                "status" : {
                    "description" : "All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                    "type" : "string",
                    "enum" : [ "active","tobedeleted" ]
                },
                "dateLastModified" : {
                    "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                    "type" : "string",
                    "format" : "date-time"
                },
                "metadata" : {
                    "description" : "All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.",
                    "$ref" : "#/definitions/MetadataDType"
                },
                "lineItem" : {
                    "description" : "The GUID of the lineItem to which the result is aligned.",
                    "$ref" : "#/definitions/LineItemGUIDRefDType"
                },
                "student" : {
                    "description" : "The GUID of the student for whom the result is assigned.",
                    "$ref" : "#/definitions/UserGUIDRefDType"
                },
                "class" : {
                    "description" : "The GUID of the class to which the result is aligned.",
                    "$ref" : "#/definitions/ClassGUIDRefDType"
                },
                "scoreScale" : {
                    "description" : "The GUID of the scoreScale against which the result is aligned.",
                    "$ref" : "#/definitions/ScoreScaleGUIDRefDType"
                },
                "scoreStatus" : {
                    "description" : "The status of the score. The value is from an extensible enumerated vocabulary.",
                    "anyOf" : [
                            {
                                "description" : "Model Primitive Datatype = NormalizedString.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-zA-Z0-9\\.\\-_]+"
                            },
                            {
                                "type" : "string",
                                "enum" : [ "exempt","fully graded","not submitted","partially graded","submitted" ]
                            }
                    ]
                },
                "score" : {
                    "description" : "Model Primitive Datatype = Float. The score for the result. If a scoreScale is assigned then the value must align with the scale.",
                    "type" : "number",
                    "format" : "float"
                },
                "textScore" : {
                    "description" : "Model Primitive Datatype = NormalizedString. An optional non-numeric score value. If a scoreScale is assigned then the value must align with the scale. This attribute was added in OR 1.2.",
                    "type" : "string"
                },
                "scoreDate" : {
                    "description" : "Model Primitive Datatype = Date. The date at which the score is assigned or there is an update to the result e.g. change in the 'scoreStatus'. The format is YYYY-MM-DD as defined in [ISO 8601].",
                    "type" : "string",
                    "format" : "date"
                },
                "comment" : {
                    "description" : "Model Primitive Datatype = String. A human readable comment about the score.",
                    "type" : "string"
                },
                "learningObjectiveSet" : {
                    "description" : "The set of identifiers for the learning objectives to which this result is aligned. Any number groups of learning objectives can be assigned.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/LearningObjectiveScoreSetDType"
                    }
                },
                "inProgress" : {
                    "description" : "This is used to indicate that the associated work activity has been assigned and student's work product is not yet expected to have been submitted.",
                    "type" : "string",
                    "enum" : [ "true","false" ]
                },
                "incomplete" : {
                    "description" : "This is used to indicate that the student's work product has been submitted but it is deemed incomplete by the teacher.",
                    "type" : "string",
                    "enum" : [ "true","false" ]
                },
                "late" : {
                    "description" : "This is used to indicate that the student's work product is either past due or it has been submitted past the due date. The score on this result may be impacted as as result of this flag.",
                    "type" : "string",
                    "enum" : [ "true","false" ]
                },
                "missing" : {
                    "description" : "This is used to indicate that the student's work product as not been submitted.",
                    "type" : "string",
                    "enum" : [ "true","false" ]
                }
            },
            "required" : [ "sourcedId","status","dateLastModified","lineItem","student","scoreStatus","scoreDate" ],
            "additionalProperties" : false
        },
        "ScoreScaleGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'ScoreScale' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'scoreScale'.",
                    "type" : "string",
                    "enum" : [ "scoreScale" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "UserGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'User' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'user'.",
                    "type" : "string",
                    "enum" : [ "user" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        }
    }
}
        

C1.29b JSON Schema for the "postResultsForLineItem" Operation Response Payload Validation for HTTP Codes (201)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerostergradebookservicev1p2-postresultsforlineitem-201-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "postResultsForLineItem-201-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (postResultsForLineItem-201-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech;  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "sourcedIdPairs" : {
            "description" : "The set of sourcedId pairs. The order is not significant as each pair contains the information between the original/new values.",
            "type" : "array",
            "minItems" : 0,
            "items" : {
                "$ref" : "#/definitions/GUIDPairDType"
            }
        }
    },
    "additionalProperties" : false,
    "definitions" : {
        "GUIDPairDType" : {
            "description" : "The container for the mapping between the supplied (assigned by the requesting system) and allocated (assigned by the responding system) sourcedIds i.e. GUIDs.",
            "type" : "object",
            "properties" : {
                "suppliedSourcedId" : {
                    "description" : "Model Primitive Datatype = String. The temporary sourcedId that has been allocated by the requesting system. This sourcedId is used to enable identification of the original record for which the new sourcedId has been allocated at the service provider.",
                    "type" : "string"
                },
                "allocatedSourcedId" : {
                    "description" : "Model Primitive Datatype = String. The sourcedId that has been allocated by the system on which the new record has been created.",
                    "type" : "string"
                }
            },
            "required" : [ "suppliedSourcedId","allocatedSourcedId" ],
            "additionalProperties" : false
        }
    }
}
        

C1.29c JSON Schema for the "postResultsForLineItem" Operation Response Payload Validation for HTTP Codes (default,401,403,404,422,429,500)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerostergradebookservicev1p2-postresultsforlineitem-default-401-403-404-422-429-500-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "postResultsForLineItem-default-401-403-404-422-429-500-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (postResultsForLineItem-default-401-403-404-422-429-500-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech;  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "imsx_codeMajor" : {
            "description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
            "type" : "string",
            "enum" : [ "success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported" ]
        },
        "imsx_severity" : {
            "description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
            "type" : "string",
            "enum" : [ "status","warning","error","status","warning","error","status","warning","error" ]
        },
        "imsx_description" : {
            "description" : "Model Primitive Datatype = String. A human readable description supplied by the entity creating the status code information.",
            "type" : "string"
        },
        "imsx_CodeMinor" : {
            "description" : "The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.",
            "$ref" : "#/definitions/imsx_CodeMinorDType"
        }
    },
    "required" : [ "imsx_codeMajor","imsx_severity" ],
    "additionalProperties" : false,
    "definitions" : {
        "imsx_CodeMinorDType" : {
            "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorField" : {
                    "description" : "Each reported code minor status code.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/imsx_CodeMinorFieldDType"
                    }
                }
            },
            "required" : [ "imsx_codeMinorField" ],
            "additionalProperties" : false
        },
        "imsx_CodeMinorFieldDType" : {
            "description" : "This is the container for a single code minor status code.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorFieldName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
                    "type" : "string",
                    "default" : "TargetEndSystem"
                },
                "imsx_codeMinorFieldValue" : {
                    "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
                    "type" : "string",
                    "enum" : [ "fullsuccess","invalid_filter_field","invalid_selection_field","invaliddata","unauthorisedrequest","internal_server_error",
                                "server_busy","deletefailure","unknownobject","forbidden" ]
                }
            },
            "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
            "additionalProperties" : false
        }
    }
}
        

C1.30a JSON Schema for the "putAssessmentLineItem" Operation Request Payload Validation.

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerostergradebookservicev1p2-putassessmentlineitem-requestpayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "putAssessmentLineItem-requestpayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (putAssessmentLineItem-requestpayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech;  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "assessmentLineItem" : {
            "description" : "The instance of the single assessment lineItem for a message payload. There must be a data payload otherwise an error report payload for the record not being located should be returned.",
            "$ref" : "#/definitions/AssessmentLineItemDType"
        }
    },
    "required" : [ "assessmentLineItem" ],
    "additionalProperties" : false,
    "definitions" : {
        "AssessmentLineItemDType" : {
            "description" : "This is the container for the definition of an assessment lineItem. An assessment lineItem is a collection of results for a set of students who are completing an assignment.",
            "type" : "object",
            "properties" : {
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                    "type" : "string"
                },
                "status" : {
                    "description" : "All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                    "type" : "string",
                    "enum" : [ "active","tobedeleted" ]
                },
                "dateLastModified" : {
                    "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                    "type" : "string",
                    "format" : "date-time"
                },
                "metadata" : {
                    "description" : "All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.",
                    "$ref" : "#/definitions/MetadataDType"
                },
                "title" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The title, human readable, for the assessment lineItem.  This should allow the assessment lineItem to be distinguished from its peer assessment lineItems.",
                    "type" : "string"
                },
                "description" : {
                    "description" : "Model Primitive Datatype = String. A human readable description of the usage of the assessment lineItem.",
                    "type" : "string"
                },
                "class" : {
                    "description" : "The GUID of the class to which the assessment lineItem has been assigned. Note that an assessment LineItem MAY be assigned tio a class.",
                    "$ref" : "#/definitions/ClassGUIDRefDType"
                },
                "parentAssessmentLineItem" : {
                    "description" : "The GUID of the parent assessment lineItem. This enables the assessment lineItems to be chained together in a parent/child hierarchy.",
                    "$ref" : "#/definitions/AssessmentLineItemGUIDRefDType"
                },
                "scoreScale" : {
                    "description" : "The GUID of the score scale to be used for the lineItem. This attribute was added in the OR 1.2 release.",
                    "$ref" : "#/definitions/ScoreScaleGUIDRefDType"
                },
                "resultValueMin" : {
                    "description" : "Model Primitive Datatype = Float. The minimum value (numeric) that can be assigned to the score attribute in a result. The score scale mapping should be used to map to other scores.",
                    "type" : "number",
                    "format" : "float"
                },
                "resultValueMax" : {
                    "description" : "Model Primitive Datatype = Float. The maximum value (numeric) that can be assigned to the score attribute in a result. The score scale mapping should be used to map to other scores.",
                    "type" : "number",
                    "format" : "float"
                },
                "learningObjectiveSet" : {
                    "description" : "The set of identifiers for the learning objectives to which this assessment is aligned. Any number groups of learning objectives can be assigned.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/LearningObjectiveSetDType"
                    }
                }
            },
            "required" : [ "sourcedId","status","dateLastModified","title" ],
            "additionalProperties" : false
        },
        "AssessmentLineItemGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'AssessmentLineItem' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. an 'assessmentLineItem'.",
                    "type" : "string",
                    "enum" : [ "assessmentLineItem" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "ClassGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Class' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'class'.",
                    "type" : "string",
                    "enum" : [ "class" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "LearningObjectiveSetDType" : {
            "description" : "This is the container for the set of learning objective identifiers that are from a single source responsible for creating those identifiers.",
            "type" : "object",
            "properties" : {
                "source" : {
                    "description" : "The source responsible for creating the learning objective identifiers. The permitted values are from an extensible vocabulary.",
                    "anyOf" : [
                            {
                                "description" : "Model Primitive Datatype = NormalizedString.",
                                "type" : "string",
                                "pattern" : "^/(?!case$)(?!unknown$)[a-z0-9]+$"
                            },
                            {
                                "type" : "string",
                                "enum" : [ "case","unknown" ]
                            }
                    ]
                },
                "learningObjectiveIds" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The set of unique identifiers for the associated learning objectives. If these are CASE identifiers they MUST be valid UUIDs.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "type" : "string"
                    }
                }
            },
            "required" : [ "source","learningObjectiveIds" ],
            "additionalProperties" : false
        },
        "MetadataDType" : {
            "description" : "The container for the proprietary extensions.",
            "type" : "object",
            "properties" : {

            },
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        },
        "ScoreScaleGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'ScoreScale' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'scoreScale'.",
                    "type" : "string",
                    "enum" : [ "scoreScale" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        }
    }
}
        

C1.30b JSON Schema for the "putAssessmentLineItem" Operation Response Payload Validation for HTTP Codes (201)

No payload is returned for this HTTP code and so there is no JSON Schema listing.

C1.30c JSON Schema for the "putAssessmentLineItem" Operation Response Payload Validation for HTTP Codes (default,401,403,404,422,429,500)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerostergradebookservicev1p2-putassessmentlineitem-default-401-403-404-422-429-500-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "putAssessmentLineItem-default-401-403-404-422-429-500-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (putAssessmentLineItem-default-401-403-404-422-429-500-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech;  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "imsx_codeMajor" : {
            "description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
            "type" : "string",
            "enum" : [ "success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported" ]
        },
        "imsx_severity" : {
            "description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
            "type" : "string",
            "enum" : [ "status","warning","error","status","warning","error","status","warning","error" ]
        },
        "imsx_description" : {
            "description" : "Model Primitive Datatype = String. A human readable description supplied by the entity creating the status code information.",
            "type" : "string"
        },
        "imsx_CodeMinor" : {
            "description" : "The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.",
            "$ref" : "#/definitions/imsx_CodeMinorDType"
        }
    },
    "required" : [ "imsx_codeMajor","imsx_severity" ],
    "additionalProperties" : false,
    "definitions" : {
        "imsx_CodeMinorDType" : {
            "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorField" : {
                    "description" : "Each reported code minor status code.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/imsx_CodeMinorFieldDType"
                    }
                }
            },
            "required" : [ "imsx_codeMinorField" ],
            "additionalProperties" : false
        },
        "imsx_CodeMinorFieldDType" : {
            "description" : "This is the container for a single code minor status code.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorFieldName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
                    "type" : "string",
                    "default" : "TargetEndSystem"
                },
                "imsx_codeMinorFieldValue" : {
                    "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
                    "type" : "string",
                    "enum" : [ "fullsuccess","invalid_filter_field","invalid_selection_field","invaliddata","unauthorisedrequest","internal_server_error",
                                "server_busy","deletefailure","unknownobject","forbidden" ]
                }
            },
            "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
            "additionalProperties" : false
        }
    }
}
        

C1.31a JSON Schema for the "putAssessmentResult" Operation Request Payload Validation.

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerostergradebookservicev1p2-putassessmentresult-requestpayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "putAssessmentResult-requestpayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (putAssessmentResult-requestpayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech;  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "assessmentResult" : {
            "description" : "The instance of the single assessment result for a message payload. There must be a data payload otherwise an error report payload for the record not being located should be returned.",
            "$ref" : "#/definitions/AssessmentResultDType"
        }
    },
    "required" : [ "assessmentResult" ],
    "additionalProperties" : false,
    "definitions" : {
        "AssessmentLineItemGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'AssessmentLineItem' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. an 'assessmentLineItem'.",
                    "type" : "string",
                    "enum" : [ "assessmentLineItem" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "AssessmentResultDType" : {
            "description" : "This is the container for the AssessmentResult record.  An assessment result consists of the assigned score plus the context for that score.",
            "type" : "object",
            "properties" : {
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                    "type" : "string"
                },
                "status" : {
                    "description" : "All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                    "type" : "string",
                    "enum" : [ "active","tobedeleted" ]
                },
                "dateLastModified" : {
                    "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                    "type" : "string",
                    "format" : "date-time"
                },
                "metadata" : {
                    "description" : "All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.",
                    "$ref" : "#/definitions/MetadataDType"
                },
                "assessmentLineItem" : {
                    "description" : "The GUID of the assessment lineItem to which the assessment result is aligned.",
                    "$ref" : "#/definitions/AssessmentLineItemGUIDRefDType"
                },
                "student" : {
                    "description" : "The GUID of the student for whom the assessment result is assigned.",
                    "$ref" : "#/definitions/UserGUIDRefDType"
                },
                "score" : {
                    "description" : "Model Primitive Datatype = Float. The score for the result. If a scoreScale is assigned then the value must align with the scale.",
                    "type" : "number",
                    "format" : "float"
                },
                "textScore" : {
                    "description" : "Model Primitive Datatype = NormalizedString. An optional non-numeric score value. If a scoreScale is assigned then the value must align with the scale.",
                    "type" : "string"
                },
                "scoreDate" : {
                    "description" : "Model Primitive Datatype = Date. The date at which the score is assigned or there is an update to the result e.g. change in the 'scoreStatus'.. The format is YYYY-MM-DD as defined in [ISO 8601].",
                    "type" : "string",
                    "format" : "date"
                },
                "scoreScale" : {
                    "description" : "The GUID of the scoreScale against which the result is aligned.",
                    "$ref" : "#/definitions/ScoreScaleGUIDRefDType"
                },
                "scorePercentile" : {
                    "description" : "Model Primitive Datatype = Float. The percentile rank of a score is the percentage of scores in its frequency distribution that are equal to or lower than it.",
                    "type" : "number",
                    "format" : "float"
                },
                "scoreStatus" : {
                    "description" : "The status of the score. The value is from an extensible enumerated vocabulary.",
                    "anyOf" : [
                            {
                                "description" : "Model Primitive Datatype = NormalizedString.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-zA-Z0-9\\.\\-_]+"
                            },
                            {
                                "type" : "string",
                                "enum" : [ "exempt","fully graded","not submitted","partially graded","submitted" ]
                            }
                    ]
                },
                "comment" : {
                    "description" : "Model Primitive Datatype = String. A human readable comment about the score.",
                    "type" : "string"
                },
                "learningObjectiveSet" : {
                    "description" : "The set of identifiers for the learning objectives to which this result is aligned. Any number groups of learning objectives can be assigned.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/LearningObjectiveScoreSetDType"
                    }
                },
                "inProgress" : {
                    "description" : "This is used to indicate that the associated work activity has been assigned and student's work product is not yet expected to have been submitted.",
                    "type" : "string",
                    "enum" : [ "true","false" ]
                },
                "incomplete" : {
                    "description" : "This is used to indicate that the student's work product has been submitted but it is deemed incomplete by the teacher.",
                    "type" : "string",
                    "enum" : [ "true","false" ]
                },
                "late" : {
                    "description" : "This is used to indicate that the student's work product is either past due or it has been submitted past the due date. The score on this result may be impacted as as result of this flag.",
                    "type" : "string",
                    "enum" : [ "true","false" ]
                },
                "missing" : {
                    "description" : "This is used to indicate that the student's work product as not been submitted.",
                    "type" : "string",
                    "enum" : [ "true","false" ]
                }
            },
            "required" : [ "sourcedId","status","dateLastModified","assessmentLineItem","student","scoreDate","scoreStatus" ],
            "additionalProperties" : false
        },
        "LearningObjectiveResultsDType" : {
            "description" : "This is the container for a learning objective identifier. This also allows a mastery score to be aligned with the learning objective.",
            "type" : "object",
            "properties" : {
                "learningObjectiveId" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The unique identifier for the associated learning objective. If this is a CASE identifier it MUST be a valid UUID.",
                    "type" : "string"
                },
                "score" : {
                    "description" : "Model Primitive Datatype = Float. The optional mastery score supplied as a numeric value. ",
                    "type" : "number",
                    "format" : "float"
                },
                "textScore" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The optional mastery score supplied in a non-numeric form. ",
                    "type" : "string"
                }
            },
            "required" : [ "learningObjectiveId" ],
            "additionalProperties" : false
        },
        "LearningObjectiveScoreSetDType" : {
            "description" : "This is the container for the set of learning objective identifiers that are from a single source responsible for creating those identifiers. This also allows a mastery score to be aligned with a learning objective.",
            "type" : "object",
            "properties" : {
                "source" : {
                    "description" : "The source responsible for creating the learning objective identifiers. The permitted values are from an extensible vocabulary.",
                    "anyOf" : [
                            {
                                "description" : "Model Primitive Datatype = NormalizedString.",
                                "type" : "string",
                                "pattern" : "^/(?!case$)(?!unknown$)[a-z0-9]+$"
                            },
                            {
                                "type" : "string",
                                "enum" : [ "case","unknown" ]
                            }
                    ]
                },
                "learningObjectiveResults" : {
                    "description" : "The set of unique identifiers for the associated learning objectives (these may have alignment with a mastery score). If these are CASE identifiers they MUST be valid UUIDs.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/LearningObjectiveResultsDType"
                    }
                }
            },
            "required" : [ "source","learningObjectiveResults" ],
            "additionalProperties" : false
        },
        "MetadataDType" : {
            "description" : "The container for the proprietary extensions.",
            "type" : "object",
            "properties" : {

            },
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        },
        "ScoreScaleGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'ScoreScale' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'scoreScale'.",
                    "type" : "string",
                    "enum" : [ "scoreScale" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "UserGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'User' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'user'.",
                    "type" : "string",
                    "enum" : [ "user" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        }
    }
}
        

C1.31b JSON Schema for the "putAssessmentResult" Operation Response Payload Validation for HTTP Codes (201)

No payload is returned for this HTTP code and so there is no JSON Schema listing.

C1.31c JSON Schema for the "putAssessmentResult" Operation Response Payload Validation for HTTP Codes (default,401,403,404,422,429,500)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerostergradebookservicev1p2-putassessmentresult-default-401-403-404-422-429-500-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "putAssessmentResult-default-401-403-404-422-429-500-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (putAssessmentResult-default-401-403-404-422-429-500-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech;  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "imsx_codeMajor" : {
            "description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
            "type" : "string",
            "enum" : [ "success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported" ]
        },
        "imsx_severity" : {
            "description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
            "type" : "string",
            "enum" : [ "status","warning","error","status","warning","error","status","warning","error" ]
        },
        "imsx_description" : {
            "description" : "Model Primitive Datatype = String. A human readable description supplied by the entity creating the status code information.",
            "type" : "string"
        },
        "imsx_CodeMinor" : {
            "description" : "The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.",
            "$ref" : "#/definitions/imsx_CodeMinorDType"
        }
    },
    "required" : [ "imsx_codeMajor","imsx_severity" ],
    "additionalProperties" : false,
    "definitions" : {
        "imsx_CodeMinorDType" : {
            "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorField" : {
                    "description" : "Each reported code minor status code.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/imsx_CodeMinorFieldDType"
                    }
                }
            },
            "required" : [ "imsx_codeMinorField" ],
            "additionalProperties" : false
        },
        "imsx_CodeMinorFieldDType" : {
            "description" : "This is the container for a single code minor status code.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorFieldName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
                    "type" : "string",
                    "default" : "TargetEndSystem"
                },
                "imsx_codeMinorFieldValue" : {
                    "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
                    "type" : "string",
                    "enum" : [ "fullsuccess","invalid_filter_field","invalid_selection_field","invaliddata","unauthorisedrequest","internal_server_error",
                                "server_busy","deletefailure","unknownobject","forbidden" ]
                }
            },
            "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
            "additionalProperties" : false
        }
    }
}
        

C1.32a JSON Schema for the "putCategory" Operation Request Payload Validation.

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerostergradebookservicev1p2-putcategory-requestpayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "putCategory-requestpayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (putCategory-requestpayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech;  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "category" : {
            "description" : "The instance of the single category for a message payload. There must be a data payload otherwise an error report payload for the record not being located should be returned.",
            "$ref" : "#/definitions/CategoryDType"
        }
    },
    "required" : [ "category" ],
    "additionalProperties" : false,
    "definitions" : {
        "CategoryDType" : {
            "description" : "A Category is the name given to a grouping of line items (line items being equivalent to assignments which students will complete). ",
            "type" : "object",
            "properties" : {
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                    "type" : "string"
                },
                "status" : {
                    "description" : "All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                    "type" : "string",
                    "enum" : [ "active","tobedeleted" ]
                },
                "dateLastModified" : {
                    "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                    "type" : "string",
                    "format" : "date-time"
                },
                "metadata" : {
                    "description" : "All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.",
                    "$ref" : "#/definitions/MetadataDType"
                },
                "title" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The human readable title for the category.",
                    "type" : "string"
                },
                "weight" : {
                    "description" : "Model Primitive Datatype = Float. Total weight of this grading category in calculation of the course final score.",
                    "type" : "number",
                    "format" : "float"
                }
            },
            "required" : [ "sourcedId","status","dateLastModified","title" ],
            "additionalProperties" : false
        },
        "MetadataDType" : {
            "description" : "The container for the proprietary extensions.",
            "type" : "object",
            "properties" : {

            },
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        }
    }
}
        

C1.32b JSON Schema for the "putCategory" Operation Response Payload Validation for HTTP Codes (201)

No payload is returned for this HTTP code and so there is no JSON Schema listing.

C1.32c JSON Schema for the "putCategory" Operation Response Payload Validation for HTTP Codes (default,401,403,404,422,429,500)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerostergradebookservicev1p2-putcategory-default-401-403-404-422-429-500-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "putCategory-default-401-403-404-422-429-500-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (putCategory-default-401-403-404-422-429-500-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech;  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "imsx_codeMajor" : {
            "description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
            "type" : "string",
            "enum" : [ "success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported" ]
        },
        "imsx_severity" : {
            "description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
            "type" : "string",
            "enum" : [ "status","warning","error","status","warning","error","status","warning","error" ]
        },
        "imsx_description" : {
            "description" : "Model Primitive Datatype = String. A human readable description supplied by the entity creating the status code information.",
            "type" : "string"
        },
        "imsx_CodeMinor" : {
            "description" : "The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.",
            "$ref" : "#/definitions/imsx_CodeMinorDType"
        }
    },
    "required" : [ "imsx_codeMajor","imsx_severity" ],
    "additionalProperties" : false,
    "definitions" : {
        "imsx_CodeMinorDType" : {
            "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorField" : {
                    "description" : "Each reported code minor status code.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/imsx_CodeMinorFieldDType"
                    }
                }
            },
            "required" : [ "imsx_codeMinorField" ],
            "additionalProperties" : false
        },
        "imsx_CodeMinorFieldDType" : {
            "description" : "This is the container for a single code minor status code.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorFieldName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
                    "type" : "string",
                    "default" : "TargetEndSystem"
                },
                "imsx_codeMinorFieldValue" : {
                    "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
                    "type" : "string",
                    "enum" : [ "fullsuccess","invalid_filter_field","invalid_selection_field","invaliddata","unauthorisedrequest","internal_server_error",
                                "server_busy","deletefailure","unknownobject","forbidden" ]
                }
            },
            "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
            "additionalProperties" : false
        }
    }
}
        

C1.33a JSON Schema for the "putLineItem" Operation Request Payload Validation.

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerostergradebookservicev1p2-putlineitem-requestpayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "putLineItem-requestpayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (putLineItem-requestpayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech;  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "lineItem" : {
            "description" : "The instance of the single lineItem for a message payload. There must be a data payload otherwise an error report payload for the record not being located should be returned.",
            "$ref" : "#/definitions/LineItemDType"
        }
    },
    "required" : [ "lineItem" ],
    "additionalProperties" : false,
    "definitions" : {
        "AcadSessionGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Academic Session' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. an 'academicSession'.",
                    "type" : "string",
                    "enum" : [ "academicSession" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "CategoryGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Category' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'category'.",
                    "type" : "string",
                    "enum" : [ "category" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "ClassGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Class' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'class'.",
                    "type" : "string",
                    "enum" : [ "class" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "LearningObjectiveSetDType" : {
            "description" : "This is the container for the set of learning objective identifiers that are from a single source responsible for creating those identifiers.",
            "type" : "object",
            "properties" : {
                "source" : {
                    "description" : "The source responsible for creating the learning objective identifiers. The permitted values are from an extensible vocabulary.",
                    "anyOf" : [
                            {
                                "description" : "Model Primitive Datatype = NormalizedString.",
                                "type" : "string",
                                "pattern" : "^/(?!case$)(?!unknown$)[a-z0-9]+$"
                            },
                            {
                                "type" : "string",
                                "enum" : [ "case","unknown" ]
                            }
                    ]
                },
                "learningObjectiveIds" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The set of unique identifiers for the associated learning objectives. If these are CASE identifiers they MUST be valid UUIDs.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "type" : "string"
                    }
                }
            },
            "required" : [ "source","learningObjectiveIds" ],
            "additionalProperties" : false
        },
        "LineItemDType" : {
            "description" : "This is the container for the definition of a lineItem. A lineItem is a collection of results for a set of students who are completing an assignment as part of a class at a school.",
            "type" : "object",
            "properties" : {
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                    "type" : "string"
                },
                "status" : {
                    "description" : "All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                    "type" : "string",
                    "enum" : [ "active","tobedeleted" ]
                },
                "dateLastModified" : {
                    "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                    "type" : "string",
                    "format" : "date-time"
                },
                "metadata" : {
                    "description" : "All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.",
                    "$ref" : "#/definitions/MetadataDType"
                },
                "title" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The title, human readable, for the lineItem.  This should allow the lineItem to be distinguished from its peer lineItems.",
                    "type" : "string"
                },
                "description" : {
                    "description" : "Model Primitive Datatype = String. A human readable description of the usage of the lineItem.",
                    "type" : "string"
                },
                "assignDate" : {
                    "description" : "Model Primitive Datatype = DateTime. The date/time the activity being addressed by the lineItem was assigned to the student. This has a format as defined in [ISO 8601].",
                    "type" : "string",
                    "format" : "date-time"
                },
                "dueDate" : {
                    "description" : "Model Primitive Datatype = DateTime. The date/time by which the assignment must be completed and submitted. This has the dateTime format as defined in [ISO 8601].",
                    "type" : "string",
                    "format" : "date-time"
                },
                "class" : {
                    "description" : "The GUID of the class to which the lineItem has been assigned.",
                    "$ref" : "#/definitions/ClassGUIDRefDType"
                },
                "school" : {
                    "description" : "The GUID of the school for whom the lineItem has been assigned. This attribute was added in the OR 1.2 release.",
                    "$ref" : "#/definitions/OrgGUIDRefDType"
                },
                "category" : {
                    "description" : "The GUID of the category to which the lineItem has been assigned.",
                    "$ref" : "#/definitions/CategoryGUIDRefDType"
                },
                "gradingPeriod" : {
                    "description" : "The GUID of the grading period for the lineItem. This attribute was added in the OR 1.2 release.",
                    "$ref" : "#/definitions/AcadSessionGUIDRefDType"
                },
                "academicSession" : {
                    "description" : "The GUID of the academic session for the lineItem. This should NOT be defined if the 'gradingPeriod' attribute has been used.",
                    "$ref" : "#/definitions/AcadSessionGUIDRefDType"
                },
                "scoreScale" : {
                    "description" : "The GUID of the score scale to be used for the lineItem. This attribute was added in the OR 1.2 release.",
                    "$ref" : "#/definitions/ScoreScaleGUIDRefDType"
                },
                "resultValueMin" : {
                    "description" : "Model Primitive Datatype = Float. The minimum value (numeric) that can be assigned to the score attribute in a result. The score scale mapping should be used to map to other scores.",
                    "type" : "number",
                    "format" : "float"
                },
                "resultValueMax" : {
                    "description" : "Model Primitive Datatype = Float. The maximum value (numeric) that can be assigned to the score attribute in a result. The score scale mapping should be used to map to other scores.",
                    "type" : "number",
                    "format" : "float"
                },
                "learningObjectiveSet" : {
                    "description" : "The set of identifiers for the learning objectives to which this assessment is aligned. Any number groups of learning objectives can be assigned.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/LearningObjectiveSetDType"
                    }
                }
            },
            "required" : [ "sourcedId","status","dateLastModified","title","assignDate","dueDate","class","school","category" ],
            "additionalProperties" : false
        },
        "MetadataDType" : {
            "description" : "The container for the proprietary extensions.",
            "type" : "object",
            "properties" : {

            },
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        },
        "OrgGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Org' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. an 'org'.",
                    "type" : "string",
                    "enum" : [ "org" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "ScoreScaleGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'ScoreScale' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'scoreScale'.",
                    "type" : "string",
                    "enum" : [ "scoreScale" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        }
    }
}
        

C1.33b JSON Schema for the "putLineItem" Operation Response Payload Validation for HTTP Codes (201)

No payload is returned for this HTTP code and so there is no JSON Schema listing.

C1.33c JSON Schema for the "putLineItem" Operation Response Payload Validation for HTTP Codes (default,401,403,404,422,429,500)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerostergradebookservicev1p2-putlineitem-default-401-403-404-422-429-500-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "putLineItem-default-401-403-404-422-429-500-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (putLineItem-default-401-403-404-422-429-500-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech;  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "imsx_codeMajor" : {
            "description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
            "type" : "string",
            "enum" : [ "success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported" ]
        },
        "imsx_severity" : {
            "description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
            "type" : "string",
            "enum" : [ "status","warning","error","status","warning","error","status","warning","error" ]
        },
        "imsx_description" : {
            "description" : "Model Primitive Datatype = String. A human readable description supplied by the entity creating the status code information.",
            "type" : "string"
        },
        "imsx_CodeMinor" : {
            "description" : "The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.",
            "$ref" : "#/definitions/imsx_CodeMinorDType"
        }
    },
    "required" : [ "imsx_codeMajor","imsx_severity" ],
    "additionalProperties" : false,
    "definitions" : {
        "imsx_CodeMinorDType" : {
            "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorField" : {
                    "description" : "Each reported code minor status code.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/imsx_CodeMinorFieldDType"
                    }
                }
            },
            "required" : [ "imsx_codeMinorField" ],
            "additionalProperties" : false
        },
        "imsx_CodeMinorFieldDType" : {
            "description" : "This is the container for a single code minor status code.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorFieldName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
                    "type" : "string",
                    "default" : "TargetEndSystem"
                },
                "imsx_codeMinorFieldValue" : {
                    "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
                    "type" : "string",
                    "enum" : [ "fullsuccess","invalid_filter_field","invalid_selection_field","invaliddata","unauthorisedrequest","internal_server_error",
                                "server_busy","deletefailure","unknownobject","forbidden" ]
                }
            },
            "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
            "additionalProperties" : false
        }
    }
}
        

C1.34a JSON Schema for the "putResult" Operation Request Payload Validation.

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerostergradebookservicev1p2-putresult-requestpayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "putResult-requestpayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (putResult-requestpayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech;  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "result" : {
            "description" : "The instance of the single result for a message payload. There must be a data payload otherwise an error report payload for the record not being located should be returned.",
            "$ref" : "#/definitions/ResultDType"
        }
    },
    "required" : [ "result" ],
    "additionalProperties" : false,
    "definitions" : {
        "ClassGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Class' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'class'.",
                    "type" : "string",
                    "enum" : [ "class" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "LearningObjectiveResultsDType" : {
            "description" : "This is the container for a learning objective identifier. This also allows a mastery score to be aligned with the learning objective.",
            "type" : "object",
            "properties" : {
                "learningObjectiveId" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The unique identifier for the associated learning objective. If this is a CASE identifier it MUST be a valid UUID.",
                    "type" : "string"
                },
                "score" : {
                    "description" : "Model Primitive Datatype = Float. The optional mastery score supplied as a numeric value. ",
                    "type" : "number",
                    "format" : "float"
                },
                "textScore" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The optional mastery score supplied in a non-numeric form. ",
                    "type" : "string"
                }
            },
            "required" : [ "learningObjectiveId" ],
            "additionalProperties" : false
        },
        "LearningObjectiveScoreSetDType" : {
            "description" : "This is the container for the set of learning objective identifiers that are from a single source responsible for creating those identifiers. This also allows a mastery score to be aligned with a learning objective.",
            "type" : "object",
            "properties" : {
                "source" : {
                    "description" : "The source responsible for creating the learning objective identifiers. The permitted values are from an extensible vocabulary.",
                    "anyOf" : [
                            {
                                "description" : "Model Primitive Datatype = NormalizedString.",
                                "type" : "string",
                                "pattern" : "^/(?!case$)(?!unknown$)[a-z0-9]+$"
                            },
                            {
                                "type" : "string",
                                "enum" : [ "case","unknown" ]
                            }
                    ]
                },
                "learningObjectiveResults" : {
                    "description" : "The set of unique identifiers for the associated learning objectives (these may have alignment with a mastery score). If these are CASE identifiers they MUST be valid UUIDs.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/LearningObjectiveResultsDType"
                    }
                }
            },
            "required" : [ "source","learningObjectiveResults" ],
            "additionalProperties" : false
        },
        "LineItemGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'LineItem' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'lineItem'.",
                    "type" : "string",
                    "enum" : [ "lineItem" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "MetadataDType" : {
            "description" : "The container for the proprietary extensions.",
            "type" : "object",
            "properties" : {

            },
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        },
        "ResultDType" : {
            "description" : "This is the container for the Result record.  A result consists of the assigned score plus the context for that score.",
            "type" : "object",
            "properties" : {
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                    "type" : "string"
                },
                "status" : {
                    "description" : "All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                    "type" : "string",
                    "enum" : [ "active","tobedeleted" ]
                },
                "dateLastModified" : {
                    "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                    "type" : "string",
                    "format" : "date-time"
                },
                "metadata" : {
                    "description" : "All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.",
                    "$ref" : "#/definitions/MetadataDType"
                },
                "lineItem" : {
                    "description" : "The GUID of the lineItem to which the result is aligned.",
                    "$ref" : "#/definitions/LineItemGUIDRefDType"
                },
                "student" : {
                    "description" : "The GUID of the student for whom the result is assigned.",
                    "$ref" : "#/definitions/UserGUIDRefDType"
                },
                "class" : {
                    "description" : "The GUID of the class to which the result is aligned.",
                    "$ref" : "#/definitions/ClassGUIDRefDType"
                },
                "scoreScale" : {
                    "description" : "The GUID of the scoreScale against which the result is aligned.",
                    "$ref" : "#/definitions/ScoreScaleGUIDRefDType"
                },
                "scoreStatus" : {
                    "description" : "The status of the score. The value is from an extensible enumerated vocabulary.",
                    "anyOf" : [
                            {
                                "description" : "Model Primitive Datatype = NormalizedString.",
                                "type" : "string",
                                "pattern" : "(ext:)[a-zA-Z0-9\\.\\-_]+"
                            },
                            {
                                "type" : "string",
                                "enum" : [ "exempt","fully graded","not submitted","partially graded","submitted" ]
                            }
                    ]
                },
                "score" : {
                    "description" : "Model Primitive Datatype = Float. The score for the result. If a scoreScale is assigned then the value must align with the scale.",
                    "type" : "number",
                    "format" : "float"
                },
                "textScore" : {
                    "description" : "Model Primitive Datatype = NormalizedString. An optional non-numeric score value. If a scoreScale is assigned then the value must align with the scale. This attribute was added in OR 1.2.",
                    "type" : "string"
                },
                "scoreDate" : {
                    "description" : "Model Primitive Datatype = Date. The date at which the score is assigned or there is an update to the result e.g. change in the 'scoreStatus'. The format is YYYY-MM-DD as defined in [ISO 8601].",
                    "type" : "string",
                    "format" : "date"
                },
                "comment" : {
                    "description" : "Model Primitive Datatype = String. A human readable comment about the score.",
                    "type" : "string"
                },
                "learningObjectiveSet" : {
                    "description" : "The set of identifiers for the learning objectives to which this result is aligned. Any number groups of learning objectives can be assigned.",
                    "type" : "array",
                    "minItems" : 0,
                    "items" : {
                        "$ref" : "#/definitions/LearningObjectiveScoreSetDType"
                    }
                },
                "inProgress" : {
                    "description" : "This is used to indicate that the associated work activity has been assigned and student's work product is not yet expected to have been submitted.",
                    "type" : "string",
                    "enum" : [ "true","false" ]
                },
                "incomplete" : {
                    "description" : "This is used to indicate that the student's work product has been submitted but it is deemed incomplete by the teacher.",
                    "type" : "string",
                    "enum" : [ "true","false" ]
                },
                "late" : {
                    "description" : "This is used to indicate that the student's work product is either past due or it has been submitted past the due date. The score on this result may be impacted as as result of this flag.",
                    "type" : "string",
                    "enum" : [ "true","false" ]
                },
                "missing" : {
                    "description" : "This is used to indicate that the student's work product as not been submitted.",
                    "type" : "string",
                    "enum" : [ "true","false" ]
                }
            },
            "required" : [ "sourcedId","status","dateLastModified","lineItem","student","scoreStatus","scoreDate" ],
            "additionalProperties" : false
        },
        "ScoreScaleGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'ScoreScale' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'scoreScale'.",
                    "type" : "string",
                    "enum" : [ "scoreScale" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "UserGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'User' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'user'.",
                    "type" : "string",
                    "enum" : [ "user" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        }
    }
}
        

C1.34b JSON Schema for the "putResult" Operation Response Payload Validation for HTTP Codes (201)

No payload is returned for this HTTP code and so there is no JSON Schema listing.

C1.34c JSON Schema for the "putResult" Operation Response Payload Validation for HTTP Codes (default,401,403,404,422,429,500)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerostergradebookservicev1p2-putresult-default-401-403-404-422-429-500-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "putResult-default-401-403-404-422-429-500-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (putResult-default-401-403-404-422-429-500-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech;  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "imsx_codeMajor" : {
            "description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
            "type" : "string",
            "enum" : [ "success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported" ]
        },
        "imsx_severity" : {
            "description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
            "type" : "string",
            "enum" : [ "status","warning","error","status","warning","error","status","warning","error" ]
        },
        "imsx_description" : {
            "description" : "Model Primitive Datatype = String. A human readable description supplied by the entity creating the status code information.",
            "type" : "string"
        },
        "imsx_CodeMinor" : {
            "description" : "The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.",
            "$ref" : "#/definitions/imsx_CodeMinorDType"
        }
    },
    "required" : [ "imsx_codeMajor","imsx_severity" ],
    "additionalProperties" : false,
    "definitions" : {
        "imsx_CodeMinorDType" : {
            "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorField" : {
                    "description" : "Each reported code minor status code.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/imsx_CodeMinorFieldDType"
                    }
                }
            },
            "required" : [ "imsx_codeMinorField" ],
            "additionalProperties" : false
        },
        "imsx_CodeMinorFieldDType" : {
            "description" : "This is the container for a single code minor status code.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorFieldName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
                    "type" : "string",
                    "default" : "TargetEndSystem"
                },
                "imsx_codeMinorFieldValue" : {
                    "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
                    "type" : "string",
                    "enum" : [ "fullsuccess","invalid_filter_field","invalid_selection_field","invaliddata","unauthorisedrequest","internal_server_error",
                                "server_busy","deletefailure","unknownobject","forbidden" ]
                }
            },
            "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
            "additionalProperties" : false
        }
    }
}
        

C1.35a JSON Schema for the "putScoreScale" Operation Request Payload Validation.

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerostergradebookservicev1p2-putscorescale-requestpayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "putScoreScale-requestpayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (putScoreScale-requestpayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech;  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "scoreScale" : {
            "description" : "The instance of the single scoreScale for a message payload. There must be a data payload otherwise an error report payload for the record not being located should be returned.",
            "$ref" : "#/definitions/ScoreScaleDType"
        }
    },
    "required" : [ "scoreScale" ],
    "additionalProperties" : false,
    "definitions" : {
        "ClassGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Class' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'class'.",
                    "type" : "string",
                    "enum" : [ "class" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "CourseGUIDRefDType" : {
            "description" : "This is the container for reference to a OneRoster 'Course' object that has an allocated sourcedId (GUID).",
            "type" : "object",
            "properties" : {
                "href" : {
                    "description" : "Model Primitive Datatype = AnyURI. The URI for the type of object being referenced.",
                    "type" : "string",
                    "format" : "uri"
                },
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The globally unique identifier of the object being referenced.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "The type of object being referenced i.e. a 'course'.",
                    "type" : "string",
                    "enum" : [ "course" ]
                }
            },
            "required" : [ "href","sourcedId","type" ],
            "additionalProperties" : false
        },
        "MetadataDType" : {
            "description" : "The container for the proprietary extensions.",
            "type" : "object",
            "properties" : {

            },
            "patternProperties" : {
                "^[^:][^:]*:[^:][^:]*$" : {
                    "oneOf": [{ "type": "string" }, { "type": "array" }, { "type": "boolean" }, { "type": "number" }, { "type": "integer" }, { "type": "object" }]
                }
            },
            "additionalProperties" : true
        },
        "ScoreScaleDType" : {
            "description" : "The container for the definition Score Scale mapping i.e. the relationship between two score scales.",
            "type" : "object",
            "properties" : {
                "sourcedId" : {
                    "description" : "Model Primitive Datatype = String. The sourcedId of the object. All objects MUST be identified by a Source Identifier. This is a GUID System ID for an object. This is the GUID that SYSTEMS will refer to when making API calls, or when needing to identify an object. It is RECOMMENDED that systems are able to map whichever local ids (e.g. database key fields) they use to SourcedId. The sourcedId of an object is considered an addressable property of an entity and as such will not be treated as Personally Identifiable Information (PII) by certified products. Therefore, as a part of certification, vendors will be required to declare that they will notify customers via documentation or other formal and documented agreement that sourcedIds should never contain PII in general, but particularly users. This means that if a customer includes a student name in an enrollment.sourcedId, it will not fall to any certified product to protect the enrollment.sourcedId as PII, or even the userSourcedId field in the enrollment record.",
                    "type" : "string"
                },
                "status" : {
                    "description" : "All objects MUST BE either 'active' or 'tobedeleted'. Something which is flagged 'tobedeleted' is to be considered safe to delete. Systems can delete records that are flagged as such if they wish, but they are not under any compulsion to do so. In v1.1 the enumeration value of 'inactive' was removed and so for backwards compatibility all such marked objects should be interpreted as 'tobedeleted'.",
                    "type" : "string",
                    "enum" : [ "active","tobedeleted" ]
                },
                "dateLastModified" : {
                    "description" : "Model Primitive Datatype = DateTime. All objects MUST be annotated with the dateTime upon which they were last modified. This enables requesters to query for just the latest objects. DateTimes MUST be expressed in W3C profile of [ISO 8601] and MUST contain the UTC timezone.",
                    "type" : "string",
                    "format" : "date-time"
                },
                "metadata" : {
                    "description" : "All objects CAN be extended using the Metadata class. This specification is silent on what implementers may consider to be appropriate extensions. The form of the extension is dependent on the binding technology being used.",
                    "$ref" : "#/definitions/MetadataDType"
                },
                "title" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The human readable title for the score scale mapping.",
                    "type" : "string"
                },
                "type" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The type of score scale mapping. At present there is no predefined vocabulary. This should be used by an organization to differentiate between the score scales that it produces.",
                    "type" : "string"
                },
                "course" : {
                    "description" : "The GUID for the course for which this scale will be used.",
                    "$ref" : "#/definitions/CourseGUIDRefDType"
                },
                "class" : {
                    "description" : "The GUID for the class for which this scale will be used.",
                    "$ref" : "#/definitions/ClassGUIDRefDType"
                },
                "scoreScaleValue" : {
                    "description" : "The set of mappings for this score scale.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/ScoreScaleValueDType"
                    }
                }
            },
            "required" : [ "sourcedId","status","dateLastModified","title","type","class","scoreScaleValue" ],
            "additionalProperties" : false
        },
        "ScoreScaleValueDType" : {
            "description" : "A specific mapping of values between two score scales. The left hand side (LHS) value is the reference point. Examples of this mapping are: '7' maps to 'A', '7'-'10' maps to 'A', etc.",
            "type" : "object",
            "properties" : {
                "itemValueLHS" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The left hand side value of the mapping relationship. The format is either a single value ('x') or a range ('x' - 'y'). In the case of a single value this is considered to be the inclusive lower value for the implied range. When a range is specified (lower-to-upper) the values are inclusive.",
                    "type" : "string"
                },
                "itemValueRHS" : {
                    "description" : "Model Primitive Datatype = NormalizedString. The right hand side value of the mapping relationship  i.e. the equivalent value to the reference point defined in the LHS.",
                    "type" : "string"
                }
            },
            "required" : [ "itemValueLHS","itemValueRHS" ],
            "additionalProperties" : false
        }
    }
}
        

C1.35b JSON Schema for the "putScoreScale" Operation Response Payload Validation for HTTP Codes (201)

No payload is returned for this HTTP code and so there is no JSON Schema listing.

C1.35c JSON Schema for the "putScoreScale" Operation Response Payload Validation for HTTP Codes (default,401,403,404,422,429,500)

The JSON Schema listing is shown below (the JSON Schema is available at: https://purl.imsglobal.org/spec/or/v1p2/schema/jsd/onerostergradebookservicev1p2-putscorescale-default-401-403-404-422-429-500-responsepayload-schemav1p0.json).

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id" : "putScoreScale-default-401-403-404-422-429-500-responsepayload-schema.json",
    "title" : " Version  IMS Final Release JSON Schema Binding (putScoreScale-default-401-403-404-422-429-500-responsepayload-schema)",
    "description" : "Author-Colin Smythe (1EdTech;  Version-1.2;  Release Date-19th September 2022. ",
    "type" : "object",
    "properties" : {
        "imsx_codeMajor" : {
            "description" : "The code major value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes. The permitted vocabulary for the values for the CodeMajor field.",
            "type" : "string",
            "enum" : [ "success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported","success","processing","failure","unsupported" ]
        },
        "imsx_severity" : {
            "description" : "The severity value (from the corresponding enumerated vocabulary). See Appendix B for further information on the interpretation of this set of codes.",
            "type" : "string",
            "enum" : [ "status","warning","error","status","warning","error","status","warning","error" ]
        },
        "imsx_description" : {
            "description" : "Model Primitive Datatype = String. A human readable description supplied by the entity creating the status code information.",
            "type" : "string"
        },
        "imsx_CodeMinor" : {
            "description" : "The set of reported code minor status codes. See Appendix B for further information on the interpretation of this set of codes.",
            "$ref" : "#/definitions/imsx_CodeMinorDType"
        }
    },
    "required" : [ "imsx_codeMajor","imsx_severity" ],
    "additionalProperties" : false,
    "definitions" : {
        "imsx_CodeMinorDType" : {
            "description" : "This is the container for the set of code minor status codes reported in the responses from the Service Provider.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorField" : {
                    "description" : "Each reported code minor status code.",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "$ref" : "#/definitions/imsx_CodeMinorFieldDType"
                    }
                }
            },
            "required" : [ "imsx_codeMinorField" ],
            "additionalProperties" : false
        },
        "imsx_CodeMinorFieldDType" : {
            "description" : "This is the container for a single code minor status code.",
            "type" : "object",
            "properties" : {
                "imsx_codeMinorFieldName" : {
                    "description" : "Model Primitive Datatype = NormalizedString. This should contain the identity of the system that has produced the code minor status code report. In most cases this will be the target service provider denoted as 'TargetEndSystem'.",
                    "type" : "string",
                    "default" : "TargetEndSystem"
                },
                "imsx_codeMinorFieldValue" : {
                    "description" : "The code minor status code (this is a value from the corresponding enumerated vocabulary).",
                    "type" : "string",
                    "enum" : [ "fullsuccess","invalid_filter_field","invalid_selection_field","invaliddata","unauthorisedrequest","internal_server_error",
                                "server_busy","deletefailure","unknownobject","forbidden" ]
                }
            },
            "required" : [ "imsx_codeMinorFieldName","imsx_codeMinorFieldValue" ],
            "additionalProperties" : false
        }
    }
}
        

toc | top

About this Document

Title: IMS OneRoster Gradebook REST/JSON Binding v1.2
Editors: Colin Smythe (1EdTech) and Joshua McGhee (1EdTech)

Co-chairs: Matt Richards (Infinite Campus, USA)

Version: 1.0
Version Date: 19th September 2022
Status: IMS Final Release
Summary: This is the OneRoster 1.2 Gradebook Service specification. This service provides the management of Results, LineItems (groups of Results aligned to an assessed activity), Categories (groups of LineItems), ScoreScales (introduced in this version), AssessmentLineItems (introduced in this version) and AssessmentResults (introduced in this version). This service is made available as a REST/JSON based binding to support gradebook data exchange.

Revision Information: The first release of the OneRoster Gradebook REST/JSON Service specification based upon the IMS Modelling-based Specification Approach.
Purpose: For general public release.
Document Location: https://www.imsglobal.org/spec/oneroster/v1p2/gradebook/bind/rest

toc | top

List of Contributors

The following individuals contributed to the development of this document:

Eric Adams Instructure (USA)
Barry Brahier Infinite Campus (USA)
Tom Clark Pearson (USA)
Linda Feng Unicon (USA)
Viktor Haag Desire2Learn (Canada)
Richard Heim LearningMate (USA)
Tom Ingram Escambia County School District (USA)
Oxana Jurosevic Instructure (USA)
Jong Kim Pearson (USA)
Andrew Kuritzky Edmentum (USA)
David Mayes Gwinnett County Schools (USA)
Joshua McGhee 1EdTech (USA)
Phil Nicholls 1EdTech (UK)
Padraig O'hiceadha HMH (UK)
Upendra Penegalapati Pearson (USA)
James Perreault FLVS (USA)
Patrick Porter Houston ISD (USA)
Matthew Richards Infinite Campus (USA)
Wendy Riedy Microsoft (USA)
Kurt Rompot Pearson (USA)
Gabrielle Sanderson Illuminate Education (USA)
Colin Smythe 1EdTech (UK)
Konrad Stimeling K12 Inc (USA)
Aditya Subramaniam Schoology (USA)
Matt Vella Schoology (USA)
TJ Vering Microsoft (USA)
Mark Walls Gwinnett County Schools (USA)

toc | top

Revision History

Version No. Release Date Comments
Final 1.0 / Document 1.0 1st July, 2015 First release of the OneRoster Service specification.
Final 1.1 / Document 1.0 1st November, 2016 This second release of the OneRoster Services includes new operations to create and delete single objects, support for the exchange of Result, LineItem, Category and Resource objects.
Final 1.2 / Document 1.0 19th September, 2022 This is the first release of the OneRoster 1.2 Gradebook Service as a standalone document. Significant new functionality has been added since the OR 1.1 release including new methods and new data model features. Also, the new endpoints/data model have been added to support the Assessment Results Management functionality.

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 OneRoster Gradebook REST/JSON Binding v1.2

Date: 19th September 2022

toc | top